Infrastructure Team/Puppet: Difference between revisions
No edit summary |
No edit summary |
||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 15: | Line 15: | ||
== Master == | == Master == | ||
Only puppetmaster keeps final configuration for all Sugar Labs services. It is being started on [[Machine/lightwave | Only puppetmaster keeps final configuration for all Sugar Labs services. It is being started in a private git repository on [[Machine/lightwave]], which is a high security machine. | ||
=== Private repository === | === Private repository === | ||
| Line 47: | Line 47: | ||
#!/bin/bash | #!/bin/bash | ||
sh /usr/share/doc/git-core/contrib/hooks/post-receive-email | |||
git checkout -f | git checkout -f | ||
for i in $(ls /etc/puppet/manifests/nodes/*.pp); do puppet kick $(basename $i .pp); done | |||
=== Repository hierarchy === | === Repository hierarchy === | ||
| Line 57: | Line 55: | ||
Git repository consists of: | Git repository consists of: | ||
* {{Code|manifests/site.pp}}, main recipe which contain common settings and includes nodes. | * {{Code|manifests/site.pp}}, main recipe which contain common settings and includes nodes. | ||
* {{Code|manifests/ | * {{Code|manifests/services/}}, recipes that describes final configuration for particular services. | ||
* {{Code|manifests/nodes/}}, puppetized nodes, configuration for hosts that ask puppetmaster. | * {{Code|manifests/nodes/}}, puppetized nodes, configuration for hosts that ask puppetmaster. | ||
* {{Code|modules/}}, git submodules with Puppet [[#Modules|modules]]. | |||
== Nodes == | == Nodes == | ||
Hosts that fetch configuration from the [[#Master|puppetmast]] need <code>puppet >= 2.6</code> package. | Hosts that fetch configuration from the [[#Master|puppetmast]] need <code>puppet >= 2.6</code> package. | ||
If {{Code|puppet}} was installed from gems, it needs to be initially configured: | |||
puppet master --mkusers | |||
To complete configuration, execute: | |||
puppet agent --no-daemonize --onetime --server puppet.sugarlabs.org | |||
Every puppetized host should have particular node file in {{Code|manifests/nodes/<host-name>.pp}} on [[#Master|puppetmaster]]. | Every puppetized host should have particular node file in {{Code|manifests/nodes/<host-name>.pp}} on [[#Master|puppetmaster]]. | ||