创建目录:

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,(能偷懒就偷懒)