Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1: −
{{TOCright}}
+
Sugar Labs Puppet infrastructure.
 +
 
 +
== Modules ==
 +
 
 +
Puppet modules configure particular services like [[Service/git|git.sugarlabs.org]] or MySQL but not tied to final configurations, they are being configured from [[#Master|puppetmaster]].
 +
 
 +
All modules are collected as repositories in [http://git.sugarlabs.org/puppets puppets] Gitorious project. Modules might be created from scratch or mirrored from upstream, so, all modules that are used within Sugar Labs are stored in one place. Module repository might have followed branches:
 +
 
 +
* ''master'', development version (might be absent if project is mirrorred from upstream),
 +
* ''production'', version is being used in production,
 +
* ''upstream'', if it is mirrorred project.
 +
 
 +
Auto generated [http://api.sugarlabs.org/puppets/ documentation].
 +
 
 +
== Master ==
 +
 
 +
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 ===
 +
 
 +
* {{Code|/var/lib/puppet/etc/puppet.git}}
 +
* {{Code|/var/lib/puppet/etc/puppet}} detached working directory
 +
* {{Code|/etc/puppet}} symlink to detached working directory
 +
* {{Code|/var/lib/puppet/etc/puppet.git/config}}:
   −
Sugar Labs Puppet infrastructure.
+
[core]
 +
repositoryformatversion = 0
 +
filemode = true
 +
bare = false
 +
sharedRepository = true
 +
logallrefupdates = true
 +
worktree = /etc/puppet
 +
 +
[receive]
 +
denycurrentbranch = ignore
 +
 +
[hooks]
 +
mailinglist = systems-logs@...
 +
emailprefix = "[PUPPET] "
 +
showrev = "git show -C %s; echo"
 +
 
 +
* {{Code|/var/lib/puppet/etc/puppet.git/description}}:
 +
 
 +
Sugar Labs Puppet configuration
 +
 
 +
* {{Code|/var/lib/puppet/etc/puppet.git/hooks/post-receive}}
   −
== Low-level modules ==
+
#!/bin/bash
 +
sh /usr/share/doc/git-core/contrib/hooks/post-receive-email
 +
git checkout -f
 +
for i in $(ls /etc/puppet/manifests/nodes/*.pp); do puppet kick $(basename $i .pp); done
   −
Modules to maintain particular applications that don't contain any data tied to end-usage environment, all configuration happen via class/define/type arguments. Not all module repositories might be hosted on git.sugarlabs.org.
+
=== Repository hierarchy ===
   −
'''[http://git.sugarlabs.org/projects/puppet-util util]'''<br>
+
Git repository consists of:
Common infrastructure routines. Module contains only code, not any data.
     −
'''[http://git.sugarlabs.org/projects/puppet-firewall firewall]'''<br>
+
* {{Code|manifests/site.pp}}, main recipe which contain common settings and includes nodes.
High level setup of iptables.
+
* {{Code|manifests/services/}}, recipes that describes final configuration for particular services.
 +
* {{Code|manifests/nodes/}}, puppetized nodes, configuration for hosts that ask puppetmaster.
 +
* {{Code|modules/}}, git submodules with Puppet [[#Modules|modules]].
   −
'''[http://git.sugarlabs.org/projects/puppet-mysql mysql]'''<br>
+
== Nodes ==
MySQL procedures.
     −
'''[http://git.sugarlabs.org/projects/puppet-lighttpd lighttpd]'''<br>
+
Hosts that fetch configuration from the [[#Master|puppetmast]] need <code>puppet >= 2.6</code> package.
Lighttpd support.
     −
'''[http://github.com/reductivelabs/puppet-vcsrepo vcsrepo]'''<br>
+
If {{Code|puppet}} was installed from gems, it needs to be initially configured:
Version control systems procedures.
     −
'''[http://git.sugarlabs.org/projects/puppet-supybot supybot]'''<br>
+
puppet master --mkusers
Setup supybot IRC bot.
     −
== Sugar Labs specific modules ==
+
To complete configuration, execute:
   −
Modules to maintain applications that make sense only in Sugar Labs environment but they don't contain any data tied to end-usage environment, all configuration happen via class/define/type arguments. All module repositories are hosted on git.sugarlabs.org.
+
puppet agent --no-daemonize --onetime --server puppet.sugarlabs.org
   −
'''[http://git.sugarlabs.org/projects/puppet-bazaar bazaar]'''<br>
+
Every puppetized host should have particular node file in {{Code|manifests/nodes/<host-name>.pp}} on [[#Master|puppetmaster]].
Maintain bazaar.sugarlabs.org infrastructure.
 

Navigation menu