From d230bc50ab1882f2d54e06bad0014f7a00e3db90 Mon Sep 17 00:00:00 2001 From: Alessandro Rabiti Date: Thu, 13 Jun 2024 12:03:07 +0200 Subject: [PATCH] feat: aggiunti esempi per 9_template --- 9_template/1_playbook.yaml | 13 +++++++++++++ 9_template/2_playbook.yaml | 15 +++++++++++++++ 9_template/3_playbook.yaml | 19 +++++++++++++++++++ 9_template/README.md | 24 +++++++++++++++++++++--- 9_template/templates/1_resolv.conf.j2 | 3 +++ 9_template/templates/2_resolv.conf.j2 | 4 ++++ 9_template/templates/3_resolv.conf.j2 | 10 ++++++++++ 7 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 9_template/1_playbook.yaml create mode 100644 9_template/2_playbook.yaml create mode 100644 9_template/3_playbook.yaml create mode 100644 9_template/templates/1_resolv.conf.j2 create mode 100644 9_template/templates/2_resolv.conf.j2 create mode 100644 9_template/templates/3_resolv.conf.j2 diff --git a/9_template/1_playbook.yaml b/9_template/1_playbook.yaml new file mode 100644 index 0000000..913e3c5 --- /dev/null +++ b/9_template/1_playbook.yaml @@ -0,0 +1,13 @@ +--- +- name: edito il file resolv.conf + hosts: localhost + vars: + dns1: xxx.xxx.xxx.xxx + dns2: yyy.yyy.yyy.yyy + domain: pippo.net + + tasks: + - name: salvo nella /tmp in locale il risultato del template + ansible.builtin.template: + src: 1_resolv.conf.j2 + dest: /tmp/resolv.conf diff --git a/9_template/2_playbook.yaml b/9_template/2_playbook.yaml new file mode 100644 index 0000000..9196214 --- /dev/null +++ b/9_template/2_playbook.yaml @@ -0,0 +1,15 @@ +--- +- name: edito il file resolv.conf + hosts: localhost + vars: + dns: + - xxx.xxx.xxx.xxx + - yyy.yyy.yyy.yyy + - zzz.zzz.zzz.zzz + domain: pippo.net + + tasks: + - name: salvo nella /tmp in locale il risultato del template + ansible.builtin.template: + src: 2_resolv.conf.j2 + dest: /tmp/resolv.conf diff --git a/9_template/3_playbook.yaml b/9_template/3_playbook.yaml new file mode 100644 index 0000000..2c4e4f5 --- /dev/null +++ b/9_template/3_playbook.yaml @@ -0,0 +1,19 @@ +--- +- name: edito il file resolv.conf + hosts: localhost + vars: + dns_prod: + - xxx.xxx.xxx.xxx + - yyy.yyy.yyy.yyy + - zzz.zzz.zzz.zzz + dns_dr: + - aaa.aaa.aaa.aaa + - bbb.bbb.bbb.bbb + - ccc.ccc.ccc.ccc + domain: pippo.net + + tasks: + - name: salvo nella /tmp in locale il risultato del template + ansible.builtin.template: + src: 3_resolv.conf.j2 + dest: /tmp/resolv.conf diff --git a/9_template/README.md b/9_template/README.md index 2751dea..c03afba 100644 --- a/9_template/README.md +++ b/9_template/README.md @@ -1,9 +1,27 @@ # Alcuni esempi pratici sull'utilizzo dei template in un playbook Ansible -Di default i template vengono salvati nella directory templates (all'inteno della directory del playbook) ed hanno estensione .j2 (jinja) +Di default i template sono salvati nella directory templates (all'inteno della directory del playbook) ed hanno estensione .j2 (jinja) -1) +1) Playbook di esempio che utilizza un semplice template jinja, lo popola con alcune variabili e lo copia nella destinazione indicata nel task: - per lanciare il playbook: ``` -ansible-playbook ... +ansible-playbook 1_playbook.yaml +cat /tmp/resolv.conf # ← per vedere se il file e' stato editato correttamente +``` +2) Playbook di esempio che utilizza un semplice template jinja, lo popola ciclando con un for per le n variabili e lo copia nella destinazione indicata nel task: +- per lanciare il playbook: +``` +ansible-playbook 2_playbook.yaml +cat /tmp/resolv.conf # ← per vedere se il file e' stato editato correttamente +``` +3) Playbook di esempio che utilizza un semplice template jinja, lo popola ciclando con un for, selezionando le n variabili con un if, e lo copia nella destinazione indicata nel task: +- per lanciare il playbook selezionando il **primo** set di variabili: +``` +ansible-playbook 3_playbook.yaml -e env=prod +cat /tmp/resolv.conf # ← per vedere se il file e' stato editato correttamente +``` +- per lanciare il playbook selezionando il **secondo** set di variabili: +``` +ansible-playbook 3_playbook.yaml -e env=dr +cat /tmp/resolv.conf # ← per vedere se il file e' stato editato correttamente ``` diff --git a/9_template/templates/1_resolv.conf.j2 b/9_template/templates/1_resolv.conf.j2 new file mode 100644 index 0000000..817c5d9 --- /dev/null +++ b/9_template/templates/1_resolv.conf.j2 @@ -0,0 +1,3 @@ +nameserver {{dns1}} +nameserver {{dns2}} +search {{domain}} diff --git a/9_template/templates/2_resolv.conf.j2 b/9_template/templates/2_resolv.conf.j2 new file mode 100644 index 0000000..4bcb2d3 --- /dev/null +++ b/9_template/templates/2_resolv.conf.j2 @@ -0,0 +1,4 @@ +{% for ip in dns %} +nameserver {{ip}} +{% endfor %} +search {{domain}} diff --git a/9_template/templates/3_resolv.conf.j2 b/9_template/templates/3_resolv.conf.j2 new file mode 100644 index 0000000..67f2e6d --- /dev/null +++ b/9_template/templates/3_resolv.conf.j2 @@ -0,0 +1,10 @@ +{% if env == "dr" %} +{% for ip in dns_dr %} +nameserver {{ip}} +{% endfor %} +{% else %} +{% for ip in dns_prod %} +nameserver {{ip}} +{% endfor %} +{% endif %} +search {{domain}}