创建目录:
cd /etc/ansible/roles
mkdir {tomcat}/{files,vars,templates,tasks} -pv
[root@node1 roles]# tree tomcat
tomcat
├── files #tomcat安装包存放路径
├── tasks #任务文件main.yml
├── templates #模版文件存放在该目录下
└── vars #变量文件main.ym
编写task:
[root@node1 tomcat]# cat tasks/main.yml
#- name: tomcat
# copy:
# src=apache-tomcat-8.5.23.tar.gz
# dest={{ dest_path }}/
- name: 判断tomcat是否已经安装
stat: path={{ tomcat_path01 }}
register: reg
- name: unzip
#shell: tar zxvf {{ dest_path }}/apache-tomcat-8.5.23.tar.gz -C /ane
unarchive: src=apache-tomcat-8.5.23.tar.gz dest=/ane
when: not reg.stat.exists #当/ane/tomcat目录不存在时执行解压操作
- name: rename
command: chdir=/ane mv apache-tomcat-8.5.23 tomcat01
when: not reg.stat.exists #当 /ane/tomcat01不存在的时候执行rename操作
#ignore_errors: True
- name: conf
template:
src=server.xml.j2 dest={{ tomcat_path01 }}/conf/server.xml
- name: tocmat_startup.sh
template:
src=startup8.sh.j2 dest={{ tomcat_scripts01 }}/startup01.sh mode=655
- name: start_service
shell: sh {{ tomcat_startup01 }}/startup01.sh
备注: 1、因为生产服务器tomcat路径相同,故此添加了全局变量,所有的roles都可以直接引用. 1.1、在/etc/ansible下,新建group_vars目录
mkdir /etc/ansible/group_vars
1.2、新建all文件,设置全局变量
cat /etc/ansible/group_vars/all
tomcat_home: /ane/tomcat01
dest_home: /ane/soft
tomcat_startup01: /ane/scripts/
2、tomcat启动脚本中添加了jmx监控,其中ip设置为变量,推过去后自动替换为当前主机IP,(能偷懒就偷懒)