Puppet näited

From ICO wiki
Jump to navigationJump to search

Sissejuhatus

rak.planet.zz

puppet.planet.zz

client.planet.zz

Puppet manifestid ja konfiguratsioon

/etc/puppet/fileserver.conf

[export]
path /var/lib/puppet/export
 allow *

/etc/puppet/manifests/site.pp

import "classes/*"

	node basenode {
		include test_class
		include rootkeys
		include userkey
		include hostnames
		package {'cowsay': ensure => latest }
	}	

	node 'client.planet.zz' inherits basenode {
		include tarkvara
		package {'git-cola': ensure => latest }
		package {'vim-puppet': ensure => latest }
		package {'mc': ensure => latest }
		package {'openjdk-7-jre': ensure => latest }
	}
	node 'rak.planet.zz' inherits basenode {
		include tarkvara
		include userid
		include gitkey
		include issue
		class { '::ntp':
 			 servers => [ 'ntp.eenet.ee', 'ntp.ut.ee' ],
		}	
		include weebiserver
		include	mysqlserver
		include dvwa
	}

/etc/puppet/manifests/classes/rak.pp

class weebiserver {

class { 'apache': }

apache::vhost { 'www.planet.zz':
      port          => '80',
      docroot       => '/var/www/www.planet.zz',
      docroot_owner => 'www-data',
      docroot_group => 'www-data',
    }

apache::vhost { 'sales.planet.zz':
      port          => '80',
      docroot       => '/var/www/sales.planet.zz',
      docroot_owner => 'www-data',
      docroot_group => 'www-data',
    }

apache::mod { 'php5': }

#file { '/var/www/www.planet.zz/':
#  ensure => 'directory',
#  group  => 'www-data',
#  mode   => '755',
#  owner  => 'www-data',
#  type   => 'directory',
#}

#file { '/var/www/sales.planet.zz/':
#  ensure => 'directory',
#  group  => 'www-data',
#  mode   => '755',
#  owner  => 'www-data',
 # type   => 'directory',
#}

file { '/var/www/www.planet.zz/index.html':
  ensure  => 'file',
  content => "${fqdn} serveerib hostinime www.planet.zz",
  group   => 'www-data',
  mode    => '644',
  owner   => 'www-data',
#  type    => 'file',
  require => File['/var/www/www.planet.zz'],
}

file { '/var/www/sales.planet.zz/index.html':
  ensure  => 'file',
  content => "${fqdn} serveerib hostinime sales.planet.zz",
  group   => 'www-data',
  mode    => '644',
  owner   => 'www-data',
  require => File['/var/www/sales.planet.zz'],
 # type    => 'file',
}

#File['/var/www/sales.planet.zz/index.html']->File['/var/www/sales.planet.zz']

}


class hostnames {
host { 'www.planet.zz':
  ensure       => 'present',
  host_aliases => ['www'],
  ip           => '192.168.56.201',
  target       => '/etc/hosts',
}

host { 'sales.planet.zz':
  ensure       => 'present',
  host_aliases => ['sales'],
  ip           => '192.168.56.201',
  target       => '/etc/hosts',
}


}

class mysqlserver {
class { '::mysql::server':
  root_password    => 'student',
  override_options => { 'mysqld' => { 'max_connections' => '1024' } }
}
mysql::db { 'dvwa':
      user     => 'dvwa',
      password => 'student',
      host     => 'localhost',
      grant    => ['ALL'],
    }
}

class dvwa {

file { '/root/DVWA-1.0.8.tar.gz':
  ensure  => 'file',
  source => 'puppet:///export/DVWA-1.0.8.tar.gz',
  group   => 'root',
  mode    => '600',
  owner   => 'root',
}

#exec ( pakib lahti ja liigutab teise kohta)
# sätib õigused paika (www-data)
# loob faili dvwa-version sisuga 1.0.8
# läheb käima ainult siis, kui dvwa-version pole õige sisuga

exec {'dvwa_install':
	cwd => '/root',
	path => ["/bin","/usr/bin"],
	subscribe   => File["/root/DVWA-1.0.8.tar.gz"],
	unless => "grep -E '^1\.0\.8$' /root/DVWA_VERSION >/dev/null",
	command => "tar zxf /root/DVWA-1.0.8.tar.gz --directory /var/www/sales.planet.zz && chown www-data:www-data /var/www/sales.planet.zz/DVWA-1.0.8/ -R && ln -sf /var/www/sales.planet.zz/DVWA-1.0.8/ /var/www/sales.planet.zz/dvwa && echo '1.0.8' > /root/DVWA_VERSION",

}

}