Deploying Custom Files With Jinja2 Templates Flashcards
Como se usa el módulo template
- name: render the configuration
template:
src: vhost.template.j2
dest: /etc/httpd/conf.d/{{ ansible_hostname }}.conf
owner: apache
group: root
Ejemplo de template jinja2
{{ ansible_managed }}
ServerAdmin root@{{ ansible_domain }}
ServerName {{ ansible_fqdn }}
ServerAlias {{ ansible_hostname }}
DocumentRoot /vhosts/{{ ansible_fqdn }}/html
ErrorLog logs/{{ ansible_hostname }}-error.log
CustomLog logs/{{ ansible_hostname}}-access.log common
Ejemplo de loop en template jinja2 template
{% for user in users %}
{{ user }}
{% endfor %}
Como se hace un loop condicional que evite el usuario root de la variable users
{% for myuser in users if not myuser == “root” %}
User number {{ loop.index }} - {{ myuser }}
{% endfor %}
Ejemplo de jinja2 template loop para hosts
{% for myhost in groups[‘myhosts’] %}
{{ myhost }}
{% endfor %}
Ejemplo de
Jinja2 template para hosts usando facts
{% for host un groups[‘all’] %}
{{ hostvars[‘host’][‘ansible_facts’][‘default_ipv4’][‘ipv4.address’] }}
{{ hostvars[‘host’][‘ansible_facts’][‘fqdn’] }} {{ hostvars[‘host’][‘ansible_facts’][‘hostname’] }}
{% endfor %}
Ejemplo para listar usando archivo de variables en diccionario network_data
{% for host in network_data %}
{{ host.ipv4 | ipaddr(‘addresss’) }} {{ host.lname }} {{ host.sname }}
{% endfor %}
Ejemplo de Variable filters en jinja2
{{ output| to_json }}
{{ output| to_yaml }}
{{ output| to_nice_json }}
{{ output| to_nice_yaml }}
{{ output| from_json }}
Como se hace uso del módulo setup para obtener processor y memtotal
ansible hostname -m setup | grep -E ‘processor|memtotal’
Como se listan los todos los hosts
ansible all —list-hosts