Автоматизация * just * exim4 конфигурации с помощью debconf-set-selection с помощью Ansible

debian ansible configuration-files exim4

1146 просмотра

2 ответа

4330 Репутация автора

Я пытаюсь автоматизировать настройку exim4 в Debian в Ansible - мы до этого момента настраивали вручную - но я застрял на этапе, на котором я обычно работал dpkg-reconfigure exim4-config.

Я могу достаточно легко автоматизировать эти шаги:

  • Обновите файл conf на /etc/exim4/exim4-config.conf.conf
  • Бегать dpkg-reconfigure --frontend noninteractive exim4-config

Они хорошо работают в playbook, однако проблема в том, что не все параметры, которые я вижу в интерактивном приглашении, находятся в этом файле conf. Например, вторая настройка System mail nameне указана нигде в файле conf. Не последний параметр, Root and postmaster mail recipientкоторый также перестает отображаться в интерактивной подсказке после первой настройки (почему?)

Затем я увидел, что некоторые люди предложили использовать debconf-set-selections( здесь ), и я попытался разобраться в этом - я установил debconf-utilsпакет и затем запустил debconf-get-selections- я тогда увидел все варианты там, но теперь мне интересно, есть ли способ использовать debconf-set-selectionsбез необходимость использовать файл, который устанавливает все настройки одновременно, так как я просто хочу изменить значения, связанные с exim4. Я пытаюсь избежать перезаписи любых других значений (не связанных с exim4), которые могут быть установлены, если мне нужно будет снова запустить playbook.

Если не считать записи в debconf-get-selectionsфайл и затем использовать Ansible's lineinfile/ templatemodules для замены значений, которые я хочу изменить, возможно, существует более простой способ сделать это? Я бы предпочел избежать этого метода.

Автор: 3cheesewheel Источник Размещён: 19.07.2016 09:20

Ответы (2)


4 плюса

41 Репутация автора

Уже немного поздно, но я предлагаю вам использовать модуль ansible debconf (в основном это так и есть debconf-set-selections).

Как этот пример:

- 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

Или этот:

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

Однако, если вы переконфигурируете exim (после того, как вы его настроили один раз), то вам нужно удалить 2 файла перед выполнением a dpkg-reconfigure, это можно сделать с помощью следующих команд:

- name: remove exim config files
  file: path={{ item }} state=absent
  with_items:
    - "/etc/exim4/update-exim4.conf.conf"
    - "/etc/mailname"

Наконец, сделайте dpkg-reconfigure, что также перезапустите exim.

- name: Reconfigure package exim4-config
  command: dpkg-reconfigure -fnoninteractive exim4-config
Автор: DeLoVaN Размещён: 16.11.2016 03:51

1 плюс

757 Репутация автора

у меня была следующая ошибка со строками "debconf: name = 'exim4-config'":

ERROR! Syntax Error while loading YAML.

и я также предпочел использовать "value: 'smarthost'" для установки "dc_eximconfig_configtype = 'smarthost'" в /etc/exim4/update-exim4.conf.conf ...

Следовательно, мой файл role / smtp_client / tasks / main.yml содержит следующие строки:

- name: remove exim config files
  file: path={{ item }} state=absent
  with_items:
    - "/etc/exim4/update-exim4.conf.conf"
    - "/etc/mailname"

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

- name: Debconf question dc_eximconfig_configtype
  debconf:
    name: 'dc_eximconfig_configtype exim4-config'
    question: 'exim4/dc_eximconfig_configtype'
    value: 'smarthost'
    vtype: string

- name: Debconf question dc_smarthost
  debconf:
    name: 'dc_smarthost exim4-config'
    question: 'exim4/dc_smarthost'
    value: '{{ my_smtp_server }}'
    vtype: string

- name: Reconfigure package exim4-config
  command: dpkg-reconfigure -fnoninteractive exim4-config
Автор: MaxiReglisse Размещён: 09.07.2018 03:40
Вопросы из категории :
32x32