ansible批量部署Tomcat
基础内容:在运行ansible的机器上添加所有被管理资产的域名解析,并且传公钥,这里不再赘述,既然是要使用ansible的同学,这些操作应该很清楚了。
文件结构
[root@tomcat-1 roles]# tree .
.
└── tomcat
├── files
│ ├── apache-tomcat-7.0.73.tar.gz
│ └── jdk-8u181-linux-x64.tar.gz
├── tasks
│ ├── install.yaml
│ └── main.yaml
└── vars
└── main.yaml
file目录用来存放使用到的安装包和文件;
tasks目录主要存放需要执行那些task的yaml文件;
vars目录下主要存放需要使用到的变量,写在main.yaml文件中。
vars
[root@tomcat-1 roles]# cd tomcat/vars/
[root@tomcat-1 vars]# cat main.yaml
software_path: /opt/
java_env_path: /etc/profile.d/java.sh
jdk_package_name: jdk-8u181-linux-x64.tar.gz
tomcat_package_name: apache-tomcat-7.0.73.tar.gz
tasks
[root@tomcat-1 roles]# cd tomcat/tasks/
[root@tomcat-1 tasks]# cat main.yaml
---
- import_tasks: install.yaml
[root@tomcat-1 tasks]# cat install.yaml
---
- name: 解压JDK、Tomcat到/opt目录
unarchive:
src: "{
{ item }}"
dest: "{
{ software_path }}"
loop:
- "{
{ jdk_package_name }}"
- "{
{ tomcat_package_name }}"
- name: 创建java.sh
copy:
content: "export JAVA_HOME=/opt/jdk1.8.0_181\nexport PATH=${PATH}:${JAVA_HOME}/bin"
dest: "{
{ java_env_path }}"
mode: 755
- name: 加载java环境变量
shell: source /etc/profile.d/java.sh
playbook
[root@tomcat-1 ansible]# cd playbook/
[root@tomcat-1 playbook]# pwd
/etc/ansible/playbook
[root@tomcat-1 playbook]# cat install_tomcat.yaml
---
- name: 安装Tomcat
hosts: tomcat
gather_facts: false
user: root
roles:
- tomcat
执行
[root@tomcat-1 playbook]# ansible-playbook --syntax-check install_tomcat.yaml
playbook: install_tomcat.yaml
[root@tomcat-1 playbook]# ansible-playbook install_tomcat.yaml
PLAY [安装Tomcat] ****************************************************************************************************************************************************************************
TASK [tomcat : 解压JDK、Tomcat到/opt目录] ********************************************************************************************************************************************************
changed: [tomcat-1] => (item=jdk-8u181-linux-x64.tar.gz)
changed: [tomcat-3] => (item=jdk-8u181-linux-x64.tar.gz)
changed: [tomcat-3] => (item=apache-tomcat-7.0.73.tar.gz)
changed: [tomcat-1] => (item=apache-tomcat-7.0.73.tar.gz)
changed: [tomcat-2] => (item=jdk-8u181-linux-x64.tar.gz)
changed: [tomcat-2] => (item=apache-tomcat-7.0.73.tar.gz)
TASK [tomcat : 创建java.sh] ******************************************************************************************************************************************************************
changed: [tomcat-2]
changed: [tomcat-3]
changed: [tomcat-1]
TASK [tomcat : 加载java环境变量] *****************************************************************************************************************************************************************
changed: [tomcat-3]
changed: [tomcat-2]
changed: [tomcat-1]
PLAY RECAP *********************************************************************************************************************************************************************************
tomcat-1 : ok=3 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
tomcat-2 : ok=3 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
tomcat-3 : ok=3 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
需要注意的是,执行完之后,敲java命令是没有的,需要重连终端才能敲出java。