目录结构
host文件夹
用于存放主机清单文件
hosts文件
hosts文件内容如下:(仅供参考)
[proxy]
node2
[web]
node3
node4
playbook-all-roles.yml文件
用于指定执行哪个role的文件(命名可以自定义)
文件内容如下:(仅供参考)
因为roles文件夹下只有nginx一个文件夹,所以- role: java就指定的是java这个role
- hosts: web
remote_user: root
gather_facts: no
roles:
#- role: nginx
#- role: java
- role: tomcat
roles文件夹
用于存放各种类型的role
tomcat文件夹
代表着nginx这个role,里面存放着各种配置文件
主要框架如下:
- default:在每个角色文件夹内,default文件夹用于存放该角色的默认变量。这些变量可以在其他地方被引用,用于配置角色的行为。
- files:用于存放角色部署时可能需要用到的一些文件。这些文件可以通过Ansible的copy模块传输到远程主机上。
- handlers:包含处理任务的配置文件,当某些条件满足时,会触发这些处理器执行相应的操作,如重启服务或应用配置更改等。
- meta:主要编写依赖关系,即一个独立模块引用另一个role
- tasks:包含角色的具体任务定义,这些任务描述了如何在远程主机上执行操作,如安装软件、配置服务等。
- templates:模板文件
- vars:虽然roles目录结构中没有明确提到vars文件夹,但在实际使用中,有时会在角色内部定义一些变量,这些变量可以存放在vars文件夹中,以便在任务中使用。
本次只讲解使用到的文件夹
files文件夹
目录结构
[root@master files]# tree
.
└── apache-tomcat-8.5.34.tar.gz
apache-tomcat-8.5.34.tar.gz
tomcat安装包
vars文件夹
目录结构
[root@master vars]# tree
.
└── main.yml
注意:只能定义成main.yml文件名
文件内容如下:(仅供参考)
功能:定义一些参数
src_tomcat: "apache-tomcat-8.5.34.tar.gz"
tomcat_decomress_dir: "/usr/local/tomcat"
tomcat_after_decompress_name: "apache-tomcat-8.5.34"
tasks文件夹
目录结构
[root@master tasks]# tree
.
├── config_tomcat_env.yml
├── firewall_open_port.yml
├── main.yml
└── tomcat_pkg_transfer_and_jieya.yml
注意:除了main.yml文件必须要有,其他yml文件按需自定义名
main.yml
控制执行顺序
文件内容如下:
- include: tomcat_pkg_transfer_and_jieya.yml
- include: config_tomcat_env.yml
- include: firewall_open_port.yml
tomcat_pkg_transfer_and_jieya.yml
传输并解压
文件内容如下:
- name: 创建/usr/local/tomcat文件夹
file:
path: "{{ tomcat_decomress_dir }}"
state: directory
- name: 传输并解压
unarchive:
src: "{{ src_tomcat }}"
dest: "{{ tomcat_decomress_dir }}"
config_tomcat_env.yml
配置环境变量
文件内容如下:
- name: 配置tomcat环境
shell: echo 'export CATALINA_BASE=/usr/local/tomcat/{{ tomcat_after_decompress_name }}' >> ~/.bashrc &&
echo 'export CATALINA_HOME=/usr/local/tomcat/{{ tomcat_after_decompress_name }}' >> ~/.bashrc &&
echo 'export PATH=$PATH:/$CATALINA_HOME/bin' >> ~/.bashrc &&
source ~/.bashrc &&
nohup startup.sh &
firewall_open_port.yml
开放端口
文件内容如下:
- name: 开放8080端口
firewalld:
port: 8080/tcp
permanent: yes
immediate: yes
state: enabled
整体校验是否通过
[root@master ansible-playbook-roles-nginx]# ansible-playbook -i host/hosts playbook-all-roles.yml --syntax-check
playbook: playbook-all-roles.yml
到playbook-all-roles.yml同级目录执行,没有报错就没有问题
执行
ansible-playbook -i host/hosts playbook-all-roles.yml
验证是否配置成功
[root@master ansible-playbook-roles]# ansible -i host/hosts web -m shell -a "ps -ef|grep tomcat"
node3 | CHANGED | rc=0 >>
root 1728 1 0 10:11 ? 00:00:05 /usr/local/java/jdk1.8.0_191/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-8.5.34/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 /usr/local/tomcat/apache-tomcat-8.5.34/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.34/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/apache-tomcat-8.5.34 -Dcatalina.home=/usr/local/tomcat/apache-tomcat-8.5.34 -Djava.io.tmpdir=/usr/local/tomcat/apache-tomcat-8.5.34/temp org.apache.catalina.startup.Bootstrap start
root 1867 1866 0 10:23 pts/1 00:00:00 /bin/sh -c ps -ef|grep tomcat
root 1869 1867 0 10:23 pts/1 00:00:00 grep tomcat
node4 | CHANGED | rc=0 >>
root 1818 1 0 10:11 ? 00:00:05 /usr/local/java/jdk1.8.0_191/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-8.5.34/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 /usr/local/tomcat/apache-tomcat-8.5.34/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.34/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/apache-tomcat-8.5.34 -Dcatalina.home=/usr/local/tomcat/apache-tomcat-8.5.34 -Djava.io.tmpdir=/usr/local/tomcat/apache-tomcat-8.5.34/temp org.apache.catalina.startup.Bootstrap start
root 2008 2007 0 10:23 pts/1 00:00:00 /bin/sh -c ps -ef|grep tomcat
root 2010 2008 0 10:23 pts/1 00:00:00 grep tomcat