El siguiente combate cada paso Voy a explicar en detalle, pero si todavía no ve algunos parámetros, consulte ejemplos ansibles varios argumentos detallados y si no se ha instalado ansible, también hay método de montaje.
una aplicación detallada y el papel de 1.Role
oles se encuentra en la estructura organizativa ansible, directorio de libros de jugadas. Pero después de modular, se convierten en la estructura organizativa de las funciones, de fácil lectura, código reutilizable, capa transparente.
verdadero objetivo: por el papel de forma remota Implementación y configuración de nginx
两台机器配置本地解析
[root@ansible-server ~]# vim /etc/hosts
192.168.13.128 ansible-server
192.168.13.129 ansible-web4
[root@ansible-web4 ~]# vim /etc/hosts
192.168.13.128 ansible-server
192.168.13.129 ansible-web4
添加主机组
[root@ansible-server ansible]# vim /etc/ansible/hosts
[webservers4]
ansible-web4
配置免密登录:
[root@ansible-server ~]# ssh-copy-id -i 192.168.13.129
#也可以添加多个被控制节点,这样你就可以同时安装多台
#如果你的其它机器上安装了nginx可以使用 yum remove nginx进行卸载
1. Estructura de directorios:
目录顺序:
role_name/ ---角色名称=目录
files/:存储一些可以用copy调用的静态文件。
tasks/: 存储任务的目录,此目录中至少应该有一个名为main.yml的文件,用于定义各task;其它的文件需要由main.yml进行“包含”调用;
handlers/:此目录中至少应该有一个名为main.yml的文件,用于定义各handler;其它的文件需要由(与notify:名字相同,方便notify通知执行下一条命令)通过main.yml进行“包含”调用;
vars/:此目录中至少应该有一个名为main.yml的文件,用于定义各variable;其它的文件需要由main.yml进行“包含”调用;
templates/:存储由template模块调用的模板文本; (也可以调用变量)(以.j2结尾)
site.yml:定义哪个主机应用哪个角色
=========================================================================================
准备目录结构
[root@ansible-server ~]# cd /etc/ansible/roles/ #role为自带目录,如果不存在可以创建
[root@ansible-server roles]# mkdir nginx/{files,handlers,tasks,templates,vars} -p
创建文件:
[root@ansible-server roles]# touch site.yml nginx/{handlers,tasks,vars}/main.yml
[root@ansible-server roles]# yum install -y tree
1.创建nginx的测试文件
[root@ansible-server roles]# echo 1234 > nginx/files/index.html
2.安装nginx并配置模板
[root@ansible-server roles]# yum -y install epel-release ; yum -y install nginx #yum 安装nginx
[root@ansible-server roles]# cp /etc/nginx/nginx.conf nginx/templates/nginx.conf.j2 #.j2(jin jia 2 模板)
3.编写任务
[root@ansible-server roles]# vim nginx/tasks/main.yml
---
- name: install epel
yum: name=epel-release state=latest
- name: install nginx
yum: name=nginx state=latest
- name: copy nginx.conf templte
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf #template(默认路径在template下面)当然你写绝对路径也可以
- name: copy index.html
copy: src=/etc/ansible/roles/nginx/files/index.html dest=/usr/share/nginx/html/index.html
notify: start nginx #与下面handlers中的名字保持一致
4.编写handlers
[root@ansible-server roles]# vim nginx/handlers/main.yml #编写如下内容
---
- name: start nginx #和notify的名字必须一样
service: name=nginx state=started #启动
5.编写变量
[root@ansible-server roles]# vim nginx/vars/main.yml #添加如下内容
worker_connections: 2 #变量 : 值
6.准备配置文件
[root@ansible-server roles]# vim nginx/templates/nginx.conf.j2
修改成如下内容。其实就是将1改为了2
7.编写剧本
[root@ansible-server roles]# vim site.yml
---
- hosts: webservers4
user: root
roles:
- nginx #指的就是nginx那个目录
检测语法
[root@ansible-server roles]# ansible-playbook site.yml --syntax-check
playbook: site.yml
执行剧本:
[root@ansible-server roles]# ansible-playbook site.yml
Ver:
[root@ansible-web4 ~]# cat /etc/nginx/nginx.conf | grep pro
worker_processes 2;
2. ## lotes implementar Jdk + Tomcat en línea a través del ansible
三台机器配置本地解析,一台做控制节点,另外两台做被控制节点
[root@ansible-server ~]# vim /etc/hosts
192.168.13.128 ansible-server
192.168.13.129 ansible-web1
192.168.13.133 ansible-web2
[root@ansible-web1 ~]# vim /etc/hosts
192.168.13.128 ansible-server
192.168.13.129 ansible-web1
192.168.13.133 ansible-web2
[root@ansible-web2 ~]# vim /etc/hosts
192.168.13.128 ansible-server
192.168.13.129 ansible-web1
192.168.13.133 ansible-web2
添加主机组
[root@ansible-server ansible]# vim /etc/ansible/hosts
[webservers]
ansible-web1
ansible-web2
配置免密登录:
[root@ansible-server ~]# ssh-copy-id -i 192.168.13.129
#也可以添加多个被控制节点,这样你就可以同时安装多台
Si no puede encontrar el paquete de instalación, existen dirección de disco de red
JDK + Tomcat Contraseña: 22ib
注意:如果你的安装包跟我的不一样,不要直接粘贴我的代码
[root@ansible-server ~]# cd /usr/src
[root@ansible-server src]# ls #上传到这个目录下
apache-tomcat-8.5.45 debug kernels tomcat.retry
apache-tomcat-8.5.45.tar.gz jdk-8u211-linux-x64.tar.gz startup.sh tomcat.yml
[root@ansible-server src]# cat tomcat.yml
- hosts: webservers
user: root
tasks:
##配置JDK,上传jdk、tomcat的安装包到/usr/src
- name: configure Jdk1.8
copy: src=/usr/src/jdk-8u211-linux-x64.tar.gz dest=/usr/src
- name: unzip
shell: tar -xvzf /usr/src/jdk-8u211-linux-x64.tar.gz -C /usr/local
- name: rename to java
shell: mv /usr/local/jdk1.8.0_211 /usr/local/java #改名为java
- name: configure envirement1
shell: echo "JAVA_HOME=/usr/local/java" >> /etc/profile
- name: configure envirement2
shell: echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
##Tomcat
- name: copy tomcat
copy: src=/usr/src/apache-tomcat-8.5.45.tar.gz dest=/usr/src
- name: unzip tomcat
shell: tar -xvzf /usr/src/apache-tomcat-8.5.45.tar.gz -C /usr/local
- name: rename to tomcat
shell: mv /usr/local/apache-tomcat-8.5.45 /usr/local/tomcat
- name: copy startup file
copy: src=/usr/src/startup.sh dest=/usr/local/tomcat/bin
notify: start tomcat
handlers:
- name: start tomcat
shell: nohup /usr/local/tomcat/bin/startup.sh nohup: 忽略输入并把输出追加到"nohup.out"
[root@ansible-server src]# vim startup.sh
添加如下代码
#!/bin/sh
source /etc/profile #ansible是不登录用户直接远程执行,不会加载/etc/profile配置文件
Si el procedimiento de instalación por encima de usted no puede leer, se puede referir a la Tomcat install explicar este artículo
Ver a dos máquinas son de si la instalación se ha realizado correctamente
[root@ansible-web1 ~]# /usr/local/tomcat/bin/version.sh #查看是否安装成功
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.45
Server built: Aug 14 2019 22:21:25 UTC
Server number: 8.5.45.0
OS Name: Linux
OS Version: 3.10.0-693.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_211-b12
JVM Vendor: Oracle Corporation
[root@ansible-web2 ~]# /usr/local/tomcat/bin/version.sh #查看是否安装成功
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.45
Server built: Aug 14 2019 22:21:25 UTC
Server number: 8.5.45.0
OS Name: Linux
OS Version: 3.10.0-693.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_211-b12
JVM Vendor: Oracle Corporation
Se puede observar dos nodos de control se instalan correctamente JDK + tomact.