Crear un directorio:
### Crear un directorio especificación de secuencia de comandos: mkdir -p / etc / ansible / los Roles / Redis / { archivos , plantillas, VARS, Tareas, por defecto, los manipuladores} ### Contenido Introducción: VARS: almacenamiento de variables de definición de tareas: una lista de toda la ejecución de la tarea tareas principales son los pasos en el directorio .yaml como guión definido también, se puede dividir en varios pasos, y finalmente a los mani.yaml incluir XXX.yaml el interior .. por defecto: el uso de este ajuste, el directorio de variable por defecto manejador: tareas de colocación en el interior después de la configuración cambia la definición de "notificar" para reiniciar la secuencia de comandos meta: definir el papel actual de las dependencias especiales , otros documentos requeridos en este documento - el include *** Todo el directorio anterior debería haber al menos uno principales archivos .yaml dentro del directorio principal. yaml contenido clasificado de acuerdo con la función de escritura, ansible se cargará automáticamente todas Manin en todos los directorios. yaml *** archivos : archivos de almacenamiento de copias por defecto y scripts módulo llamado plantillas: plantillas módulo llama a la enfermedad para encontrar la plantilla del archivo de configuración ### casos : [root @ redescubrir 2 Redis] # árbol . ├── defecto │ └── principales . YAML ├── archivos │ └── principales . YAML ├── manipuladores │ └── principales . YAML ├── tareas │ └── principales . yaml ├── plantillas │ ├── Redis .conf. j2 │ └── Redis .conf. j2_bak └── VARs └── principal . yaml 6, 7 directorios de archivos
Preparación REDIS perfil:
Host ### hosts definidos: [Web] T1 ansible_ssh_host = 10,10 . 4.209 ansible_ssh_port = 22 se ansible_ssh_user = la raíz lista de parámetros de ordenadores ### se puede utilizar: ansible_ssh_host ansible_ssh_port ansible_ssh_user ansible_ssh_pass ansible_python_interpreter . = / Usr / bin / python2 6.6 .... .. ### redis.conf perfil listo (auto-adquirida): cp /etc/redis.conf /etc/ansible/roles/redis/templates/redis.conf.j2
Listo redis.yaml archivo de entrada de ansible-libro de jugadas:
### archivo de script redis.yaml: cd / etc / ansible / vim redis.yaml - anfitriones: # T1 de acuerdo a sus necesidades definir los hosts o grupos de hosts REMOTE_USER: Raíz gather_facts: Los verdaderos los Roles: - Redis ***, de tal manera después de la lista de tareas no se puede escribir en el mismo archivo, de acuerdo con la estructura jerárquica de directorios estándar y de escritura. ***
Todas las etapas de tareas de secuencias:
vim main.yaml - Nombre: Sistema Agregar grupo {{}} redisgroup grupo: gid = {{}} usergid name = {{}} redisgroup estado actual sistema = = Sí - Nombre: Sistema Agregar usuario {{}} redisuser usuario: nombre: ' {{redisuser}} ' contraseña: " $ 6 $ yIKPGtAX $ acGYiPD08gIwwnwGIN1LhUc9JKaN5sMHrJX6VrBNvcrPBwDdiX4yZrzbKX5D6ndQorX35MlCmYekFlkIYc / " shell: / sbin / nologin grupo: ' {{usergid}} ' uid: ' {{useruid}} ' create_home: Es cierto estado: presente -Nombre: crear Redis directorio de base de datos de archivo : path = ' / data / redis_data ' estado = modo de directorio = ' 0755 ' dueño del grupo = {{redisuser}} = {{redisgroup}} - nombre: crear registros de directorio de archivo : path = " / / logs / Redis datos ' estado = modo de directorio = ' 0755 ' dueño del grupo = {{redisuser}} = {{redisgroup}} - nombre: yum instalar {{pkgname}} yum : name = {{pkgname}} = estado presente - nombre: conjunto de plantillas {{}} pkgname archivos de configuración Plantilla: src = 'redis.conf.j2 ' dest = ' /etc/redis.conf ' propietario = {} {} redisuser grupo = {} {} redisgroup mode = ' 0755 ' notificar: - reinicio Redis servicio - nombre: conjunto {{}} pkgname estado del servicio del servicio: nombre = {{elemento}} estatales = comenzado enabled = yes with_items: - Redis
vars definición de variable:
Esta es la definición de una variable de los contenidos de esta ejecución del script definido, puede utilizar una variable con el módulo de configuración de las variables del sistema adquiere el ansible viene, también puede utilizar su propia definición de contenidos, de acuerdo con los requerimientos del cliente puede pkgname: ' Redis ' # iotop, iftop, H TOP ' bindip: ' 127.0.0.1 ' bindip_eth0: " {{}} ansible_eth0.ipv4.address " MODO: ' Sí ' redislog: ' /data/logs/redis/redis.log ' datadb: ' 30 ' DATADIR: ' / datos / redis_data ' redispass: ' 666666 ' MAXNUM: ' 1024 ' appendo:'sí ' redisuser: ' Redis ' redisgroup: ' Redis ' usergid: ' 600 ' useruid: ' 600 '
plantillas definidas redis.conf.j2 archivo de plantilla:
*** sección de configuración de la aplicación, las principales variables de demostración y de la plantilla en el libro de jugadas aquí sólo para mostrar. Las variables vars / main.yaml variable definida en el uso de llamar ' {{}} nombre de variable ' *** *** dentro de Tareas escribió tamplates: automáticamente después de este directorio para encontrar *** [root @ Redis - 2 Redis] # egrep -ve ' ^ # | ^ $ ' Plantillas / redis.conf.j2 el enlace}} {{bindip el enlace {{bindip_eth0 }} protegido - MODO Sí puerto 6379 de TCP -backlog 511 tiempo de espera de 0 TCP -keepalive 300 a daemonize {} {} MODO Supervisado NO PidFile / var / run / redis_6379.pid aviso de nivel de registro del archivo de registro {{}} redislog bases de datos {{}} datadb ahorro 900 1 Guardar 300 10 Guardar 60 10000 parada -escribe-en-bgsave- de error si rdbcompression sí rdbchecksum sí dbfilename dump.rdb dir {{}} datadir esclavo -Serve -stale- Sí datos esclavo -read- solamente sí repl -diskless- sincronización sin repl -diskless- sincronización -delay 5 repl -disable-TCP- nodelay ningún esclavo -priority 100 requirepass {{redispass}} maxclients {{}} MAXNUM 1024m MaxMemory appendOnly {{}} appendo appendfilename " appendonly.aof " appendfsync everysec no -appendfsync-ON- reescribir no auto -aof-rewrite-porcentaje 100 auto -aof-rewrite- min- 64mb tamaño AOF -load- truncada sí lua - tiempo -Limit 5000 slowlog -log-lento-que 10.000 slowlog -max-len 128 latencia -monitor umbral 0 notificar-keyspace-eventos "" de hash -max-ZipList-entradas 512 de hash -max-ZipList-valor 64 lista -max-ZipList-size - 2 lista -compress profundidad 0 conjunto -max-intset-entradas 512 zConfigurar -max-ZipList -Los trabajos 128 zConfigurar -max-ZipList valor 64 HLL opción -sparse-max-bytes 3000 activerehashing sí cliente -output-buffer-límite normal 0 0 0 cliente -output-buffer-límite de 256mb esclavo 64mb 60 cliente -output-buffer-límite pubsub 8 MB 32 MB60 Hz 10 AOF sí -rewrite-incremental fsync
manipuladores de directorio, cuando el archivo de configuración ha cambiado, las tareas dentro de notificar a la reanudación de la aplicación de las medidas:
Nota: después de la tarea descrita en este documento para nombrar y tareas / . Cambios posteriores plantillas plazo que entran dentro main.yaml, descripción coherente de la llamada notificar a Vim main.yaml - Nombre: el reinicio Redis-Service -Servicio: nombre = {{}} pkgname Estado = reiniciado
Ejecutar la secuencia de comandos para iniciar la instalación:
[root @ redescubrir 2 ansible] # ansible- libro de jugadas redis.yaml PLAY [t2] ******************************* ************************************************** ****************************************** [Datos] Gathering TAREA *** ************************************************** ************************************************** ******* ok: [T2] de la tarea [Redis: grupo Añadir sistema ReDiS] ***************************** ************************************************** **************** ok: [T2] de la tarea [Redis: Sistema Agregar usuario ReDiS] ******************** ************************************************** ************************** bien: [t2] La tarea [Redis: crear Redis directorio de la base] ***************************************** ********************************************* bien: [t2] la tarea [Redis: crear directorio de registros] ****************************************** ************************************************** **** bien: [t2] TAREA [Redis: yum instalar Redis] ********************************* ************************************************** ***************** ok: [T2] de la tarea [Redis: conjunto de plantillas ReDiS archivos Config] ****************** ************************************************** ****************** bien: [T2] de la tarea [Redis: conjunto ReDiS estado del servicio]************************************************** ******************************************* bien: [t2] => (item = redis) RECAP JUEGO ******************************************* ************************************************** ***************************** t2: ok = 8 cambió = 0 inalcanzable = 0 failed = 0 saltamos = 0 rescatado = 0 ignorados = 0