From 01b2048dbf02ac726dabde5e846b9d6ac9aff0e6 Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 11 Mar 2011 14:53:39 -0300 Subject: initial recommit --- manifests/bootstrap.pp | 356 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 manifests/bootstrap.pp (limited to 'manifests/bootstrap.pp') diff --git a/manifests/bootstrap.pp b/manifests/bootstrap.pp new file mode 100644 index 0000000..d8bdbba --- /dev/null +++ b/manifests/bootstrap.pp @@ -0,0 +1,356 @@ +class bootstrap { + + # puppet config + package { "puppet": ensure => installed, } + + service { "puppetmaster": + ensure => running, + require => [ File["$puppet_bootstrap_dir/modules/nodo"], + File["$puppet_bootstrap_dir/puppet.conf"], + File["$puppet_bootstrap_dir/fileserver.conf"], + File["$puppet_bootstrap_dir/auth.conf"], + + # some sample manifests + File["$puppet_bootstrap_dir/manifests/site.pp"], + File["$puppet_bootstrap_dir/manifests/modules.pp"], + File["$puppet_bootstrap_dir/manifests/nodes.pp"], + File["$puppet_bootstrap_dir/manifests/classes/users.pp"], + File["$puppet_bootstrap_dir/manifests/classes/websites.pp"], + File["$puppet_bootstrap_dir/manifests/nodes/$hostname-server.pp"], + File["$puppet_bootstrap_dir/manifests/nodes/$hostname-master.pp"], + File["$puppet_bootstrap_dir/manifests/nodes/$hostname-proxy.pp"], + File["$puppet_bootstrap_dir/manifests/nodes/$hostname-web.pp"], + File["$puppet_bootstrap_dir/manifests/nodes/$hostname-storage.pp"], + File["$puppet_bootstrap_dir/manifests/nodes/$hostname-test.pp"], + + # and some sample files + File["$puppet_bootstrap_dir/files/apache/htdocs/images/README.html"], + File["$puppet_bootstrap_dir/files/apache/htdocs/index.html"], + File["$puppet_bootstrap_dir/files/apache/htdocs/missing.html"], + File["$puppet_bootstrap_dir/files/apache/vhosts/git"], + File["$puppet_bootstrap_dir/files/apache/vhosts/lists"], + File["$puppet_bootstrap_dir/files/apache/vhosts/mail"], + File["$puppet_bootstrap_dir/files/apache/vhosts/nagios"], + File["$puppet_bootstrap_dir/files/apache/vhosts/wiki"], + File["$puppet_bootstrap_dir/files/etc/aliases"], + File["$puppet_bootstrap_dir/files/etc/nagios3/htpasswd.users"], + File["$puppet_bootstrap_dir/files/etc/nginx/$domain"], + File["$puppet_bootstrap_dir/files/etc/nginx/$domain"], + File["$puppet_bootstrap_dir/files/etc/keys/ssl"], + File["$puppet_bootstrap_dir/files/etc/postfix/tls_policy"], ], + } + + # reference to admin vserver + host { "$hostname": + ensure => present, + ip => "127.0.0.1", + host_aliases => [ "$hostname.$domain", "puppet.$domain", "puppet" ], + } + + # puppet submodules script + file { "/usr/local/sbin/puppet-add-sarava-submodules": + source => "files/puppet-add-sarava-submodules", + owner => "root", + group => "root", + mode => 0755, + ensure => present, + require => Package["puppet"], + } + + # execute the bootstrap script to download puppet modules + exec { "/usr/local/sbin/bootstrap get-modules": + creates => "$puppet_bootstrap_dir/modules/nodo", + user => root, + require => [ File["/usr/local/sbin/bootstrap"], File["$puppet_bootstrap_dir/modules"] ], + timeout => 600, + } + + # ensures puppet module nodo exists on system + file { "$puppet_bootstrap_dir/modules/nodo": + ensure => directory, + require => Exec["/usr/local/sbin/bootstrap get-modules"], + } + + # directories + file { "$puppet_bootstrap_dir": + ensure => directory, + owner => "puppet", + group => "puppet", + mode => 0755, + require => Package["puppet"], + } + + file { [ "$puppet_bootstrap_dir/files", + "$puppet_bootstrap_dir/manifests", + "$puppet_bootstrap_dir/modules", + "$puppet_bootstrap_dir/manifests/classes", + "$puppet_bootstrap_dir/manifests/nodes", ]: + ensure => directory, + owner => "puppet", + group => "puppet", + mode => 0755, + require => File["$puppet_bootstrap_dir"], + } + + + + # files in $puppet_bootstrap_dir + file { "$puppet_bootstrap_dir/puppet.conf": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => Package["puppet"], + content => template("bootstrap/puppet/puppet.conf.erb"), + } + + file { "$puppet_bootstrap_dir/fileserver.conf": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => Package["puppet"], + content => template("bootstrap/puppet/fileserver.conf.erb"), + } + + file { "$puppet_bootstrap_dir/auth.conf": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => Package["puppet"], + content => template("bootstrap/puppet/auth.conf.erb"), + } + + # files in $puppet_bootstrap_dir/manifests + file { "$puppet_bootstrap_dir/manifests/site.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests"] ], + content => template("bootstrap/puppet/site.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/modules.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests"] ], + content => template("bootstrap/puppet/modules.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/nodes.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests"] ], + content => template("bootstrap/puppet/nodes.pp.erb"), + } + + # files in $puppet_bootstrap_dir/manifests/classes + file { "$puppet_bootstrap_dir/manifests/classes/websites.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/classes"] ], + content => template("bootstrap/puppet/websites.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/classes/users.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/classes"] ], + content => template("bootstrap/puppet/users.pp.erb"), + } + + # files in $puppet_bootstrap_dir/manifests/nodes + file { "$puppet_bootstrap_dir/manifests/nodes/$hostname-server.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/nodes"] ], + content => template("bootstrap/puppet/server.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/nodes/$hostname-master.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/nodes"] ], + content => template("bootstrap/puppet/master.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/nodes/$hostname-proxy.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/nodes"] ], + content => template("bootstrap/puppet/proxy.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/nodes/$hostname-web.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/nodes"] ], + content => template("bootstrap/puppet/web.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/nodes/$hostname-storage.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/nodes"] ], + content => template("bootstrap/puppet/storage.pp.erb"), + } + + file { "$puppet_bootstrap_dir/manifests/nodes/$hostname-test.pp": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/manifests/nodes"] ], + content => template("bootstrap/puppet/test.pp.erb"), + } + + + # files in $puppet_bootstrap_dir/files + file { [ "$puppet_bootstrap_dir/files", + "$puppet_bootstrap_dir/files/etc", + "$puppet_bootstrap_dir/files/etc/nginx", + "$puppet_bootstrap_dir/files/etc/nagios3", + "$puppet_bootstrap_dir/files/postfix", + "$puppet_bootstrap_dir/files/apache", + "$puppet_bootstrap_dir/files/apache/vhosts", + "$puppet_bootstrap_dir/files/apache/htdocs", + "$puppet_bootstrap_dir/files/apache/htdocs/images", + "$puppet_bootstrap_dir/files/keys", + "$puppet_bootstrap_dir/files/keys/ssl", + "$puppet_bootstrap_dir/files/shorewall", ]: + ensure => directory, + owner => "puppet", + group => "puppet", + mode => 0755, + } + + file { "$puppet_bootstrap_dir/files/apache/htdocs/images/README.html": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/htdocs/images"] ], + content => template("files/apache/htdocs/images/README.html"), + } + + file { "$puppet_bootstrap_dir/files/apache/htdocs/index.html": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/htdocs"] ], + content => template("files/apache/htdocs/index.html.erb"), + } + + file { "$puppet_bootstrap_dir/files/apache/htdocs/missing.html": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/htdocs"] ], + content => template("files/apache/htdocs/missing.html.erb"), + } + + file { "$puppet_bootstrap_dir/files/apache/vhosts/git": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/vhosts"] ], + content => template("files/apache/vhosts/git.erb"), + } + + file { "$puppet_bootstrap_dir/files/apache/vhosts/lists": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/vhosts"] ], + content => template("files/apache/vhosts/lists.erb"), + } + + file { "$puppet_bootstrap_dir/files/apache/vhosts/mail": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/vhosts"] ], + content => template("files/apache/vhosts/mail.erb"), + } + + file { "$puppet_bootstrap_dir/files/apache/vhosts/nagios": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/vhosts"] ], + content => template("files/apache/vhosts/nagios.erb"), + } + + file { "$puppet_bootstrap_dir/files/apache/vhosts/wiki": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/apache/vhosts"] ], + content => template("files/apache/vhosts/wiki.erb"), + } + + file { "$puppet_bootstrap_dir/files/etc/aliases": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/etc"] ], + content => template("files/etc/aliases.erb"), + } + + file { "$puppet_bootstrap_dir/files/etc/nagios3/htpasswd.users": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/etc/nagios3.users"] ], + content => template("files/etc/nagios3/htpasswd.users.erb"), + } + + file { "$puppet_bootstrap_dir/files/etc/nginx/$domain": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/etc/nginx"] ], + content => template("files/etc/nginx/domain.erb"), + } + + file { "$puppet_bootstrap_dir/files/postfix/tls_policy": + ensure => present, + owner => "puppet", + group => "puppet", + mode => 0644, + require => [ Package["puppet"], File["$puppet_bootstrap_dir/files/postfix"] ], + content => template("files/postfix/tls_policy.erb"), + } + +} + -- cgit v1.2.3