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.
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
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
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
ansible-playbook install.yml
2.5 Verificación del navegador
Verificación del navegador de front-end Verificación
del registro de back-end
3. Adquisición de archivos
链接:https://pan.baidu.com/s/1sHN790EMUISV1P9Okqwa_A
提取码:juey
¡Está todo aquí, escanéalo!