2016-07-19 17 views
2

Ich versuche die Exim4-Konfiguration auf Debian in Ansible zu automatisieren - wir haben bis zu diesem Zeitpunkt manuell konfiguriert - aber ich bin auf der Bühne stecken wo ich normal laufen würde dpkg-reconfigure exim4-config.Automatisierung * nur * exim4 Konfiguration mit debconf-set-selections mit Ansible

kann ich diese Schritte leicht genug, um automatisieren:

  • Aktualisieren Sie die conf Datei auf /etc/exim4/exim4-config.conf.conf
  • Run dpkg-reconfigure --frontend noninteractive exim4-config

Sie im Textbuch gut laufen, aber das Problem ist, dass nicht alle Optionen, die ich in der interaktiven Eingabeaufforderung sehe, sind in dieser Conf-Datei. Zum Beispiel ist die zweite Einstellung System mail name nirgendwo in der Conf-Datei angegeben. Ebenso wenig ist die letzte Einstellung, Root and postmaster mail recipient, die auch hält in der interaktiven Eingabeaufforderung nach der ersten Konfiguration zeigt sich (warum?)

ich dann sah, dass einige Leute haben vorgeschlagen, mit debconf-set-selections (here), und ich versuchte, ein Blick in das - Ich installierte das Paket und lief dann debconf-get-selections - Ich sah dann alle Optionen dort, aber jetzt frage ich mich, ob es eine Möglichkeit gibt, debconf-set-selections zu verwenden, ohne eine Datei zu verwenden, die alle der Einstellungen alle bei einmal, da ich nur die mit exim4 verbundenen Werte ändern möchte. Ich versuche zu vermeiden, andere Werte zu überschreiben (nicht mit exim4 verbunden), die gesetzt werden könnten, wenn ich das Playbook erneut ausführen muss.

kurz vor der Ausgabe von debconf-get-selections in eine Datei zu schreiben und dann lineinfile/template Module der mit ansible der Werte, die ich ändern will, ersetzen, ist es vielleicht ein einfacher Weg, um darüber zu gehen? Ich würde diese Methode lieber vermeiden.

Antwort

2

Es ist ein bisschen spät, aber ich schlage vor, Sie verwenden die ansible debconf module (es tut im Grunde eine debconf-set-selections).

wie in diesem Beispiel:

- name: Debconf question dc_eximconfig_configtype 
    debconf: name='exim4-config' 
    question: 'exim4/dc_eximconfig_configtype' 
    value: 'internet site; mail is sent and received directly using SMTP' 
    vtype: select 

Oder diese:

- name: Debconf question mailname 
    debconf: name='exim4-config' 
    question: 'exim4/mailname' 
    value: '{{ inventory_hostname }}' 
    vtype: string 

Wenn Sie jedoch sind Neukonfiguration exim (nachdem Sie es einmal konfiguriert), dann müssen Sie zwei Dateien löschen Bevor Sie eine dpkg-reconfigure tun, kann es mit diesen Befehlen erfolgen:

Schließlich tun Sie eine dpkg-reconfigure, die auch exim neu starten.

- name: Reconfigure package exim4-config 
    command: dpkg-reconfigure -fnoninteractive exim4-config