[英]Basic usage of modules in puppet with hiera
我想使用p來管理一些服務器。 即使閱讀了數十個文檔頁面,我仍然不清楚如何使用模塊以及如何將模塊與hiera一起使用。 作為第一個實驗,我希望在一個節點上創建一個用戶“ admin”並找到此模塊-> https://github.com/camptocamp/puppet-accounts
我的/etc/puppet/hiera.yaml看起來像這樣簡單
---
:backends:
- yaml
:hierarchy:
- node/%{::fqdn}
- common
:yaml:
:datadir: /etc/puppet/hieradata
我的/etc/puppet/hieradata/node/node1.example.com.yaml包含了這個
---
accounts::users:
admin:
uid: 1010
comment: admin
accounts::ssh_keys:
admin:
comment: ad
type: ssh-rsa
public: AAAAAAAAAAAAAA
在我將其放入/etc/puppet/manifests/site.pp后,此方法有效
hiera_include('classes')
class
{
'accounts':
ssh_keys => hiera_hash('accounts::ssh_keys', {}),
users => hiera_hash('accounts::users', {}),
usergroups => hiera_hash('accounts::usergroups', {}),
}
accounts::account
{
'admin':
}
這是好習慣嗎? 對我來說,把這些東西放到site.pp中感覺是錯誤的,因為當我以后使用更多模塊時,它會被弄亂。 但是還有什么地方呢? 我還不了解如何將數據與邏輯分開,因為我在node1.example.com.yaml和site.pp(管理員)中都有數據。 一些幫助會很棒。
要了解什么是hiera,您應該簡單地認為Hiera是puppet的數據庫,是變量/值的數據庫,僅此而已。
對於初學者,我建議您專注於系統的其他部分,例如如何創建模塊! 以及如何管理您的需求(無復雜性),然后慢慢構建“智能”食譜或可重復使用的食譜...
您的木偶會首先厭倦名為sites.pp的文件(通常在主$ confdir中(puppet.conf變量。我以后不會再提及環境了。)
如果該目錄下的路徑是/ etc / puppet ,則您有目錄清單 。 有您的sites.pp的地方
通常,sites.pp結構為:
node default {
include *module*
include *module2*
}
node /server\.fqdn\.local/ {
include *module2*
include *module3*
}
這意味着您有一個默認節點(如果節點名稱不適合其他任何節點,將使用默認節點,否則將使用節點FQDN的正則表達式匹配,在這種情況下為server.fqdn.local) 。
模塊(模塊,模塊2和模塊3)存儲在puppet.conf上設置的$ modulespath中。 在我們的情況下,我將使用: / etc / puppet / modules
這棵樹看起來像:
/etc/puppet/modules/
/etc/puppet/modules/module/
/etc/puppet/modules/module/manifests/
/etc/puppet/modules/module/manifests/init.pp
/etc/puppet/modules/module2/
/etc/puppet/modules/module2/manifests/
/etc/puppet/modules/module2/manifests/init.pp
/etc/puppet/modules/module3/
/etc/puppet/modules/module3/manifests/
/etc/puppet/modules/module3/manifests/init.pp
關於課程: https : //docs.puppetlabs.com/puppet/latest/reference/lang_classes.html通常我解釋過的內容但來自puppet實驗室: https : //docs.puppetlabs.com/puppet/latest/reference/dirs_manifest.html
這整個事情對我來說仍然毫無意義。 由於我不得不把
accounts::account
{
'admin':
}
在清單文件中創建該用戶時,hiera在這種情況下有用嗎? 它不會將數據與邏輯分開。 我在.yaml文件(ssh密鑰,其他帳戶數據)和清單文件(上面的代碼段)中都有數據。 通過使用hiera,我希望能夠在/etc/puppet/hieradata/node/node1.example.com.yaml中創建該用戶,但事實並非如此。 什么是正確的方法? 此模塊的示例hiera文件有什么用? 用site.pp中的舊樣式創建帳戶會更容易嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.