Category Archives: puppet

Apache Configuration


title: “Apache Configuration”
date: 2016-01-13T20:25:01
slug: apache-configuration


class { 'apache': # use the "apache" module
 default\_vhost => false, # don't use the default vhost
 default\_mods => false, # don't load default mods
 mpm\_module => 'prefork', # use the "prefork" mpm\_module
 }
 include apache::mod::php # include mod php
 apache::vhost { 'example.com': # create a vhost called "example.com"
 port => '80', # use port 80
 docroot => '/var/www/html', # set the docroot to the /var/www/html
 }
 apache::listen { '80': } #Create Listen Entry
 apache::vhost { 'first.example.com':
 ip => '10.0.0.10',
 docroot => '/var/www/first',
 ip\_based => true,
}

CheetSheet


title: “CheetSheet”
date: 2016-01-13T20:16:54
slug: cheetsheet


# execute 'apt-get update'
exec { 'apt-update': # exec resource named 'apt-update'
 command => '/usr/bin/apt-get update' # command this resource will run
}

# install apache2 package
package { 'apache2':
 require => Exec['apt-update'], # require 'apt-update' before installing
 ensure => installed,
}

# ensure apache2 service is running
service { 'apache2':
 ensure => running,
}

# install mysql-server package
package { 'mysql-server':
 require => Exec['apt-update'], # require 'apt-update' before installing
 ensure => installed,
}

# ensure mysql service is running
service { 'mysql':
 ensure => running,
}

# install php5 package
package { 'php5':
 require => Exec['apt-update'], # require 'apt-update' before installing
 ensure => installed,
}

# ensure info.php file exists
file { '/var/www/html/info.php':
 ensure => file,
 content => '<?php phpinfo(); ?>', # phpinfo code
 require => Package['apache2'], # require 'apache2' package before creating
}

Create new vhost on webXX Nodes


title: “Create new vhost on webXX Nodes”
date: 2016-01-13T20:13:35
slug: create-new-vhost-on-webxx-nodes


node /^www\d+$/ {
 class { 'apache': } # use apache module
 apache::vhost { 'example.com': # define vhost resource
 port => '80',
 docroot => '/var/www/html'
 }
}

Create User


title: “Create User”
date: 2016-01-13T20:09:29
slug: create-user


user { 'mitchell':
 ensure => present,
 uid => '1000',
 gid => '1000',
 shell => '/bin/bash',
 home => '/home/mitchell'
}

Restart a service after file creation


title: “Restart a service after file creation”
date: 2016-01-13T15:57:19
slug: restart-a-service-after-file-creation


file { '/etc/apache2/sites-enabled/mysite':
 owner => root, group => root, mode => 0644,
 source => "puppet:///files/mysite/mysite\_apache.conf",
 notify => Service['apache2'],
}

Create a file (with class)


title: “Create a file (with class)”
date: 2016-01-13T15:53:50
slug: create-a-file-with-class


Creates the files /usr/local/sbin/puppetsimple.sh with owner=root, group=root, mode=0755

file {'/usr/local/sbin/puppetsimple.sh':
 owner => root, group => root, mode => 0755,
 content => "#!/bin/sh
puppet agent --onetime --no-daemonize --verbose $1
",
}

Define a class (container) that do this and execute the class/container

class toolbox{
 file {'/usr/local/sbin/puppetsimple.sh':
 owner => root, group => root, mode => 0755,
 content => "#!/bin/sh
puppet agent --onetime --no-daemonize --verbose $1
",
 }
}

include toolbox

Provide Source Files


title: “Provide Source Files”
date: 2016-01-13T15:47:56
slug: provide-source-files


Add allow * to grant access right for all to the filestore
vi /etc/puppet/fileserver.conf

[files]
 path /etc/puppet/files
 allow \*

Copy the content of the provided file to the created file:

file { '/etc/apache2/sites-enabled/mysite':
 owner => root, group => root, mode => 0644,
 source => "puppet:///files/mysite/mysite\_apache.conf",
}

Resource User


title: “Resource User”
date: 2016-01-13T10:15:13
slug: resource-user


root@host1:/home/ubuntu# puppet resource user root
user { 'root':
 ensure => 'present',
 comment => 'root',
 gid => '0',
 home => '/root',
 password => '\*',
 password\_max\_age => '99999',
 password\_min\_age => '0',
 shell => '/bin/bash',
 uid => '0',
}

Modify Resource (/bin/bash to /bin/sh):

puppet resource user root > user.pp
vi user.pp

user { 'root':
 shell => '/bin/sh',
}
root@host1:/home/ubuntu# puppet apply user.pp
Notice: Compiled catalog for host1.nyc2.example.com in environment production in 0.05 seconds
Notice: /Stage[main]/Main/User[root]/shell: shell changed '/bin/bash' to '/bin/sh'
Notice: Finished catalog run in 0.13 seconds