Autor: GONZÁLEZ RODRÍGUEZ, Alberto
Páginas: 440
Coedición: Alfaomega, RC Libros
$688
Hay existencias
Autor: GONZÁLEZ RODRÍGUEZ, Alberto
Páginas: 440
Coedición: Alfaomega, RC Libros
Hay existencias
En la actualidad, Ansible es una popular herramienta de automatización gratuita, de código abierto y con la cual es posible automatizar todos los elementos de una infraestructura, desde servidores hasta dispositivos de red. Los sistemas operativos con los que se puede trabajar son Linux y los derivados de UNIX (AIX, Solaris y BSD), en la parte de red, y soporta los dispositivos más populares (Cisco, Arista, F5, Palo Alto, etc.). Ansible es compatible con los proveedores más famosos de Cloud para automatizar no sólo el despliegue de instancias, sino también para manejar diversos componentes en la nube (grupos de seguridad, redes, direcciones IP públicas y claves públicas). Los proveedores en la nube que se pueden gestionar en Ansible son Amazon Web Services, Azure y Google Cloud Platform. En el presente documento se expone la instalación, la sintaxis de los Playbooks, la estructuración del código y algunos de sus elementos más avanzados. Asimismo, se estudian los proyectos de Ansible Tower, gestor web para la automatización con Ansible, y Ansible Galaxy, proyecto colaborativo que abarca roles (agrupación de código y configuraciones) para efectuar diversas tareas.
VENTAJAS
• Cada uno de los temas se detalla paso a paso, lo que hace que la información sea fácil de aprender.
• Cada capítulo empieza con una introducción que despierta el interés del lector en los temas estudiados.
• Cuenta con un índice analítico que ofrece la posibilidad de una consulta más puntual.
CONOZCA
• El funcionamiento de Ansible y cómo conectarse a los nodos que se van a administrar.
• Las funciones de los módulos y de los argumentos.
• Los elementos avanzados al escribir playbooks.
• En qué consiste Ansible Galaxy y Ansible Tower.
APRENDA
• A trabajar con inventarios dinámicos y estáticos y combinarlos entre sí.
• A trabajar con playbooks en Ansible.
• A utilizar los roles para estructurar ficheros y directorios.
• A utilizar los elementos avanzados que ofrece Ansible como las etiquetas, los filtros y lookups.
DESARROLLE SUS HABILIDADES PARA
• Utilizar el fichero de configuración global de Ansible.
• Utilizar los patrones, las variables y los handlers en Ansible.
• Identificar las funciones de los múltiples módulos.
• Trabajar con el gestor web Ansible Tower y con el proyecto colaborativo Ansible Galaxy.
SOBRE EL AUTOR
Alberto González Rodríguez trabaja actualmente como Cloud Consultant en la empresa Red Hat. Anteriormente trabajó como administrador de Sistemas Senior en la empresa IBM. En sus quince años de experiencia ha centrado sus conocimientos en tecnologías principalmente de código abierto, centrándose en Linux y virtualización. Posee conocimientos de programación y base de datos. Además, es profesor en una plataforma en línea ofreciendo cursos de calidad y prácticos de diferentes tecnologías (en su mayoría de código abierto).
A QUIÉN VA DIRIGIDO
La presente publicación está dirigida a estudiantes del área de automatización, así como a todo público interesado en aprender a manejar esta excelente herramienta llamada Alsino.
ÍNDICE
CAPÍTULO 1. QUÉ ES ANSIBLE …………………………………………………………………. 1
Introducción …………………………………………………………………………………………… 1
Glosario …………………………………………………………………………………………………. 3
CAPÍTULO 2. INSTALACIÓN ……………………………………………………………………… 5
Introducción …………………………………………………………………………………………… 5
CentOS/RHEL/Scientific Linux 7…………………………………………………………………. 6
Ubuntu/Debian ………………………………………………………………………………………. 6
Otras distribuciones/sistemas operativos. ………………………………………………….. 7
Gentoo …………………………………………………………………………………………… 7
FreeBSD ………………………………………………………………………………………….. 7
Solaris …………………………………………………………………………………………….. 7
Arch Linux ……………………………………………………………………………………….. 7
Código fuente …………………………………………………………………………………………. 7
PIP ………………………………………………………………………………………………………… 8
CAPÍTULO 3. PRIMEROS PASOS ……………………………………………………………….. 9
Inventario …………………………………………………………………………………………….. 12
Patrones ………………………………………………………………………………………………. 15
YAML …………………………………………………………………………………………………… 17
ANSIBLE
Inventario en formato YAML …………………………………………………………………… 20
Inventario dinámico ………………………………………………………………………………. 21
Combinar inventarios …………………………………………………………………………….. 25
Ansible en modo Ad-Hoc ………………………………………………………………………… 26
Configuración ……………………………………………………………………………………….. 32
Windows ……………………………………………………………………………………………… 35
CAPÍTULO 4. PLAYBOOKS ……………………………………………………………………… 37
Introducción …………………………………………………………………………………………. 37
Patrones ………………………………………………………………………………………………. 40
Opciones ansible-playbook …………………………………………………………………….. 41
Variables ……………………………………………………………………………………………… 41
Handlers ………………………………………………………………………………………………. 43
Include e import ……………………………………………………………………………………. 45
Prioridad variables ………………………………………………………………………………… 49
Roles ……………………………………………………………………………………………………. 50
Plantillas ………………………………………………………………………………………………. 54
Condiciones ………………………………………………………………………………………….. 55
Bucles ………………………………………………………………………………………………….. 58
with_items ……………………………………………………………………………………….. 58
with_nested ……………………………………………………………………………………… 60
with_dict ………………………………………………………………………………………….. 61
Register ……………………………………………………………………………………………….. 63
delegate_to ………………………………………………………………………………………….. 64
ignore_errors ……………………………………………………………………………………….. 65
failed_when y changed_when ………………………………………………………………… 68
Bloques ……………………………………………………………………………………………….. 69
CAPÍTULO 5. MÓDULOS………………………………………………………………………… 73
Introducción …………………………………………………………………………………………. 73
Módulos tratados de fichero …………………………………………………………………… 76
Argumentos SELINUX …………………………………………………………………………. 77
Argumentos PERMISOS ………………………………………………………………………. 77
Módulo ACL ………………………………………………………………………………………. 78
Módulo ARCHIVE ……………………………………………………………………………….. 80
Módulo ASSEMBLE …………………………………………………………………………….. 81
Módulo BLOCKINFILE …………………………………………………………………………. 83
Módulo COPY ……………………………………………………………………………………. 84
Módulo FETCH …………………………………………………………………………………… 86
Módulo FILE ……………………………………………………………………………………… 87
Módulo FIND …………………………………………………………………………………….. 89
Módulo INI_FILE ………………………………………………………………………………… 92
Módulo LINEINFILE …………………………………………………………………………….. 93
Módulo REPLACE ……………………………………………………………………………….. 96
Módulo STAT …………………………………………………………………………………….. 97
Módulo TEMPLATE …………………………………………………………………………….. 99
Módulo UNARCHIVE …………………………………………………………………………. 100
MÓDULOS DE GESTOR DE PAQUETES …………………………………………………….. 102
Módulo CPANM……………………………………………………………………………….. 104
Módulo EASY_INSTALL ……………………………………………………………………… 105
Módulo PEAR ………………………………………………………………………………….. 106
Módulo PIP ……………………………………………………………………………………… 107
Módulo APT …………………………………………………………………………………….. 109
Módulo APT_KEY ……………………………………………………………………………… 111
Módulo APT_REPOSITORY …………………………………………………………………. 112
Módulo DNF ……………………………………………………………………………………. 113
Módulo PACKAGE …………………………………………………………………………….. 114
Módulo PACMAN …………………………………………………………………………….. 115
Módulo YUM …………………………………………………………………………………… 116
Módulo YUM_REPOSITORY ……………………………………………………………….. 118
Módulo REDHAT_SUBSCRIPTION ……………………………………………………….. 120
Módulo ZYPPER ……………………………………………………………………………….. 122
Módulo ZYPPER_REPOSITORY ……………………………………………………………. 123
MÓDULOS PARA EJECUTAR COMANDOS ………………………………………………… 125
Módulo COMMAND …………………………………………………………………………. 125
Módulo EXPECT ……………………………………………………………………………….. 126
Módulo RAW …………………………………………………………………………………… 127
Módulo SCRIPT ………………………………………………………………………………… 127
Módulo SHELL …………………………………………………………………………………. 128
Módulo TELNET ……………………………………………………………………………….. 130
MÓDULOS UTILIDADES ………………………………………………………………………… 131
Módulo META …………………………………………………………………………………. 131
Módulo ASSERT ……………………………………………………………………………….. 133
Módulo FAIL ……………………………………………………………………………………. 134
Módulo PAUSE ………………………………………………………………………………… 134
Módulo SET_FACT ……………………………………………………………………………. 135
Módulo SET_STATS ………………………………………………………………………….. 136
Módulo WAIT_FOR …………………………………………………………………………… 137
Módulo WAIT_FOR_CONNECTION ……………………………………………………… 140
MÓDULOS NOTIFICACIONES …………………………………………………………………. 141
Módulo HIPCHAT ……………………………………………………………………………… 143
Módulo IRC ……………………………………………………………………………………… 144
Módulo JABBER ……………………………………………………………………………….. 145
Módulo MAIL …………………………………………………………………………………… 147
Módulo PUSHBULLET ……………………………………………………………………….. 148
Módulo PUSHOVER ………………………………………………………………………….. 150
Módulo ROCKETCHAT ………………………………………………………………………. 150
Módulo SLACK …………………………………………………………………………………. 152
Módulo SYSLOGGER …………………………………………………………………………. 153
Módulo TELEGRAM ………………………………………………………………………….. 154
MÓDULOS BASE DE DATOS …………………………………………………………………… 156
Módulo MYSQL_DB ………………………………………………………………………….. 157
Módulo MYSQL_USER ………………………………………………………………………. 158
Argumentos POSTGRESQL …………………………………………………………………. 161
Módulo POSTGRESQL_DB …………………………………………………………………. 161
Módulo POSTGRESQL_USER ……………………………………………………………… 163
Módulo POSTGRESQL_PRIVS ……………………………………………………………… 164
Módulo POSTGRESQL_SCHEMA …………………………………………………………. 166
Módulo MONGODB_USER ………………………………………………………………… 167
MÓDULOS SISTEMA …………………………………………………………………………….. 169
Módulo ALTERNATIVES …………………………………………………………………….. 171
Módulo AUTHORIZED_KEYS ………………………………………………………………. 173
Módulo CRON …………………………………………………………………………………. 174
Módulo FILESYSTEM …………………………………………………………………………. 176
Módulo FIREWALLD …………………………………………………………………………. 177
Módulo GETENT ………………………………………………………………………………. 179
Módulo GROUP ……………………………………………………………………………….. 180
Módulo HOSTNAME …………………………………………………………………………. 182
Módulo IPTABLES …………………………………………………………………………….. 182
Módulo KNOWN_HOSTS …………………………………………………………………… 185
Módulo LVG ……………………………………………………………………………………. 185
Módulo LVOL …………………………………………………………………………………… 186
Módulo MODPROBE …………………………………………………………………………. 188
Módulo MOUNT ………………………………………………………………………………. 188
Módulo PARTED ………………………………………………………………………………. 190
Módulo SEBOOLEAN ………………………………………………………………………… 191
Módulo SEFCONTEXT ……………………………………………………………………….. 192
Módulo SELINUX ……………………………………………………………………………… 193
Módulo SELINUX_PERMISSIVE …………………………………………………………… 194
Módulo SEPORT ………………………………………………………………………………. 195
Módulo SERVICE ………………………………………………………………………………. 196
Módulo SETUP …………………………………………………………………………………. 197
Módulo SYSCTL ………………………………………………………………………………… 199
Módulo SYSTEMD …………………………………………………………………………….. 200
Módulo TIMEZONE …………………………………………………………………………… 201
Módulo USER ………………………………………………………………………………….. 202
MÓDULOS WINDOWS ………………………………………………………………………….. 204
Módulo WIN_PING …………………………………………………………………………… 209
Módulo WIN_CHOCOLATEY ………………………………………………………………. 209
Módulo WIN_COMMAND …………………………………………………………………. 211
Módulo WIN_COPY ………………………………………………………………………….. 212
Módulo WIN_ENVIRONMENT ……………………………………………………………. 213
Módulo WIN_FEATURE …………………………………………………………………….. 214
Módulo WIN_FILE ……………………………………………………………………………. 215
Módulo WIN_FIREWALL ……………………………………………………………………. 215
Módulo WIN_FIREWALL_RULE …………………………………………………………… 216
Módulo WIN_GROUP ……………………………………………………………………….. 218
Módulo WIN_LINEINFILE …………………………………………………………………… 219
Módulo WIN_PACKAGE …………………………………………………………………….. 220
Módulo WIN_SERVICE ………………………………………………………………………. 221
Módulo WIN_TEMPLATE …………………………………………………………………… 223
Módulo WIN_USER ………………………………………………………………………….. 224
MÓDULOS CONTROL DE VERSIONES ………………………………………………………. 226
Módulo BZR …………………………………………………………………………………….. 227
Módulo GIT …………………………………………………………………………………….. 227
Módulo GIT_CONFIG ………………………………………………………………………… 228
Módulo GITHUB_DEPLOY_KEY …………………………………………………………… 228
Módulo GITHUB_KEY ……………………………………………………………………….. 229
Módulo GITHUB_HOOKS …………………………………………………………………… 230
Módulo GITHUB_RELEASE …………………………………………………………………. 231
Módulo GITLAB_GROUP ……………………………………………………………………. 232
Módulo GITLAB_PROJECT …………………………………………………………………. 233
Módulo GITLAB_USER ………………………………………………………………………. 234
Módulo HG ……………………………………………………………………………………… 235
Módulo SUBVERSION ……………………………………………………………………….. 236
MÓDULOS INFRAESTRUCTURA WEB ………………………………………………………. 237
Módulo APACHE2_MODULE ……………………………………………………………… 238
Módulo HTPASSWD ………………………………………………………………………….. 238
Módulo JBOSS …………………………………………………………………………………. 239
Módulo JENKINS_JOB ……………………………………………………………………….. 240
Módulo JENKINS_PLUGIN …………………………………………………………………. 241
Módulo JIRA ……………………………………………………………………………………. 241
Módulo LETSENCRYPT ………………………………………………………………………. 242
Módulo SUPERVISORCTL …………………………………………………………………… 244
MÓDULOS CLOUD ……………………………………………………………………………….. 244
AMAZON ………………………………………………………………………………………… 245
Módulo EC2 …………………………………………………………………………………. 245
Módulo EC2_KEY ………………………………………………………………………….. 247
Módulo EC2_GROUP …………………………………………………………………….. 247
Módulo EC2_SUBNET ……………………………………………………………………. 249
Módulo EC2_VOL …………………………………………………………………………. 250
Módulo IAM ………………………………………………………………………………… 251
AZURE …………………………………………………………………………………………….. 252
Módulo AZURE_RM_RESOURCEGROUP …………………………………………… 253
Módulo AZURE_RM_MANAGED_DISK …………………………………………….. 254
Módulo AZURE_RM_NETWORK ……………………………………………………… 255
Módulo AZURE_RM_SECURITYGROUP …………………………………………….. 256
Módulo AZURE_RM_VIRTUALMACHINE ………………………………………….. 257
DIGITALOCEAN ………………………………………………………………………………… 259
Módulo DIGITAL_OCEAN ……………………………………………………………….. 259
Módulo DIGITAL_OCEAN_BLOCK_STORAGE …………………………………….. 260
Módulo DIGITAL_OCEAN_FLOATING_IP ………………………………………….. 261
Módulo DIGITAL_OCEAN_SSHKEY …………………………………………………… 262
Módulo DIGITAL_OCEAN_TAG ……………………………………………………….. 263
DOCKER ………………………………………………………………………………………….. 263
Módulo DOCKER_CONTAINER ………………………………………………………… 264
Módulo DOCKER_IMAGE ……………………………………………………………….. 265
Módulo DOCKER_LOGIN ……………………………………………………………….. 266
Módulo DOCKER_NETWORK ………………………………………………………….. 267
Módulo DOCKER_VOLUME ……………………………………………………………. 267
GOOGLE ………………………………………………………………………………………….. 268
Módulo GCE ………………………………………………………………………………… 268
Módulo GCE_LABELS …………………………………………………………………….. 269
Módulo GCE_NET …………………………………………………………………………. 270
Módulo GCE_PD …………………………………………………………………………… 272
Módulo GCE_TAG …………………………………………………………………………. 273
LIBVIRT …………………………………………………………………………………………… 274
Módulo VIRT ………………………………………………………………………………… 274
Módulo VIRT_NET ………………………………………………………………………… 275
Módulo VIRT_POOL ………………………………………………………………………. 276
OPENSTACK …………………………………………………………………………………….. 277
Módulo OS_PROJECT …………………………………………………………………….. 277
Módulo OS_NETWORK ………………………………………………………………….. 278
Módulo OS_SUBNET ……………………………………………………………………… 279
Módulo OS_ROUTER …………………………………………………………………….. 280
Módulo OS_SECURITY_GROUP ………………………………………………………. 281
Módulo OS_SECURITY_GROUP_RULE ……………………………………………… 282
Módulo OS_SERVER ……………………………………………………………………… 284
MÓDULOS CLUSTERING ……………………………………………………………………….. 285
MÓDULOS MONITORING ……………………………………………………………………… 286
ZABBIX ……………………………………………………………………………………………….. 287
Módulo ZABBIX_GROUP ……………………………………………………………………. 287
Módulo ZABBIX_HOST ………………………………………………………………………. 288
Módulo ZABBIX_HOSTMACRO …………………………………………………………… 289
Módulo ZABBIX_MAINTENANCE ………………………………………………………… 290
Módulo ZABBIX_SCREEN …………………………………………………………………… 291
MÓDULOS IDENTIDAD …………………………………………………………………………. 292
CYBERARK …………………………………………………………………………………………… 292
IPA …………………………………………………………………………………………………….. 292
Módulo IPA_DNSRECORD …………………………………………………………………. 293
Módulo IPA_GROUP …………………………………………………………………………. 293
Módulo IPA_HOST ……………………………………………………………………………. 294
Módulo IPA_ROLE ……………………………………………………………………………. 295
Módulo IPA_USER ……………………………………………………………………………. 295
Módulo OPENDJ ………………………………………………………………………………….. 297
MÓDULOS INVENTARIO ……………………………………………………………………….. 297
Módulo ADD_HOST ………………………………………………………………………….. 297
Módulo GROUP_BY ………………………………………………………………………….. 299
MÓDULOS MENSAJERÍA ……………………………………………………………………….. 301
MÓDULOS CRIPTOGRAFÍA …………………………………………………………………….. 301
Ejemplo ………………………………………………………………………………………….. 302
MÓDULOS HERRAMIENTAS DE RED ……………………………………………………….. 303
Módulo GET_URL …………………………………………………………………………….. 304
Módulo HAPROXY ……………………………………………………………………………. 305
Módulo LDAP_ENTRY ……………………………………………………………………….. 305
Módulo NSUPDATE ………………………………………………………………………….. 307
Módulo SLURP …………………………………………………………………………………. 307
Módulo URI …………………………………………………………………………………….. 308
MÓDULOS ALMACENAMIENTO……………………………………………………………… 309
MÓDULOS ADMINISTRACIÓN REMOTA ………………………………………………….. 311
MÓDULOS REDES ………………………………………………………………………………… 312
CAPÍTULO 6. CARACTERÍSTICAS AVANZADAS …………………………………………. 315
ETIQUETAS (TAGS) ………………………………………………………………………………. 315
LOOKUPS ……………………………………………………………………………………………. 318
CSVFILE …………………………………………………………………………………………… 320
DIG ………………………………………………………………………………………………… 321
ENV ………………………………………………………………………………………………… 321
FILE ………………………………………………………………………………………………… 322
INI ………………………………………………………………………………………………….. 322
PASSWORD ……………………………………………………………………………………… 323
PIPE ……………………………………………………………………………………………….. 323
URL ………………………………………………………………………………………………… 324
FILTROS ……………………………………………………………………………………………… 325
VAULT ………………………………………………………………………………………………… 348
ANSIBLE-VAULT ……………………………………………………………………………….. 348
create …………………………………………………………………………………………. 348
edit …………………………………………………………………………………………….. 349
encrypt ……………………………………………………………………………………….. 349
decrypt ……………………………………………………………………………………….. 350
rekey ………………………………………………………………………………………….. 350
view ……………………………………………………………………………………………. 350
ANSIBLE-PLAYBOOK …………………………………………………………………………. 351
TAREAS ASÍNCRONAS …………………………………………………………………………… 352
OPCIONES AVANZADAS ………………………………………………………………………… 355
EXTENDER ANSIBLE ……………………………………………………………………………… 357
LOOKUP ………………………………………………………………………………………….. 357
FILTROS ………………………………………………………………………………………….. 358
MÓDULOS ………………………………………………………………………………………. 359
INVENTARIO ……………………………………………………………………………………. 361
Bucles avanzados ………………………………………………………………………………… 361
Local facts …………………………………………………………………………………………… 364
CAPÍTULO 7. ANSIBLE GALAXY ……………………………………………………………… 367
INTRODUCCIÓN …………………………………………………………………………………… 367
COMANDO ANSIBLE-GALAXY ………………………………………………………………… 369
IMPORTAR NUESTRO ROL PARA GALAXY ………………………………………………… 371
FICHERO REQUISITOS …………………………………………………………………………… 377
CAPÍTULO 8. ANSIBLE TOWER ……………………………………………………………… 379
INTRODUCCIÓN …………………………………………………………………………………… 379
INSTALACIÓN ……………………………………………………………………………………… 380
CONFIGURACIÓN ………………………………………………………………………………… 383
Organización …………………………………………………………………………………… 384
Usuarios …………………………………………………………………………………………. 384
Equipos …………………………………………………………………………………………… 386
Credenciales ……………………………………………………………………………………. 387
Trabajos de gestión ………………………………………………………………………….. 388
Scripts de inventario ………………………………………………………………………… 388
Notificaciones ………………………………………………………………………………….. 389
Licencia …………………………………………………………………………………………… 390
Grupo de instancias ………………………………………………………………………….. 390
Configurar tower ……………………………………………………………………………… 391
Autentificación …………………………………………………………………………….. 391
Trabajos ………………………………………………………………………………………. 392
Sistema ……………………………………………………………………………………….. 392
Proyectos …………………………………………………………………………………………… 394
Inventarios …………………………………………………………………………………………. 395
Fuentes …………………………………………………………………………………………… 397
AD HOC …………………………………………………………………………………………… 398
Credenciales ……………………………………………………………………………………….. 399
Plantillas …………………………………………………………………………………………….. 400
Plantillas de flujo de trabajo …………………………………………………………………. 401
Trabajos ……………………………………………………………………………………………… 403
Programar ………………………………………………………………………………………….. 405
Notificaciones …………………………………………………………………………………….. 406
Permisos …………………………………………………………………………………………….. 407
Proyectos ……………………………………………………………………………………….. 407
Inventarios ……………………………………………………………………………………… 407
Plantillas …………………………………………………………………………………………. 408
Credenciales ……………………………………………………………………………………. 409
Avanzado ……………………………………………………………………………………………. 410
Inventario inteligente ……………………………………………………………………….. 410
Encuesta (survey) …………………………………………………………………………….. 411
Callback ………………………………………………………………………………………….. 413
Copia de seguridad / Restauración …………………………………………………….. 414
ÍNDICE ANALÍTICO …..……………………………………………………………………………………417