El papel de la herramienta automatizada de operación y mantenimiento Ansible-playbook (5)

1. Introducción al rol

Ansible ha introducido nuevas funciones desde la versión 1.2 para la organización jerárquica y estructural de los libros de jugadas. Los roles pueden cargar automáticamente archivos variables, tareas y controladores de acuerdo con la estructura jerárquica. Para usar roles, solo necesita usar la directiva include en el libro de jugadas. En pocas palabras, los roles son un mecanismo mediante el cual las variables, los archivos, las tareas, las plantillas y los procesadores se colocan en directorios separados y se pueden incluir convenientemente. Los roles se usan generalmente en escenarios donde los servicios se construyen en función de la estructura del host, pero también se pueden usar en escenarios como la construcción de demonios.

Estructura del directorio de roles de Ansible

project/   项目名称,有以下子目录
	tasks/  定义task、role的基本元素,至少包含一个名为main.yaml的文件;其他需要的文件在此通过include进行包含
	files/  存放由copy或者script模块调用的文件
	vars/ 不常用,定义变量;至少包含一个名为main.yaml的文件;其他需要的文件在此通过include进行包含
	default/ 不常用,设定默认变量时使用此目录中的main.yaml
	templates/  template模块查找所需要的模板问文件的目录
	handlers/
	meta/  不常用,定义当前角色的特殊设定以及依赖关系

2. Caso

Implemente nginx en uno de los servidores, implemente tomcat en los dos servidores y use nginx como proxy inverso para implementar el acceso de sondeo a los servicios.
Inserte la descripción de la imagen aquí

2.1 El archivo de entrada total del rol

cat install.yml

- hosts: 10.99.200.110
  remote_user: root
  gather_facts: false
  roles:
   - nginx

- hosts: test
  remote_user: root
  gather_facts: false
  roles:
   - tomcat

2.2 implementación de nginx

Inserte la descripción de la imagen aquí

paso 1: definir variables

cat vars / main.yml

# defile nginx deploy host ip
nginx_ip: '10.99.200.110'
nginx_port: 10086
nginx_core: 4
nginx_user: 'root'

tomcat_server: 'TMS'
tomcat_server1: '10.99.200.110'
tomcat_server2: '10.99.200.111'
tomcat_port1: 8080
tomcat_port2: 8080
paso 2: implementar nginx

cat main.yml

- name: unpress nginx
  unarchive: src=install_nginx-1.16.1.tar.gz dest=/tmp/
  tags:
  - unpress

- name: install nginx
  shell: cd /tmp/install_nginx-1.16.1 && bash install.sh

- name: replace nginx conf
  template: src=nginx.conf.ji2 dest=/usr/local/nginx/conf/nginx.conf
  notify:
  - reload-nginx
  tags:
  - reload nginx

- name: start nginx
  shell: /etc/init.d/nginx -s reload
paso 3: plantilla de archivo de configuración nginx

plantillas de gato / nginx.conf.ji2

user {
    
    {
    
     nginx_user }};
worker_processes  {
    
    {
    
     nginx_core }};

events {
    
    
    worker_connections  51200;
    accept_mutex on;
    multi_accept on;
    use epoll;
}

http {
    
    
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 500M;
    client_header_buffer_size 4k;
    server_tokens off;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /usr/local/nginx/logs/access.log  main;
    send_timeout 60;
    tcp_nodelay     on;
    underscores_in_headers on;
    keepalive_timeout  120;
    gzip  on;
    gzip_min_length  10k;
    gzip_buffers     16 64k;
    gzip_http_version 1.1;
    gzip_comp_level 3;
    gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary on;

    proxy_temp_path /usr/local/nginx/ngx_cache 1 2;
    proxy_cache_path /usr/local/nginx/ngx_cache/temp levels=1:2 keys_zone=content:1024m inactive=2d max_size=10G;
    
    upstream {
    
    {
    
     tomcat_server }} {
    
    
      server {
    
    {
    
     tomcat_server1 }}:{
    
    {
    
     tomcat_port1 }}; 
      server {
    
    {
    
     tomcat_server2 }}:{
    
    {
    
     tomcat_port2 }}; 
    }
    server {
    
    
        listen       {
    
    {
    
     nginx_port }};
        server_name  {
    
    {
    
     nginx_ip }};
        location / {
    
    
            root   html;
            index  index.html index.htm;
            proxy_pass http://{
    
    {
    
     tomcat_server }};
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
    }
include      /usr/local/nginx/conf/conf.d/*.conf;
}
paso 4: operación de disparo nginx

manipuladores de gatos / main.yml

- name: reload-nginx
  shell: /etc/init.d/nginx -s reload

2.3 implementación de tomcat

Inserte la descripción de la imagen aquí

paso 1: Defina los parámetros de instalación de tomcat

cat vars / main.yml

# defile tomcat deploy args
tomcat_path: "/u01/isi/application"
tomcat_version: "apache-tomcat-9.0.33"
paso 2: implementar tomcat

tareas del gato / main.yml

# install tomcat
- name: unpress pacakges
  unarchive: src={
    
    {
    
     tomcat_version }}.tar.gz dest={
    
    {
    
     tomcat_path }}

- name: copy scripts for tomcat 
  copy: src=start.sh dest={
    
    {
    
     tomcat_path }}/{
    
    {
    
     tomcat_version }} mode=0755

- name: copy scripts for tomcat
  copy: src=stop.sh dest={
    
    {
    
     tomcat_path }}/{
    
    {
    
     tomcat_version }} mode=0755

- name: start tomcat
  shell: cd {
    
    {
    
     tomcat_path }}/{
    
    {
    
     tomcat_version }} && source /etc/profile && ./start.sh
paso 3: escriba el script de inicio de tomcat

archivos cat / start.sh

#!/bin/bash
cd /u01/isi/application/apache-tomcat-9.0.33
nohup ./bin/startup.sh &

archivos cat / stop.sh

#!/bin/bash
ps -ef | grep apache-tomcat-9.0.33 | grep -v grep | awk '{print $2}' | xargs kill -9

2.4 Detectar y ejecutar un archivo de rol

ansible-playbook --check install.yml Inserte la descripción de la imagen aquí
ansible-playbook install.yml
Inserte la descripción de la imagen aquí

2.5 Verificación del navegador

Verificación del navegador de front-end Verificación Inserte la descripción de la imagen aquí
del registro de back-end
Inserte la descripción de la imagen aquí

3. Adquisición de archivos

链接:https://pan.baidu.com/s/1sHN790EMUISV1P9Okqwa_A 
提取码:juey 

¡Está todo aquí, escanéalo!
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44729138/article/details/114943658
Recomendado
Clasificación