Puppet

如何使用 Puppet/Augeas 管理 exim dc_local_interfaces 配置?

  • January 20, 2015

我需要將“dc_local_interfaces”的值設置為“127.0.0.1;::1”,但分號阻止了這一點。

這是我在 Puppet 中的定義:

augeas { "/etc/exim4/update-exim4.conf.conf":
 lens    => "Shellvars.lns",
 incl    => "/etc/exim4/update-exim4.conf.conf",
 changes => "set dc_local_interfaces 127.0.0.1;::1",
}

我嘗試了不同的方法來設置該值(不使用撇號、使用撇號、使用反斜杠轉義的撇號),但沒有一個起作用。當我使用 augtool 時一切正常:

set /files/etc/exim4/update-exim4.conf.conf/dc_local_interfaces "'127.0.0.1;::1'"

(幾個小時後,我現在可以直接回答這個問題,而不是使用評論(為了更好的格式))

當我同時編寫問題和測試時,我自己找到了答案,但由於一般來說 exim/puppet 幾乎找不到,我還是決定發布這個,希望其他人會發現它有用。

您必須在外部使用撇號,以便您可以在內部使用引號,以便能夠再次在內部使用轉義撇號。是的。它實際上看起來比聽起來更難看(空格現在也可以使用):

changes => 'set dc_local_interfaces "\'127.0.0.1;::1;test 1 2 3\'"',

引用自:https://serverfault.com/questions/501848