# # Puppet Bootstrap Configuration Manifest. # # This file is responsible to set custom configuration in the bootstrap # repository for values set in the hiera configuration. # # This manifest is useful mostly after you cloned the puppet-boostrap module # and want to configure it to boostrap a whole puppetmaster infrastructure. # # # Basic variables # $templates = "$bootstrap_path/templates" $base_domain = hiera('bootstrap::base_domain', "${::domain}") $first_hostname = hiera('bootstrap::first_hostname', "${::hostname}") $first_nodes = hiera('bootstrap::first_nodes', 'absent') $db_password = hiera('nodo::role::master::db_password', '') $mysql_rootpw = hiera('mysql::server::rootpw', '') $root_password = hiera('bootstrap::root::password', '') $first_user = hiera('bootstrap::first_user', 'user') $first_user_password = hiera('bootstrap::first_user::password', '') $first_user_sshkey = hiera('bootstrap::first_user::sshkey', '') $first_user_email = hiera('bootstrap::first_user::email', 'user@example.org') $resolvconf_nameservers = hiera('nodo::subsystem::resolver::nameservers', '201.6.2.152:201.6.2.32') $global_munin_allow = hiera('nodo::munin_node::allow', '192.168.0.[0-9]*') # # Check bootstrap configuration # if ($mysql_rootpw == '') { alert('You must set mysql::server::rootpw at your configuration') fail() } if ($db_password == '') { alert('You must set nodo::role::master::db_password at your configuration') fail() } if ($root_password == '') { alert('You must set bootstrap::root::password at your configuration') fail() } if ($first_user_password == '') { alert('You must set bootstrap::first_user::password at your configuration') fail() } # # Puppet configuration # file { "$bootstrap_path/puppet.conf": ensure => present, mode => 0644, content => template("$templates/puppet/puppet.conf.erb"), } # Fileserver configuration file { "$bootstrap_path/fileserver.conf": ensure => present, mode => 0644, content => template("$templates/puppet/fileserver.conf.erb"), } file { "$bootstrap_path/auth.conf": ensure => present, mode => 0644, content => template("$templates/puppet/auth.conf.erb"), } # # Basic users # file { "$bootstrap_path/manifests/classes/users.pp": ensure => present, mode => 0644, content => template("$templates/puppet/users.pp.erb"), } # # Site files # file { "$bootstrap_path/modules/site_apache/files/htdocs/images/README.html": ensure => present, mode => 0644, content => template("$templates/apache/htdocs/images/README.html.erb"), } file { "$bootstrap_path/modules/site_apache/files/htdocs/index.html": ensure => present, mode => 0644, content => template("$templates/apache/htdocs/index.html.erb"), } file { "$bootstrap_path/modules/site_apache/files/htdocs/missing.html": ensure => present, mode => 0644, content => template("$templates/apache/htdocs/missing.html.erb"), } file { "$bootstrap_path/modules/site_apache/files/vhosts/git": ensure => present, mode => 0644, content => template("$templates/apache/vhosts/git.erb"), } file { "$bootstrap_path/modules/site_apache/files/vhosts/lists": ensure => present, mode => 0644, content => template("$templates/apache/vhosts/lists.erb"), } file { "$bootstrap_path/modules/site_apache/files/vhosts/mail": ensure => present, mode => 0644, content => template("$templates/apache/vhosts/mail.erb"), } file { "$bootstrap_path/modules/site_apache/files/vhosts/nagios": ensure => present, mode => 0644, content => template("$templates/apache/vhosts/nagios.erb"), } file { "$bootstrap_path/modules/site_apache/files/vhosts/wiki": ensure => present, mode => 0644, content => template("$templates/apache/vhosts/wiki.erb"), } file { "$bootstrap_path/modules/site_mail/files/aliases": ensure => present, mode => 0644, content => template("$templates/etc/aliases.erb"), } file { "$bootstrap_path/modules/site_nagios/files/htpasswd.users": ensure => present, mode => 0644, content => template("$templates/etc/nagios3/htpasswd.users.erb"), } file { "$bootstrap_path/modules/site_nginx/files/$domain": ensure => present, mode => 0644, content => template("$templates/etc/nginx/domain.erb"), } file { "$bootstrap_path/modules/site_postfix/files/tls_policy": ensure => present, mode => 0644, content => template("$templates/postfix/tls_policy.erb"), } # # Basic nodes # file { "$bootstrap_path/manifests/nodes.pp": ensure => present, mode => 0644, content => template("$templates/puppet/nodes.pp.erb"), } # First host file { "$bootstrap_path/manifests/nodes/$first_hostname.pp": ensure => $first_nodes, mode => 0644, content => template("$templates/puppet/server.pp.erb"), } # Master node file { "$bootstrap_path/manifests/nodes/$first_hostname-master.pp": ensure => $first_nodes, mode => 0644, content => template("$templates/puppet/master.pp.erb"), } # Proxy node file { "$bootstrap_path/manifests/nodes/$first_hostname-proxy.pp": ensure => $first_nodes, mode => 0644, content => template("$templates/puppet/proxy.pp.erb"), } # Web node file { "$bootstrap_path/manifests/nodes/$first_hostname-web.pp": ensure => $first_nodes, mode => 0644, content => template("$templates/puppet/web.pp.erb"), } # Storage node file { "$bootstrap_path/manifests/nodes/$first_hostname-storage.pp": ensure => $first_nodes, mode => 0644, content => template("$templates/puppet/storage.pp.erb"), } # Test node file { "$bootstrap_path/manifests/nodes/$first_hostname-test.pp": ensure => $first_nodes, mode => 0644, content => template("$templates/puppet/test.pp.erb"), }