99 lines
3.9 KiB
Puppet
99 lines
3.9 KiB
Puppet
notice('MODULAR: provision.pp')
|
|
|
|
Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
|
|
|
|
$fuel_settings = parseyaml($astute_settings_yaml)
|
|
|
|
$mco_user = $::fuel_settings['mcollective']['user']
|
|
$mco_pass = $::fuel_settings['mcollective']['password']
|
|
$dns_address = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
|
|
$domain_name = $::fuel_settings['DNS_DOMAIN']
|
|
$dns_search = $::fuel_settings['DNS_SEARCH']
|
|
$forwarders = split($::fuel_settings['DNS_UPSTREAM'], ',')
|
|
$start_address = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_start']
|
|
$end_address = $::fuel_settings['ADMIN_NETWORK']['dhcp_pool_end']
|
|
$network_mask = $::fuel_settings['ADMIN_NETWORK']['netmask']
|
|
$network_address = ipcalc_network_by_address_netmask($start_address, $network_mask)
|
|
$dhcp_gateway = $::fuel_settings['ADMIN_NETWORK']['dhcp_gateway']
|
|
|
|
if $dhcp_gateway {
|
|
$router = $dhcp_gateway
|
|
}
|
|
else {
|
|
$router = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
|
|
}
|
|
|
|
$next_server = $::fuel_settings['ADMIN_NETWORK']['ipaddress']
|
|
$nailgun_api_url = "http://${::fuel_settings['ADMIN_NETWORK']['ipaddress']}:8000/api"
|
|
$ethdevice_timeout = hiera('ethdevice_timeout', '120')
|
|
$ddns_key = hiera('ddns_key', 'VyCWe0kutrawqQ2WEFKkAw=')
|
|
$ddns_key_algorithm = hiera('ddns_key_algorithm', 'HMAC-MD5')
|
|
$ddns_key_name = hiera('ddns_key_name', 'DHCP_UPDATE')
|
|
$bootstrap_menu_label = hiera('bootstrap_menu_label', 'bootstrap')
|
|
$bootstrap_kernel_path = hiera('bootstrap_kernel_path', '/images/vmlinuz')
|
|
$bootstrap_initrd_path = hiera('bootstrap_initrd_path', '/images/initrd.img')
|
|
|
|
$bootstrap_settings = pick($::fuel_settings['BOOTSTRAP'], {})
|
|
$bootstrap_path = pick($bootstrap_settings['path'], '/var/www/nailgun/bootstraps/active_bootstrap')
|
|
$metadata_yaml = file("${bootstrap_path}/metadata.yaml", '/dev/null')
|
|
|
|
if empty($metadata_yaml) {
|
|
$bootstrap_meta = {}
|
|
} else {
|
|
$bootstrap_meta = parseyaml($metadata_yaml)
|
|
}
|
|
|
|
$bootstrap_kernel_params = extend_kopts($bootstrap_meta['extend_kopts'], "console=ttyS0,9600 console=tty0 panic=60 ethdevice-timeout=${ethdevice_timeout} boot=live toram components fetch=http://${next_server}:8080/bootstraps/active_bootstrap/root.squashfs biosdevname=0 url=${nailgun_api_url} mco_user=${mco_user} mco_pass=${mco_pass} ip=frommedia")
|
|
|
|
|
|
$known_hosts = get_merged_network_metadata_from_yamls()
|
|
$chain32_files = tftp_files("/var/lib/tftpboot/pxelinux.cfg", $known_hosts)
|
|
|
|
class { "::provision::dhcpd" :
|
|
network_address => ipcalc_network_by_address_netmask($start_address, $network_mask),
|
|
network_mask => $network_mask,
|
|
broadcast_address => $broadcast_address,
|
|
start_address => $start_address,
|
|
end_address => $end_address,
|
|
router => $router,
|
|
next_server => $next_server,
|
|
dns_address => $dns_address,
|
|
domain_name => $domain_name,
|
|
ddns_key => $ddns_key,
|
|
ddns_key_algorithm => $ddns_key_algorithm,
|
|
ddns_key_name => $ddns_key_name,
|
|
known_hosts => $known_hosts,
|
|
}
|
|
|
|
class { "::provision::tftp" :
|
|
bootstrap_menu_label => $bootstrap_menu_label,
|
|
bootstrap_kernel_path => $bootstrap_kernel_path,
|
|
bootstrap_initrd_path => $bootstrap_initrd_path,
|
|
bootstrap_kernel_params => $bootstrap_kernel_params,
|
|
chain32_files => $chain32_files,
|
|
} ->
|
|
|
|
file { "/var/lib/tftpboot/${bootstrap_kernel_path}" :
|
|
source => "${bootstrap_path}/vmlinuz",
|
|
} ->
|
|
|
|
file { "/var/lib/tftpboot/${bootstrap_initrd_path}" :
|
|
source => "${bootstrap_path}/initrd.img"
|
|
}
|
|
|
|
class { "::provision::named" :
|
|
domain_name => $domain_name,
|
|
dns_address => $dns_address,
|
|
forwarders => $forwarders,
|
|
ddns_key => $ddns_key,
|
|
ddns_key_algorithm => $ddns_key_algorithm,
|
|
ddns_key_name => $ddns_key_name,
|
|
} ->
|
|
|
|
file { '/etc/resolv.conf':
|
|
content => template('fuel/resolv.conf.erb'),
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0644',
|
|
}
|