Chunhuaqiuyue cuando, operación y mantenimiento Ansible artefacto que conoce? ejercicio práctico

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:

Aquí Insertar imagen Descripción

目录顺序:
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

Aquí Insertar imagen Descripción

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

Aquí Insertar imagen Descripción

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;

Aquí Insertar imagen Descripción

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.

Publicado 29 artículos originales · ganado elogios 82 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/baidu_38803985/article/details/104991917
Recomendado
Clasificación