Anfügen von Dateien mit Template-Modul in Ansible
So, ich habe eine ansible playbook, das mit einem Jinja2 template zum erstellen einer log-Datei. Jedesmal, wenn ich das playbook es zieht Kunden Informationen vom Kunden.yml und die Ausgabe die fertige Vorlage in eine 'stunnel.conf' Datei. Die Vorlage funktioniert gut, aber ich bin versucht, einen Weg finden, um die Bibliothek der früheren 'stunnel.conf' statt überschreiben Sie es mit dem Template-Modul. Ich möchte hinzufügen, text zu Beginn der " stunnel.conf' manuell und habe es nicht überschrieben. Glaubst du das wäre möglich?
Stunnel.conf
; GFAM - PBSTP
[customer-GFAM-34074]
cert = /etc/stunnel/stunnel.pem
accept = 34094
connect = 35094
; GUANFABANK - FXSIM
[customer-GUANFABANK-34051]
cert = /etc/stunnel/stunnel.pem
accept = 34095
connect = 35095
; ONEZERO2 - TRADESTREAM
[customer-ONEZERO2-39124]
cert = /etc/stunnel/stunnel.pem
accept = 34096
connect = 35096
; BTG-VELOCITY - PBSTP
[customer-BTG-VELOCITY-42533]
cert = /etc/stunnel/stunnel.pem
accept = 34097
connect = 35097
Jinja2 Template
{#CONTEXT: {{ customers }}#}
{% set currentport = 34093%}
{% for cust, config in customers.items() %}
; {{ cust }} - {{ config['type'] }}
[customer-{{ cust }}-{{ config['accept'] }}]
cert = {{ "/etc/stunnel/stunnel.pem" }}
{#accept = {{ config['accept'] }}#}
{#connect = {{ config['connect'] }}#}
accept = {{ currentport + 1 }}
connect = {{ currentport + 1001 }}
{% set currentport = currentport + 1 %}
{% endfor %}
playbook.yml
- include_vars:
file: /home/vagrant/stunnelSimAnsPractice/roles/ns16/vars/customers.yml
name: customers
- template:
src: /home/vagrant/stunnelSimAnsPractice/roles/ns16/templates/stunnel.j2
dest: /home/vagrant/stunnelSimAnsPractice/roles/ns16/output/stunnel.conf
owner: root
group: root
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie blockinfile Modul und Vorlage lookup zu verwalten, pro-client-Blöcke in Ihre stunnel.conf:
Habe ich gekürzt Datei Pfade für die Lesbarkeit.
Diese Weise Ansible suchen wird, verwaltet sperren für bestimmte client (
{{ cust }}
variable) und hinzufügen/ersetzen mit dem Inhalt aus einer Vorlage gebildete stunnel.j2.Möchte ich vorschlagen, es zu tun mögen dieses:
Im playbook könnte es Aussehen: