Merge "Revert "Fix deletion graph (no cobbler mode)"" into stable/newton

This commit is contained in:
Jenkins 2017-03-24 16:57:53 +00:00 committed by Gerrit Code Review
commit a080e4883e
9 changed files with 123 additions and 131 deletions

View File

@ -6,6 +6,7 @@ $data = [
'nodes',
'networks',
'astute',
'known_hosts',
'provision',
'common',
]

View File

@ -2,20 +2,19 @@ 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']
$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
}
@ -23,20 +22,22 @@ 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')
$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')
$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 {
@ -50,44 +51,44 @@ $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,
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,
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_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,
chain32_files => $chain32_files,
} ->
file { "/var/lib/tftpboot/${bootstrap_kernel_path}" :
file { "/var/lib/tftpboot${bootstrap_kernel_path}" :
source => "${bootstrap_path}/vmlinuz",
} ->
file { "/var/lib/tftpboot/${bootstrap_initrd_path}" :
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,
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,
ddns_key_name => $ddns_key_name,
} ->
file { '/etc/resolv.conf':

View File

@ -14,10 +14,9 @@ class provision::dhcpd (
$known_hosts = [],
) inherits provision::params {
$package_name = $::provision::params::dhcpd_package
$service_name = $::provision::params::dhcpd_service
package { $package_name : }
package { "dhcpd" :
name => $::provision::params::dhcpd_package,
}
file { $::provision::params::dhcpd_conf :
ensure => present,
@ -25,8 +24,8 @@ class provision::dhcpd (
owner => 'dhcpd',
group => 'dhcpd',
mode => '0640',
require => Package[$package_name],
notify => Service[$service_name],
require => Package["dhcpd"],
notify => Service["dhcpd"],
}
file { $::provision::params::dhcpd_conf_d :
@ -34,7 +33,7 @@ class provision::dhcpd (
owner => 'root',
group => 'root',
mode => '0755',
require => Package[$package_name],
require => Package["dhcpd"],
}
# It is just a file that could be modified by other modules
@ -43,12 +42,13 @@ class provision::dhcpd (
require => File[$::provision::params::dhcpd_conf_d],
}
service { $service_name :
service { "dhcpd" :
name => $::provision::params::dhcpd_service,
ensure => running,
enable => true,
hasrestart => false,
hasstatus => false,
require => Package[$package_name],
require => Package["dhcpd"],
}
}

View File

@ -7,17 +7,16 @@ class provision::named (
$ddns_key_name = $::provision::params::ddns_key_name,
) inherits provision::params {
$package_name = $::provision::params::named_package
$service_name = $::provision::params::named_service
package { $package_name : }
package { "named" :
name => $::provision::params::named_package,
}
file { "/var/named" :
ensure => directory,
owner => 'named',
group => 'named',
mode => '0750',
require => Package[$package_name],
require => Package["named"],
}
file { $::provision::params::named_conf :
@ -26,8 +25,8 @@ class provision::named (
owner => 'named',
group => 'named',
mode => '0640',
require => Package[$package_name],
notify => Service[$service_name],
require => Package["named"],
notify => Service["named"],
}
file { "/var/named/${domain_name}" :
@ -36,16 +35,17 @@ class provision::named (
owner => 'named',
group => 'named',
mode => '0644',
require => Package[$package_name],
notify => Service[$service_name],
require => Package["named"],
notify => Service["named"],
}
service { $service_name :
service { "named" :
name => $::provision::params::named_service,
ensure => running,
enable => true,
hasrestart => false,
hasstatus => false,
require => Package[$package_name],
require => Package["named"],
}
}

View File

@ -14,23 +14,23 @@ class provision::params {
fail("Unsupported osfamily ${::osfamily}")
}
}
$network_address = "10.20.0.0"
$network_mask = "255.255.255.0"
$broadcast_address = "10.20.0.255"
$start_address = "10.20.0.3"
$end_address = "10.20.0.254"
$router = "10.20.0.1"
$next_server = "10.20.0.2"
$dns_address = "10.20.0.2"
$forwarders = ["8.8.8.8", "8.8.4.4"]
$domain_name = "domain.tld"
$ddns_key = "VyCWe0kutrawqQ2WEFKkAw=="
$ddns_key_algorithm = "HMAC-MD5"
$ddns_key_name = "DHCP_UPDATE"
$bootstrap_kernel_path = "/images/ubuntu_bootstrap/vmlinuz"
$bootstrap_initrd_path = "/images/ubuntu_bootstrap/initrd.img"
$network_address = "10.20.0.0"
$network_mask = "255.255.255.0"
$broadcast_address = "10.20.0.255"
$start_address = "10.20.0.3"
$end_address = "10.20.0.254"
$router = "10.20.0.1"
$next_server = "10.20.0.2"
$dns_address = "10.20.0.2"
$forwarders = ["8.8.8.8", "8.8.4.4"]
$domain_name = "domain.tld"
$ddns_key = "VyCWe0kutrawqQ2WEFKkAw=="
$ddns_key_algorithm = "HMAC-MD5"
$ddns_key_name = "DHCP_UPDATE"
$bootstrap_kernel_path = "/images/ubuntu_bootstrap/vmlinuz"
$bootstrap_initrd_path = "/images/ubuntu_bootstrap/initrd.img"
$bootstrap_kernel_params = "ksdevice=bootif lang= console=ttyS0,9600 console=tty0 toram locale=en_US text boot=live biosdevname=0 components ip=frommedia ethdevice-timeout=120 net.ifnames=1 panic=60"
$bootstrap_menu_label = "ubuntu_bootstrap"
$tftp_root = "/var/lib/tftpboot"
$bootstrap_menu_label = "ubuntu_bootstrap"
}

View File

@ -1,10 +1,9 @@
class provision::tftp (
$bootstrap_kernel_params = $::provision::params::bootstrap_kernel_params,
$bootstrap_kernel_path = $::provision::params::bootstrap_kernel_path,
$bootstrap_initrd_path = $::provision::params::bootstrap_initrd_path,
$bootstrap_menu_label = $::provision::params::bootstrap_menu_label,
$tftp_root = $::provision::params::tftp_root,
$chain32_files = [],
$bootstrap_kernel_path = $::provision::params::bootstrap_kernel_path,
$bootstrap_initrd_path = $::provision::params::bootstrap_initrd_path,
$bootstrap_menu_label = $::provision::params::bootstrap_menu_label,
$chain32_files = [],
) inherits provision::params {
Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
@ -46,7 +45,7 @@ class provision::tftp (
ensure_packages($tftp_packages)
file { ["${tftp_root}/images", "${tftp_root}/pxelinux.cfg"] :
file { ["/var/lib/tftpboot/images", "/var/lib/tftpboot/pxelinux.cfg"] :
ensure => directory,
owner => 'root',
group => 'root',
@ -54,35 +53,35 @@ class provision::tftp (
require => Package[$tftp_packages],
}
file { "${tftp_root}/pxelinux.cfg/default" :
file { "/var/lib/tftpboot/pxelinux.cfg/default" :
ensure => present,
content => template("provision/tftp.default.erb"),
owner => 'root',
group => 'root',
mode => '0644',
require => File["${tftp_root}/pxelinux.cfg"],
require => File["/var/lib/tftpboot/pxelinux.cfg"],
}
file { "${tftp_root}/chain.c32":
file { '/var/lib/tftpboot/chain.c32':
source => '/usr/share/syslinux/chain.c32',
require => Package[$tftp_packages],
}
file { "${tftp_root}/pxelinux.0":
file { '/var/lib/tftpboot/pxelinux.0':
source => '/usr/share/syslinux/pxelinux.0',
require => Package[$tftp_packages],
}
file { "${tftp_root}/menu.c32":
file { '/var/lib/tftpboot/menu.c32':
source => '/usr/share/syslinux/menu.c32',
require => Package[$tftp_packages],
}
# TODO Create custom type that will remove all 01-* files that
# are not in the $chain32_files list
exec { "remove ${tftp_root}/pxelinux.cfg/01-* files" :
command => "find ${tftp_root}/pxelinux.cfg -type f -name '01-*' -delete",
require => File["${tftp_root}/pxelinux.cfg"],
exec { 'remove /var/lib/tftpboot/pxelinux.cfg/01-* files' :
command => "find /var/lib/tftpboot/pxelinux.cfg -type f -name '01-*' -delete",
require => File["/var/lib/tftpboot/pxelinux.cfg"],
} ->
file { $chain32_files :
@ -91,6 +90,6 @@ class provision::tftp (
owner => 'root',
group => 'root',
mode => '0644',
require => File["${tftp_root}/pxelinux.cfg"],
require => File["/var/lib/tftpboot/pxelinux.cfg"],
}
}

View File

@ -1,10 +1,10 @@
defaults
{
log_type = SYSLOG daemon info
log_type = SYSLOG daemon info
log_on_failure = HOST
log_on_success = PID HOST DURATION EXIT
cps = 50 10
cps = 50 10
instances = 50
per_source = 10

View File

@ -7,44 +7,35 @@
type: stage
requires: [deletion_start]
- id: upload_provision_info_master
type: upload_file
version: 2.1.0
role: ['master']
requires: [deletion_start]
required_for: [reconfigure_dhcpd]
parameters:
path: /var/lib/fuel/configs/{CLUSTER_ID}/provision.yaml
timeout: 180
data:
#TODO: Replace dict($.items) to $ when LP1666913 is fixed
yaql_exp: "($.provision.set('packages', $.provision.packages) + $.repo_setup + dict('output' => '/var/www/nailgun/targetimages') + dict($.items())).toYaml()"
- id: reconfigure_dhcpd
type: puppet
version: 2.1.0
role: ['master']
requires: [upload_provision_info_master]
required_for: [node_reboot]
parameters:
puppet_manifest: /etc/puppet/modules/fuel/examples/provision.pp
puppet_modules: /etc/puppet/modules
timeout: 3600
- id: node_reboot
type: reboot
- id: cobbler_enable_netboot
type: master_shell
version: 2.1.0
role: ['/.*/']
requires: [reconfigure_dhcpd]
requires: [deletion_start]
required_for: [move_to_bootstrap]
parameters:
cmd:
yaql_exp: 'concat("sh /etc/puppet/modules/osnailyfacter/modular/provision/netboot enable ", $.provision.name)'
timeout: 180
- id: move_to_bootstrap
type: move_to_bootstrap
version: 2.1.0
role: ['/.*/']
requires: [cobbler_enable_netboot]
required_for: [node_erase]
parameters:
timeout: 300
slave_name:
yaql_exp: '$.provision.name'
provisioning_info:
yaql_exp: '$.provision'
timeout: 180
- id: node_erase
type: erase_node
version: 2.1.0
role: ['/.*/']
requires: [node_reboot]
requires: [move_to_bootstrap]
required_for: [deletion_end]
parameters:
timeout: 180

View File

@ -85,7 +85,7 @@
type: reboot
version: 2.1.0
role: ['/.*/']
requires: [system_provision]
requires: [cobbler_disable_netboot]
required_for: [set_status_provisioned]
parameters:
timeout: 900