ansible批量部署tomcat的方法
1.1构建目录结构
此操作是安装nginx+mysql+tomcat+db的目录结构,可以参考一下,不错~
mkdir-p/ansible/roles/{nginx,mysql,tomcat,db}/{defaults,files,handlers,meta,tasks,templates,vars}
- defaults默认寻找路径
- tasks存放playbooks路径
- files存放文件和脚本包,copy模块文件搜索路径
- templates模版存放路径
- handlersnotify调用部分playbook存放路径
- varsroles内变量存放路径
1.2文件目录结构
[root@qtbackup~]#tree/ansible/ /ansible/ ├──playbook │└──playbook.yml ├──roles │├──db ││├──defaults ││├──files ││├──handlers ││├──meta ││├──tasks ││├──templates ││└──vars │├──mysql ││├──defaults ││├──files ││├──handlers ││├──meta ││├──tasks ││├──templates ││└──vars │├──nginx ││├──defaults ││├──files ││├──handlers ││├──meta ││├──tasks ││├──templates ││└──vars │└──tomcat │├──defaults │├──files ││├──apache-tomcat-8.0.29.tar.gz ││├──jdk-8u73-linux-x64.gz ││├──tomcat-initscript.sh ││└──tomcat-users.xml │├──handlers ││└──main.yml │├──meta │├──tasks ││└──main.yml │├──templates ││└──tomcat-users.xml │└──vars ├──ssh_key.sh###自动分发sshkey脚本(下边会完整贴出来) ├──web.retry └──web.yml####总调用文件 34directories,11files
[root@qtbackup~]#
1.3在ansible目录创建一个总调用文件
-hosts:bgo####这个是hosts定义个主机组名字,如果是单台主机可以直接写地址 remote_user:root####执行用户 roles:#####解释配置文件目录,因为我们这次装的是tomcat所以注释其他的 #-nginx #-mysql -tomcat #-db
1.4创建tomcat安装playbook文件
vim/ansible/roles/tomcat/tasks/main.yml #这个是用yum模块安装jdk,有需要的可以用 #-name:installjava #yum:name=java-1.8.0-openjdk.x86_64state=present =============================================================== #创建用户 -name:group group:name=tomcat -name:user user:name=tomcatgroup=tomcathome=/usr/tomcat sudo:True ##############################这个源码包安装JDK############################# #复制jdk到tmp目录下 -name:copyjdk-8u73-linux-x64.gz copy:src=jdk-8u73-linux-x64.gzdest=/tmp/jdk-8u73-linux-x64.gz #解压jdk包到/application -name:Extractarchivejdk command:/bin/tarxf/tmp/jdk-8u73-linux-x64.gz-C/application #改名 -name:java shell:mv/application/jdk1.8.0_73/application/java #添加环境变量 -name:add/etc/profile lineinfile:dest=/etc/profileregexp="^JAVA_HOME="line="JAVA_HOME=/application/java/" -name:add/etc/profile lineinfile:dest=/etc/profileregexp="^CLASS_PATH="line="CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib" -name:add/etc/profile lineinfile:dest=/etc/profileregexp="^PATH=\$PATH:\$JAVA_HOME"line="PATH=$PATH:$JAVA_HOME/bin" -name:add/etc/profile lineinfile:dest=/etc/profileregexp="^exportJAVA_HOME"line="exportJAVA_HOME" ##########################安装tomcat########################################### -name:copytomcat_tar_gz copy:src=apache-tomcat-8.0.29.tar.gzdest=/tmp/apache-tomcat-8.0.29.tar.gz #解压tomcat到opt目录 -name:Extractarchive command:/bin/tarxf/tmp/apache-tomcat-8.0.29.tar.gz-C/opt #创建软连接 -name:Symlinkinstalldirectory file:src=/opt/apache-tomcat-8.0.29/dest=/application/tomcatstate=link #赋予目录权限 -name:ChangeownershipofTomcatinstallation file:path=/application/tomcat/owner=tomcatgroup=tomcatstate=directoryrecurse=yes #推送配置文件 -name:ConfigureTomcatusers template:src=tomcat-users.xmldest=/application/tomcat/conf/ notify:restarttomcat #安装tomcat。init启动脚本 -name:InstallTomcatinitscript copy:src=tomcat-initscript.shdest=/etc/init.d/tomcatmode=0755 #开启tomcat -name:StartTomcat service:name=tomcatstate=startedenabled=yes
1.5通过notify调用handlers
-name:restarttomcat service:name=tomcatstate=restarted
1.6语法检测===执行安装
cd/ansible ansible-playbookweb.yml--syntax-check#检查语法 ansible-playbookweb.yml#执行
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。