Puppet
怎樣才能保證那個puppet節點中不存在一個未被實現的使用者呢?
我們將所有使用者聲明為虛擬資源。例如:
@user { 'belmin': uid => 2001 comment => 'Belmin Fernandez', groups => ['sysadmins'], }
有時我們臨時
realize
為一個節點的使用者:node web1 { realize User['belmin'] (...) }
我正在研究確保節點中未實現的使用者不存在於該伺服器上的方法。想到的第一種方法是在臨時
realize
刪除時執行此操作:node web1 { User <| title == 'belmin' |> { ensure => absent, } }
但是,在刪除臨時
realize
. 還有其他更優雅的建議嗎?
在寫這個問題時,想到在課堂上做這樣的事情:
class our_users { user { 'belmin': ensure => absent, uid => 2001 comment => 'Belmin Fernandez', groups => ['sysadmins'], } }
然後,在節點中:
node web1 { include our_users User <| title == 'belmin'|> { ensure => present, } } node web2 { include our_users }
然後,任何沒有實現使用者並且
ensure
屬性被覆蓋的節點都將確保該使用者為absent
。我不完全確定這會起作用,但是在我測試它的時候把它放在那裡,以防它有我沒有發現的弱點/問題。
Puppet 有一種方法可以刪除所有未明確管理的使用者。這包括未實現的虛擬使用者。
resources { 'user': purge => true }
這會忽略 UID 低於 500 的系統使用者(對於 Debian 和一些 BSD,則為 1000)。它通常做正確的事。不用說,這應該非常謹慎地使用。