2017-05-03 82 views
0

有沒有辦法將一個Puppet文件插入其他Puppet文件?木偶 - 包括另一個文件

我們確實擁有很多帶有由Puppet管理的SSH密鑰定義的服務器,並且我希望爲所有SSH密鑰定義提供一個單獨的文件。主要目標是僅在少數地方更新密鑰定義,而不是我們所有的服務器定義。

非常感謝您

回答

1

使用class - 這是對資源(如您的SSH密鑰資源),你可以用一個行添加到節點或從其他類的容器。當您添加它時,該節點將獲取其中的所有資源。

class sshkeys { 
    ssh_authorized_key { '[email protected]': 
    ensure => present, 
    user => 'foo', 
    type => 'ssh-rsa', 
    key => 'AAAAB3Nza[...]qXfdaQ==', 
    } 

    ssh_authorized_key { '[email protected]': 
    # more... 
    } 
} 

,然後在node塊,使用include

node foo.example.com { 
    include sshkeys 
} 

類定義可以是在相同或在清單目錄中另一個文件,最好就可以開始將它們放入a module layout ,即/etc/puppetlabs/puppet/environments/production/sshkeys/manifests/init.pp Puppet會自動加載它。模塊可以幫助您封裝功能,因爲您可以將文件,模板和更具體的清單和類存儲在一起。