ansible-playbook安装tomcat
1. ansible-playbook安装tomcat
1) 编写playbook的tomcat安装配置
1 [root@test-1 bin]# vim /ansible/tomcat/bin/tomcat.yaml 2 [root@test-1 bin]# cat /ansible/tomcat/bin/tomcat.yaml 3 --- 4 - hosts: web1 5 remote_user: root 6 vars: 7 tomcat_version: 8.5.38 8 tomcat_install_dir: /opt/ 9 10 tasks: 11 - name: Install jdk1.8 12 yum: 13 name: java-1.8.0-openjdk 14 state: present 15 - name: Download tomcat 16 get_url: 17 url: http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v{{tomcat_version}}/bin/apache-tomcat-{{tomcat_version}}.tar.gz 18 dest: /tmp 19 - name: Unarchive tomcat 20 unarchive: 21 src: /tmp/apache-tomcat-{{tomcat_version}}.tar.gz 22 dest: "{{tomcat_install_dir}}/" 23 copy: no 24 - name: Start tomcat 25 shell: cd {{tomcat_install_dir}} && mv apache-tomcat-{{tomcat_version}} tomcat8 && cd tomcat8/bin && nohup ./startup.sh &
2)配置文件检查
1 [root@test-1 bin]# ansible-playbook --syntax-check tomcat.yaml 2 3 playbook: tomcat.yaml
3) 执行playbook的tomcat安装文件
1 [root@test-1 bin]# ansible-playbook tomcat.yaml 2 3 PLAY [web1] ****************************************************************************************************************************************************************************************************************************************************************** 4 5 TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************************************* 6 ok: [192.168.200.132] 7 ok: [192.168.200.133] 8 9 TASK [Install jdk1.8] ******************************************************************************************************************************************************************************************************************************************************** 10 changed: [192.168.200.132] 11 changed: [192.168.200.133] 12 13 TASK [Download tomcat] ******************************************************************************************************************************************************************************************************************************************************* 14 ok: [192.168.200.133] 15 ok: [192.168.200.132] 16 17 TASK [Unarchive tomcat] ****************************************************************************************************************************************************************************************************************************************************** 18 changed: [192.168.200.133] 19 changed: [192.168.200.132] 20 21 TASK [Start tomcat] ********************************************************************************************************************************************************************************************************************************************************** 22 changed: [192.168.200.133] 23 changed: [192.168.200.132] 24 25 PLAY RECAP ******************************************************************************************************************************************************************************************************************************************************************* 26 192.168.200.132 : ok=5 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 27 192.168.200.133 : ok=5 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
2. 验证playbook的tomcat验证是否正常
1)验证端口和进程是否存在
1 [root@test-1 bin]# ansible web1 -m shell -a " ps -ef |grep java " 2 192.168.200.132 | CHANGED | rc=0 >> 3 root 24559 24558 0 19:18 ? 00:00:08 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat8 -Dcatalina.home=/opt/tomcat8 -Djava.io.tmpdir=/opt/tomcat8/temp org.apache.catalina.startup.Bootstrap start 4 root 25207 25202 0 19:53 pts/1 00:00:00 /bin/sh -c ps -ef |grep java 5 root 25209 25207 0 19:53 pts/1 00:00:00 grep java 6 7 192.168.200.133 | CHANGED | rc=0 >> 8 root 24457 24456 0 19:18 ? 00:00:08 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat8 -Dcatalina.home=/opt/tomcat8 -Djava.io.tmpdir=/opt/tomcat8/temp org.apache.catalina.startup.Bootstrap start 9 root 25103 25098 0 19:53 pts/1 00:00:00 /bin/sh -c ps -ef |grep java 10 root 25105 25103 0 19:53 pts/1 00:00:00 grep java 11 12 [root@test-1 bin]# ansible web1 -m shell -a " netstat -lntup |grep 8080" 13 192.168.200.132 | CHANGED | rc=0 >> 14 tcp6 0 0 :::8080 :::* LISTEN 24559/java 15 16 192.168.200.133 | CHANGED | rc=0 >> 17 tcp6 0 0 :::8080 :::* LISTEN 24457/java
2)curl 模拟浏览器请求是否正常访问
1 [root@test-1 bin]# curl -I http://192.168.200.132:8080/ 2 HTTP/1.1 200 3 Content-Type: text/html;charset=UTF-8 4 Transfer-Encoding: chunked 5 Date: Thu, 22 Aug 2019 11:55:39 GMT 6 7 [root@test-1 bin]# curl -I http://192.168.200.133:8080/ 8 HTTP/1.1 200 9 Content-Type: text/html;charset=UTF-8 10 Transfer-Encoding: chunked 11 Date: Thu, 22 Aug 2019 11:55:44 GMT