Line 15: |
Line 15: |
| == Master == | | == Master == |
| | | |
− | Only puppetmaster keeps final configuration for all Sugar Labs services. It is being started on [[Machine/lightwave|security machine]] in private git repository. | + | 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 50: |
Line 50: |
| git checkout -f | | git checkout -f |
| for i in $(ls /etc/puppet/manifests/nodes/*.pp); do puppet kick $(basename $i .pp); done | | for i in $(ls /etc/puppet/manifests/nodes/*.pp); do puppet kick $(basename $i .pp); done |
− |
| |
− | puppet kick $(for i in $(ls /etc/puppet/manifests/nodes/*.pp); do echo $(basename $i .pp); done) || true
| |
| | | |
| === Repository hierarchy === | | === Repository hierarchy === |
Line 57: |
Line 55: |
| Git repository consists of: | | Git repository consists of: |
| | | |
− | * {{Code|modules/}}, all used modules from [http://git.sugarlabs.org/puppets puppets] project in form of submodules.
| |
| * {{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/roles/}}, recipes that describes final configuration for particular service. | + | * {{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. If {{Code|puppet}} was installed from gems, it needs to be initially configured: | + | 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: |
| | | |
− | puppetmasterd --mkusers | + | puppet master --mkusers |
| | | |
− | Node's puppet agent might have optional configuration in {{Code|/etc/puppet/puppet.conf}}:
| + | To complete configuration, execute: |
| | | |
− | [main] | + | puppet agent --no-daemonize --onetime --server puppet.sugarlabs.org |
− | runinterval = <fetch-configuration-in-every-n-seconds>
| |
− | report = true
| |
| | | |
| 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]]. |