diff --git a/provisioning_templates/cloud_init/cloud_init_default.erb b/provisioning_templates/cloud_init/cloud_init_default.erb index 9e454062..826c215e 100644 --- a/provisioning_templates/cloud_init/cloud_init_default.erb +++ b/provisioning_templates/cloud_init/cloud_init_default.erb @@ -16,9 +16,13 @@ This template accepts the following parameters: - enable-puppetlabs-puppet6-repo: boolean (default=false) -%> <% + rhel_compatible = @host.operatingsystem.family == 'Redhat' && @host.operatingsystem.name != 'Fedora' pm_set = @host.puppetmaster.empty? ? false : true + proxy_uri = host_param('http-proxy') ? "http://#{host_param('http-proxy')}:#{host_param('http-proxy-port')}" : nil puppet_enabled = pm_set || host_param_true?('force-puppet') + chef_enabled = @host.respond_to?(:chef_proxy) && @host.chef_proxy -%> + #cloud-config hostname: <%= @host.name %> fqdn: <%= @host %> @@ -26,8 +30,30 @@ manage_etc_hosts: true users: {} runcmd: - | +<%= indent(2) { snippet 'fix_hosts' } -%> +- | +<%= indent(2) { snippet 'yum_proxy' } -%> +- | +<%= indent(2) { snippet 'ntp' } -%> +- | +<% if rhel_compatible && !host_param_false?('enable-epel') -%> +<%= indent(2) { snippet 'epel' } -%> +<% end -%> +- | <%= indent(2) { snippet 'redhat_register' } -%> - | +<% if host_enc['parameters']['realm'] && @host.realm && (@host.realm.realm_type == 'FreeIPA' || @host.realm.realm_type == 'Red Hat Identity Management') -%> +<%= indent(2) { snippet 'freeipa_register' } %> +<% end -%> +- | +<%= indent(2) { snippet 'remote_execution_ssh_keys' } %> +- | +<%= indent(2) { snippet 'blacklist_kernel_modules' } %> +- | +<% if chef_enabled %> +<%= indent(2) { snippet 'chef_client' } %> +<% end -%> +- | <%= if puppet_enabled && (host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || diff --git a/provisioning_templates/finish/kickstart_default_finish.erb b/provisioning_templates/finish/kickstart_default_finish.erb index 139a0847..2687260d 100644 --- a/provisioning_templates/finish/kickstart_default_finish.erb +++ b/provisioning_templates/finish/kickstart_default_finish.erb @@ -10,7 +10,8 @@ oses: This template accepts the following parameters: - bootloader-append: string (default="nofb quiet splash=quiet") - force-puppet: boolean (default=false) - - ntp-server: string (default="0.fedora.pool.ntp.org") + - use-ntp: boolean (default depends on OS release) + - ntp-server: string (default=undef) - package_upgrade: boolean (default=true) - salt_master: string (default=undef) %> @@ -22,7 +23,6 @@ service network restart <% rhel_compatible = @host.operatingsystem.family == 'Redhat' && @host.operatingsystem.name != 'Fedora' pm_set = @host.puppetmaster.empty? ? false : true - proxy_uri = host_param('http-proxy') ? "http://#{host_param('http-proxy')}:#{host_param('http-proxy-port')}" : nil puppet_enabled = pm_set || host_param_true?('force-puppet') salt_enabled = host_param('salt_master') ? true : false chef_enabled = @host.respond_to?(:chef_proxy) && @host.chef_proxy @@ -33,16 +33,9 @@ service network restart echo 'root:<%= root_pass -%>' | /usr/sbin/chpasswd -e <% end -%> -<% if proxy_uri -%> -# Yum proxy -echo 'proxy = <%= proxy_uri %>' >> /etc/yum.conf -<% end -%> +<%= snippet 'yum_proxy' %> -#update local time -echo "updating system time" -yum -y install ntpdate -/usr/sbin/ntpdate -sub <%= host_param('ntp-server') || '0.fedora.pool.ntp.org' %> -/usr/sbin/hwclock --systohc +<%= snippet 'ntp' %> <% if rhel_compatible && !host_param_false?('enable-epel') -%> <%= snippet 'epel' -%> diff --git a/provisioning_templates/provision/kickstart_default.erb b/provisioning_templates/provision/kickstart_default.erb index e71e62b9..b7a44225 100644 --- a/provisioning_templates/provision/kickstart_default.erb +++ b/provisioning_templates/provision/kickstart_default.erb @@ -21,7 +21,7 @@ This template accepts the following parameters: - enable-puppetlabs-puppet5-repo: boolean (default=false) - enable-puppetlabs-puppet6-repo: boolean (default=false) - salt_master: string (default=undef) -- ntp-server: string (default="0.fedora.pool.ntp.org") +- ntp-server: string (default=undef) - bootloader-append: string (default="nofb quiet splash=quiet") - disable-firewall: boolean (default=false) - package_upgrade: boolean (default=true) @@ -213,18 +213,9 @@ exec < /dev/tty3 > /dev/tty3 <%= snippet 'kickstart_networking_setup' %> <% end -%> -echo "Updating system time" -<% if use_ntp -%> -/usr/sbin/ntpdate -sub <%= host_param('ntp-server') || '0.fedora.pool.ntp.org' %> -<% else -%> -/usr/bin/chronyc makestep -<% end -%> -/usr/sbin/hwclock --systohc +<%= snippet 'ntp' %> -<% if proxy_uri -%> -# Yum proxy -echo 'proxy = <%= proxy_uri %>' >> /etc/yum.conf -<% end -%> +<%= snippet 'yum_proxy' %> <% if rhel_compatible && !host_param_false?('enable-epel') -%> <%= snippet 'epel' -%> @@ -295,4 +286,3 @@ fi sync <%= section_end -%> - diff --git a/provisioning_templates/snippet/ntp.erb b/provisioning_templates/snippet/ntp.erb new file mode 100644 index 00000000..6100f815 --- /dev/null +++ b/provisioning_templates/snippet/ntp.erb @@ -0,0 +1,31 @@ +<%# +kind: snippet +name: ntp +model: ProvisioningTemplate +snippet: true +%> +<%# +This snippet accepts the following parameters: +- use-ntp: boolean (default depends on OS release) +- ntp-server: string (default=undef) +%> + +<% +rhel_compatible = @host.operatingsystem.family == 'Redhat' && @host.operatingsystem.name != 'Fedora' +is_fedora = @host.operatingsystem.name == 'Fedora' +os_major = @host.operatingsystem.major.to_i +use_ntp = host_param_true?('use-ntp') || (is_fedora && os_major < 16) || (rhel_compatible && os_major <= 7) +-%> + +echo "Updating system time" +<% if use_ntp -%> +yum -y install ntpdate + <% if host_param('ntp-server') -%> +/usr/sbin/ntpdate -sub <%= host_param('ntp-server') %> + <% end -%> +systemctl enable --now ntpd +<% else -%> +systemctl enable --now chronyd +/usr/bin/chronyc -a makestep +<% end -%> +/usr/sbin/hwclock --systohc diff --git a/provisioning_templates/snippet/yum_proxy.erb b/provisioning_templates/snippet/yum_proxy.erb new file mode 100644 index 00000000..6d66a137 --- /dev/null +++ b/provisioning_templates/snippet/yum_proxy.erb @@ -0,0 +1,13 @@ +<%# +kind: snippet +name: yum_proxy +model: ProvisioningTemplate +snippet: true +%> +<% +proxy_uri = host_param('http-proxy') ? "http://#{host_param('http-proxy')}:#{host_param('http-proxy-port')}" : nil +-%> + +<% if proxy_uri -%> + echo 'proxy = <%= proxy_uri %>' >> /etc/yum.conf +<% end -%> diff --git a/provisioning_templates/user_data/kickstart_default_user_data.erb b/provisioning_templates/user_data/kickstart_default_user_data.erb index 95c5b57d..11522291 100644 --- a/provisioning_templates/user_data/kickstart_default_user_data.erb +++ b/provisioning_templates/user_data/kickstart_default_user_data.erb @@ -10,7 +10,6 @@ oses: rhel_compatible = @host.operatingsystem.family == 'Redhat' && @host.operatingsystem.name != 'Fedora' # safemode renderer does not support unary negation pm_set = @host.puppetmaster.empty? ? false : true - proxy_uri = host_param('http-proxy') ? "http://#{host_param('http-proxy')}:#{host_param('http-proxy-port')}" : nil puppet_enabled = pm_set || host_param_true?('force-puppet') salt_enabled = host_param('salt_master') ? true : false chef_enabled = @host.respond_to?(:chef_proxy) && @host.chef_proxy @@ -25,16 +24,9 @@ oses: echo 'root:<%= root_pass -%>' | /usr/sbin/chpasswd -e <% end -%> -<% if proxy_uri -%> -# Yum proxy -echo 'proxy = <%= proxy_uri %>' >> /etc/yum.conf -<% end -%> +<%= snippet 'yum_proxy' %> -#update local time -echo "updating system time" -yum -y install ntpdate -/usr/sbin/ntpdate -sub <%= host_param('ntp-server') || '0.fedora.pool.ntp.org' %> -/usr/sbin/hwclock --systohc +<%= snippet 'ntp' %> <% if rhel_compatible && !host_param_false?('enable-epel') -%> <%= snippet 'epel' -%>