2016-07-19 6 views
2

私はDebianのexim4の設定を自動化しようとしています - この時点まで手動で設定していますが、どこで普通に走るのですかdpkg-reconfigure exim4-config。しかし、問題はそのすべてではないです、Debconfを使って* exim4の設定を自動化することができます

  • 更新dpkg-reconfigure --frontend noninteractive exim4-config

彼らは脚本に細かい実行/etc/exim4/exim4-config.conf.conf

  • ランでconfファイル:

    私は簡単に十分なこれらの手順を自動化することができます対話型プロンプトに表示されるオプションはこのconfファイルにあります。たとえば、2番目の設定System mail nameは、confファイルのどこにも指定されていません。 NORも最初の設定後に対話プロンプトに現れて停止した最後の設定、Root and postmaster mail recipientは、ある(理由がある?)

    私はその後、何人かの人々がdebconf-set-selectionshere)を使用して提案していることを見て、私はに探してみましたそれで - debconf-utilsパッケージをインストールしてdebconf-get-selectionsを実行しました - 私はそこにすべてのオプションを見ましたが、使用する方法があるかどうか疑問に思っていますすべての設定のファイルを使用せずにdebconf-set-selections exim4に関連付けられた値を変更したいからです。私は、プレイブックをもう一度実行する必要がある場合に設定される可能性のある他の値(exim4には関連付けられていない)を上書きしないようにしています。ファイルへのdebconf-get-selectionsの出力を書き込み、その後、私は変更したい値を置き換えるためにAnsibleのlineinfile/templateモジュールを使用してのショート

    、おそらくこのついて行くの簡単な方法がありますか?私はこの方法を避けることを好むだろう。

  • 答えて

    2

    少し遅れますが、私はあなたにはdebconf module(これは基本的には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 
    

    またはこの1:

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

    しかし、あなたは(あなたが一度それを設定した後)のeximを再構成している場合は、2つのファイルを削除する必要があります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 
    
    関連する問題