Skip to content

Instantly share code, notes, and snippets.

@arunsingh
Created September 1, 2016 09:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arunsingh/6d8468be7d8cfacb10782105b5b7ce7b to your computer and use it in GitHub Desktop.
Save arunsingh/6d8468be7d8cfacb10782105b5b7ce7b to your computer and use it in GitHub Desktop.
class puppet::master_b inherits puppet::client_base_b {
include git
include package::logtail
include package::unicorn-worker-killer
file { "/etc/rsyslog.d/puppet-master.conf" :
source => "puppet:///modules/puppet/master_b/etc/rsyslog.d/puppet-master.conf",
owner => "root",
group => "root",
mode => "444",
require => Package["rsyslog"],
notify => Service["rsyslog"],
}
package { "puppetmaster" :
ensure => "2.7.23-1~deb7u3",
require => Package["puppet"],
}
file { "/etc/logrotate.d/puppetmaster" :
source => "puppet:///modules/puppet/master_b/etc/logrotate.d/puppetmaster",
owner => "root",
group => "root",
mode => "644",
require => [
Package["puppetmaster"],
Package["logrotate"],
],
}
File["/etc/puppet/auth.conf"] {
source => "puppet:///modules/puppet/master_b/etc/puppet/auth.conf",
require => [
Package["puppetmaster"],
Package["puppet"],
],
notify => [
#Service["puppetmaster"],
Service["puppet"],
],
}
File["/etc/puppet/puppet.conf"] {
content => undef,
}
augeas { "update main section":
context => "/files/etc/puppet/puppet.conf",
changes => [
"set main/logdir /var/log/puppet",
"set main/vardir /var/lib/puppet",
"set main/ssldir /var/lib/puppet/ssl",
"set main/rundir /var/run/puppet",
"set main/factpath \$vardir/lib/facter",
"set main/templatedir \$confdir/templates",
"set main/server puppetmaster-b.x0.ls.local",
"set main/certname puppetmaster-b.x2.ls.local",
"set main/bindaddress ${ipaddress}",
"set main/listen true",
"set main/runinterval 300",
"set main/graph true",
"set main/report true",
"set main/environment ${environment}",
],
# notify => Service["puppet"],
# require => Augeas['remove server config'],
}
augeas { "create master section":
context => "/files/etc/puppet/puppet.conf",
changes => [
"ins master after main",
"set master/dns_alt_names puppetmaster1-b.x2.ls.local,puppet.x1.ls.local, puppetmaster-b, puppetmaster1-b",
"set master/modulepath /etc/puppet/modules/puppet2-7-23",
],
onlyif => "match /files/etc/puppet/puppet.conf/master size == 0",
require => [Augeas["update main section"],],
}
file { "/etc/puppet/fileserver.conf" :
ensure => present,
source => "puppet:///modules/puppet/master_b/etc/puppet/fileserver.conf",
owner => "root",
group => "root",
mode => "444",
require => Package["puppetmaster"],
notify => Service["unicorn"],
}
file { "/etc/puppet/manifests" :
ensure => directory,
mode => "755",
owner => "root",
group => "root",
source => "puppet:///modules/puppet/master_b/etc/puppet/manifests",
recurse => true,
purge => true,
force => true,
require => Package["puppetmaster"],
notify => Service["puppet"],
}
service { "puppetmaster" :
ensure => "stopped",
hasstatus => true,
hasrestart => true,
require => Package["puppetmaster"],
}
file { "/var/cache/puppet" :
ensure => directory,
mode => "755",
}
file { "/usr/local/bin/update-puppet-modules.sh" :
source => "puppet:///modules/puppet/master_b/usr/local/bin/update-puppet-modules.sh",
owner => "root",
group => "root",
mode => "744",
}
package { "libmysqlclient-dev" :
ensure => installed,
}
package { "nginx-ls" :
ensure => installed,
}
service { "nginx" :
ensure => running,
hasstatus => true,
hasrestart => true,
require => Package["nginx-ls"],
restart => "/usr/sbin/nginx -t -c /etc/nginx/nginx.conf && /etc/init.d/nginx restart",
start => "/usr/sbin/nginx -t -c /etc/nginx/nginx.conf && /etc/init.d/nginx start",
stop => "/usr/sbin/nginx -t -c /etc/nginx/nginx.conf && /etc/init.d/nginx stop",
}
file { "nginx-ls" :
filepath => ["/var/log/nginx-ls/*.log"],
postrotate => ["[ -x /etc/init.d/nginx-ls ] && /etc/init.d/nginx-ls reload"],
}
package { "unicorn" :
ensure => "4.3.1-4",
}
file { "/var/log/unicorn" :
ensure => directory,
owner => "puppet",
group => "puppet",
mode => "755",
}
file { "/var/log/unicorn-fileserver" :
ensure => directory,
owner => "puppet",
group => "puppet",
mode => "755",
}
file { "/etc/puppet/unicorn.conf" :
ensure => present,
source => "puppet:///modules/puppet/master_b/etc/puppet/unicorn.conf",
owner => "root",
group => "root",
mode => "444",
notify => Service["unicorn"],
}
file { "/etc/puppet/unicorn-fileserver.conf" :
ensure => present,
source => "puppet:///modules/puppet/master_b/etc/puppet/unicorn-fileserver.conf",
owner => "root",
group => "root",
mode => "444",
# notify => Service["unicorn-fileserver"],
}
file { "/etc/puppet/config.ru" :
ensure => present,
source => "puppet:///modules/puppet/master_b/etc/puppet/config.ru",
owner => "root",
group => "root",
mode => "444",
}
file { "/etc/nginx/nginx.conf" :
ensure => present,
source => "puppet:///modules/puppet/master_b/etc/nginx-ls/nginx-ls.conf",
owner => "root",
group => "root",
mode => "644",
notify => Service["nginx"],
}
file { "/etc/init.d/unicorn" :
ensure => present,
source => "puppet:///modules/puppet/master_b/etc/init.d/unicorn",
owner => "root",
group => "root",
mode => "755",
}
file { "/etc/init.d/unicorn-fileserver" :
ensure => present,
source => "puppet:///modules/puppet/master_b/etc/init.d/unicorn-fileserver",
owner => "root",
group => "root",
mode => "755",
}
service { "unicorn" :
ensure => running,
}
service { "unicorn-fileserver" :
ensure => running,
pattern => "unicorn-fileserver",
}
file { "/etc/puppet/files" :
ensure => directory,
mode => "755",
}
file { "/etc/puppet/files/geoip/db/var/lib/geoip" :
ensure => directory,
mode => "755",
}
file { "/usr/local/bin/update-geoip-db.sh" :
source => "puppet:///modules/puppet/master_b/usr/local/bin/update-geoip-db.sh",
owner => "root",
group => "root",
mode => "755",
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment