Playbooks Flashcards
Como verificas un paquete con un módulo
ansible server -m yum -a “name=nmap state=latest”
Como se realiza una validación de sintaxis de un playbook
ansible-playbook about.yml —syntax-check
Como se ponen las opciones de vim
.vimrc
Como se ponen opciones de yaml en vim
autocmd FileType yaml setlocal ai ts=2 sw=2 et nu cuc
autocmd FileType yaml colo desertgbmf
Como se busca la ayuda en yum para opciones de vim
Gllllm
Como despliegas más información de verbose de ejecución de playbooks
ansible-playbook -vvvv NAME
Como se escribe un playbook para instalar y copiar httpd
—-
- name: Install and start apache httpd
hosts: web
tasks:- name:
yum:
name: httpd
state: present - name: correct index.html is present
copy:
src: files/index.html
dest: /var/www/html/index.html
- name:
- name: httpd is started service: name: httpd state: started enabled: true
Como se válida que un archivo tenga contenido específico y da valide
—
- name
hosts: serverb
tasks:
- name: Good example of module usage copy: content: nameserver 8.8.8.8 dest: /etc/resolv.conf ...
Como puedes preservar las líneas como
Las
Colocas en módulo copy en playbook
—
- name: example
hosts: serverb
tasks:- name: lots of lines copy: content: | This is line 1 And this line 2 Finally, this is another line in line 3 dest: /var/tmp/lots_of_lines - name: one long line copy: content: > This is one really long line that looks like it may be finalized as many lines but because of the > character, ir will be collapsed dest: /var/tmp/one_line
Como se habilita el servicio firewalld y de ejecuta
- name: firewalld enabled and running
service:
name: firewalld
enabled: true
state: started
Como se habilita el servicio httpd en el firewall com playbooks
- name: firewalld permits access to httpd service
firewalld:
service: http
permanent: true
state: enabled
inmediate: true
Como se habilita e inicia el servicio httpd
- name: httpd enabled and running service: name: httpd enabled: true state: started
Como se usa el módulo uri
- name: connect to intranet web server
hosts: localhost
become: no
tasks:
- name: connect to intranet web server uri: url: http://servera return_content: yes state_code: 200
Como se colocan varios paquetes a instalar con el
Módulo yum en playbooks
- name: latest packages
yum:
name:
- firewalld
- httpd
- mariadb-server
- php
- php-mysqlnd
state: latest
Como se elevan privilegios en un play
- name: nombre
hosts: serverb
become: true
tasks: …
Como se elevan privilegios por un task
name: nombre
become: yes
Module:…
Prueba de contexto en módulo get_url
- name: test php installed get_url: url: http://server/index.php dest: /var/www/html/index.html mode: 0644
Como se instalan paquetes usando variables en playbook
—
- name: NAME
hosts: servera
vars:
packages: - nmap - httpd - php - mod_php - mod_ssl tasks: — name: instalar NAME yum: - name: “{{ packages }}” - state: present
Como se debe de llamar un folder para ser cargado como
Archivo de variables
Grupo
group_vars
Hosts
host_vars
Contenido de archivo de variables
packages:
- systat
Precedencia en grupo de variables
- Command line values
- role defaults
- Inventory file or script group
- Inventory grupo
Como se declara un array en un playbook ambas formas
name: nombre de play
vars:
users: fflinstone: uname: Fred fname: Fred lname: Flintstone home: /home/fflintstone shell: /bin/zsh
tasks:
- name: create a User from array
user:
name: “{{ users.fflintstone.uname }}”
comment: “ {{ users[‘flintstone’][‘fname’] }} {{ users[‘fflintstone’][‘lname’] }}”
shell: “{{ users: [‘flintstone’][‘shell’] }}”
state: present
———
“{{ users.flintstone.uname }}”
Que hace la variable register en las tareas
tasks:
register: VARNAME
Cómo se usa el módulo debug para mostrar el contenido de una variable
- name:
debug:
var: VARNAMEmsg: “string message so var is {{ VARNAME }}”
Si el resultado es un array como se obtiene el valor content de la variable var1
- name: ejemplo de debug
debug:
var: var1.content
Como se elimina el usuario fred en playbook
- name: elimina usuario
hosts: serveratasks:- name: nombre tarea
user:
name: fred
state: absent
- name: nombre tarea
Como se crea un usuario con password que no se vea en playbook
Se crea un archivo de variables
myfile
ansible-vault encrypt my_variables
En playbook especificar solo variable
- name: nombre de play
hosts: servera
tasks:- name: nombre del task user: name: {{ USERNAME }} password: {{ PASSWORD }} state: present
Como se visualiza el contenido de un archivo de variables encriptado
ansible-vault view my_variables
Como se encripta un archivo de variables
ansible-vault encrypt my_variables
Como se modifica el contenido de un archivo de variables encriptado
ansible-vault edit my_variables
Como se ejecuta un playbook con un archivo de variables encriptado
ansible-playbook —vault-id @prompt playbook.yml
Como tienes que crear la estructura para que los
Hosts especificados en folders tomen las variables encriptadas
host_vars/servera.example.com/
Archivo vault
Como se prueba la autenticación por password por ssh
ssh -o PreferredAuthentications=password fred@servera
Como
Se
Cambia el password de un vault de variables de ansible
ansible-vault rekey host_vars/servera.example.com/vault
Como se descripta el password de un ansible vault de variables
ansible-vault decrypt /hosts_vars/servera.example.com/vault
Crear playbook que use archivo encriptado
—- - name: name of play hosts: devservers become: true remote_user: devops
var_files:
- secret.yml
tasks:
- name: creando usuario desde secreto yml user: name: “{{ username }}” password: “{{ pwhash }}”
Como se crea y usa un archivo con password en claro de vault
echo “redhat”> vault-pass
chmod 0600 vault-pass
ansible-playbook create _users.yml —vault-password-file=vault-pass