fuel-library/deployment/puppet/fuel/manifests/nailgun/server.pp

183 lines
5.4 KiB
Puppet

class fuel::nailgun::server (
$listen_port = $::fuel::params::nailgun_internal_port,
$keystone_host = $::fuel::params::keystone_host,
$keystone_user = $::fuel::params::keystone_nailgun_user,
$keystone_password = $::fuel::params::keystone_nailgun_password,
$feature_groups = $::fuel::params::feature_groups,
$nailgun_log_level = $::fuel::params::nailgun_log_level,
$db_name = $::fuel::params::nailgun_db_name,
$db_engine = $::fuel::params::db_engine,
$db_host = $::fuel::params::db_host,
$db_port = $::fuel::params::db_port,
$db_user = $::fuel::params::nailgun_db_user,
$db_password = $::fuel::params::nailgun_db_password,
$rabbitmq_host = $::fuel::params::rabbitmq_host,
$rabbitmq_astute_user = $::fuel::params::rabbitmq_astute_user,
$rabbitmq_astute_password = $::fuel::params::rabbitmq_astute_password,
$admin_network,
$admin_network_cidr,
$admin_network_size,
$admin_network_first,
$admin_network_last,
$admin_network_netmask,
$admin_network_mac,
$admin_network_ip,
$admin_network_gateway,
$cobbler_host = $::fuel::params::cobbler_host,
$cobbler_url = $::fuel::params::cobbler_url,
$cobbler_user = $::fuel::params::cobbler_user,
$cobbler_password = $::fuel::params::cobbler_password,
$mco_pskey = $::fuel::params::mco_pskey,
$mco_vhost = $::fuel::params::mco_vhost,
$mco_host = $::fuel::params::mco_host,
$mco_user = $::fuel::params::mco_user,
$mco_password = $::fuel::params::mco_password,
$mco_connector = $::fuel::params::mco_connector,
$ntp_upstream = $::fuel::params::ntp_upstream,
$dns_upstream = $::fuel::params::dns_upstream,
$dns_domain = $::fuel::params::dns_domain,
$exclude_network = $admin_network,
$exclude_cidr = $admin_network_cidr,
) inherits fuel::params {
ensure_packages(['fuel-nailgun', 'python-psycopg2', 'crontabs', 'cronie-anacron',
'uwsgi', 'uwsgi-plugin-common', 'uwsgi-plugin-python'])
$services = [ 'assassind',
'nailgun',
'oswl_flavor_collectord',
'oswl_image_collectord',
'oswl_keystone_user_collectord',
'oswl_tenant_collectord',
'oswl_vm_collectord',
'oswl_volume_collectord',
'receiverd',
'statsenderd' ]
# FIXME(kozhukalov): fuel-nailgun package should provide nailgun group
group { 'nailgun' :
provider => "groupadd",
ensure => "present",
}
# FIXME(kozhukalov): fuel-nailgun package should provide nailgun user
user { 'nailgun' :
ensure => "present",
gid => 'nailgun',
home => "/",
shell => "/bin/false",
require => Group['nailgun'],
}
# FIXME(kozhukalov): fuel-nailgun package should provide
# /etc/nailgun directory
file { "/etc/nailgun":
ensure => directory,
owner => 'root',
group => 'root',
mode => 0755,
}
file { "/etc/logrotate.d/nailgun":
content => template("fuel/logrotate.conf.erb"),
}
# FIXME(kozhukalov): fuel-nailgun package should provide
# /var/log/nailgun directory
file {"/var/log/nailgun":
ensure => directory,
owner => 'root',
group => 'root',
mode => 0755,
}
file { "/etc/nailgun/settings.yaml":
content => template("fuel/nailgun/settings.yaml.erb"),
owner => 'root',
group => 'root',
mode => 0644,
require => File["/etc/nailgun"],
notify => Service[$services],
}
exec {"nailgun_syncdb":
command => "/usr/bin/nailgun_syncdb",
refreshonly => true,
subscribe => File["/etc/nailgun/settings.yaml"],
tries => 50,
try_sleep => 5,
timeout => 0,
}
exec {"nailgun_upload_fixtures":
command => '/usr/bin/nailgun_fixtures',
refreshonly => true,
subscribe => File["/etc/nailgun/settings.yaml"],
require => Exec['nailgun_syncdb'],
tries => 50,
try_sleep => 5,
}
file {"/etc/cron.daily/capacity":
content => template("fuel/nailgun/cron_daily_capacity.erb"),
owner => 'root',
group => 'root',
mode => '0644',
require => Package['cronie-anacron']
}
cron { 'oswl_cleaner':
ensure => present,
command => 'oswl_cleaner',
environment => [ 'MAILTO=""', 'PATH=/bin:/usr/bin:/usr/sbin' ],
user => 'nailgun',
hour => '1',
require => Package['crontabs'],
}
service { 'crond':
ensure => running,
enable => true,
}
$fuel_key = $::generate_fuel_key
if $::physicalprocessorcount > 4 {
$physicalprocessorcount = 8
} else {
$physicalprocessorcount = $::physicalprocessorcount * 2
}
$somaxconn = "4096"
sysctl::value{'net.core.somaxconn': value => $somaxconn}
file { '/etc/nailgun/uwsgi_nailgun.yaml':
content => template('fuel/nailgun/uwsgi_nailgun.yaml.erb'),
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
require => Package[['uwsgi', 'fuel-nailgun']],
} ->
file { '/var/lib/nailgun-uwsgi':
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
} ->
fuel::systemd { $services: }
}