diff --git a/app/views/unattended/provisioning_templates/cloud_init/cloud_init_default.erb b/app/views/unattended/provisioning_templates/cloud_init/cloud_init_default.erb index 86ba4fbe961..94b28a8ff2e 100644 --- a/app/views/unattended/provisioning_templates/cloud_init/cloud_init_default.erb +++ b/app/views/unattended/provisioning_templates/cloud_init/cloud_init_default.erb @@ -20,6 +20,7 @@ description: | booted from the image. The image must have cloud-init installed in order for this to work. This template accepts the following parameters: - force-puppet: boolean (default=false) + - enable-openvox8-repo: boolean (default=false) - enable-puppetlabs-repo: boolean (default=false) - enable-puppetlabs-puppet5-repo: boolean (default=false) - enable-puppetlabs-puppet6-repo: boolean (default=false) @@ -74,7 +75,9 @@ runcmd: <% end -%> <% if puppet_enabled -%> - | -<% if host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> +<% if host_param_true?('enable-openvox8-repo') -%> +<%= indent(2) { snippet 'openvox_repo' } %> +<% elsif host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> <%= indent(2) { snippet 'puppetlabs_repo' } %> <% end -%> <%= indent(2) { snippet 'puppet_setup' } %> diff --git a/app/views/unattended/provisioning_templates/finish/kickstart_default_finish.erb b/app/views/unattended/provisioning_templates/finish/kickstart_default_finish.erb index 7858eb1671d..665ee4ac67b 100644 --- a/app/views/unattended/provisioning_templates/finish/kickstart_default_finish.erb +++ b/app/views/unattended/provisioning_templates/finish/kickstart_default_finish.erb @@ -78,7 +78,9 @@ chmod +x /root/remote_execution_pull_setup.sh <% end -%> <% if puppet_enabled %> -<% if host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> +<% if host_param_true?('enable-openvox8-repo') -%> +<%= snippet 'openvox_repo' %> +<% elsif host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> <%= snippet 'puppetlabs_repo' %> <% end -%> <%= snippet 'puppet_setup' %> diff --git a/app/views/unattended/provisioning_templates/finish/preseed_default_finish.erb b/app/views/unattended/provisioning_templates/finish/preseed_default_finish.erb index 2e627da657c..557ccc6a3e8 100644 --- a/app/views/unattended/provisioning_templates/finish/preseed_default_finish.erb +++ b/app/views/unattended/provisioning_templates/finish/preseed_default_finish.erb @@ -72,7 +72,9 @@ echo 'root:<%= root_pass -%>' | /usr/sbin/chpasswd -e <% end -%> <% if puppet_enabled -%> -<% if host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> +<% if host_param_true?('enable-openvox8-repo') -%> +<%= snippet 'openvox_repo' %> +<% elsif host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> <%= snippet 'puppetlabs_repo' %> <% end -%> <%= snippet 'puppet_setup' %> diff --git a/app/views/unattended/provisioning_templates/host_init_config/host_init_config_default.erb b/app/views/unattended/provisioning_templates/host_init_config/host_init_config_default.erb index 752664fc8a6..8e1f80e3417 100644 --- a/app/views/unattended/provisioning_templates/host_init_config/host_init_config_default.erb +++ b/app/views/unattended/provisioning_templates/host_init_config/host_init_config_default.erb @@ -49,6 +49,7 @@ apt-get -y update <% if !host_param_true?('skip-puppet-setup') && (host_puppet_server.present? || host_param_true?('force-puppet')) -%> <%= snippet 'puppetlabs_repo' %> +<%= snippet 'openvox_repo' %> <%= snippet 'puppet_setup' %> <% end -%> diff --git a/app/views/unattended/provisioning_templates/provision/kickstart_default.erb b/app/views/unattended/provisioning_templates/provision/kickstart_default.erb index 39db66373d6..8529843d131 100644 --- a/app/views/unattended/provisioning_templates/provision/kickstart_default.erb +++ b/app/views/unattended/provisioning_templates/provision/kickstart_default.erb @@ -31,6 +31,7 @@ description: | - http-proxy-port: string (default="") - force-puppet: boolean (default=false) - enable-epel: boolean (default=false) + - enable-openvox8-repo: boolean (default=false) - enable-puppetlabs-repo: boolean (default=false) - enable-puppetlabs-puppet5-repo: boolean (default=false) - enable-puppetlabs-puppet6-repo: boolean (default=false) @@ -285,7 +286,9 @@ chmod +x /root/remote_execution_pull_setup.sh <% end -%> <% if puppet_enabled %> -<% if host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo')|| host_param_true?('enable-puppetlabs-puppet5-repo') -%> +<% if host_param_true?('enable-openvox8-repo') -%> +<%= snippet 'openvox_repo' %> +<% elsif host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo')|| host_param_true?('enable-puppetlabs-puppet5-repo') -%> <%= snippet 'puppetlabs_repo' %> <% end -%> <%= snippet 'puppet_setup' %> diff --git a/app/views/unattended/provisioning_templates/snippet/openvox_repo.erb b/app/views/unattended/provisioning_templates/snippet/openvox_repo.erb new file mode 100644 index 00000000000..a82f4301c52 --- /dev/null +++ b/app/views/unattended/provisioning_templates/snippet/openvox_repo.erb @@ -0,0 +1,58 @@ +<%# +kind: snippet +name: openvox_repo +model: ProvisioningTemplate +snippet: true +description: | + Fetches the package that deploys the OpenVox repository that can be + used to install openvox from. It only performs the installation in case + one of the enable-openvox*repo parameter is set to true. +-%> +<% +http_proxy = host_param('http-proxy') ? " --httpproxy #{host_param('http-proxy')}" : nil +http_port = host_param('http-proxy-port') ? " --httpport #{host_param('http-proxy-port')}" : nil +proxy_uri = host_param('http-proxy') ? "http://#{host_param('http-proxy')}:#{host_param('http-proxy-port')}" : nil +proxy_string = proxy_uri ? " -e https_proxy=#{proxy_uri}/" : '' +proxy_string_bits = proxy_uri ? " -ProxyUsage Override -ProxyList #{proxy_uri}" : '' +os_family = @host.operatingsystem.family +os_major = @host.operatingsystem.major.to_i +os_name = @host.operatingsystem.name + +if os_family == 'Redhat' + repo_host = 'yum.voxpupuli.org' + if os_name == 'Fedora' + repo_os = 'fedora' + else + repo_os = 'el' + end +elsif os_family == 'Suse' + repo_host = 'yum.voxpupuli.org' + repo_os = 'sles' # Only exist for SLES, not OpenSUSE +elsif os_family == 'Debian' + repo_host = 'apt.voxpupuli.org' + repo_os = "#{os_name.downcase}#{os_major}" +elsif os_family == 'Windows' + repo_host = 'downloads.voxpupuli.org' + repo_os = 'windows' +end + +if host_param_true?('enable-openvox8-repo') + repo_name = 'openvox8-release' + repo_name = 'openvox8' if os_family == 'Windows' +end +-%> +<% if repo_name -%> +<% if os_family == 'Redhat' || os_name == 'SLES' -%> +rpm -Uvh<%= http_proxy %><%= http_port %> https://<%= repo_host %>/<%= repo_name %>-<%= repo_os %>-<%= os_major %>.noarch.rpm +<% elsif os_family == 'Debian' -%> +apt-get update +apt-get -y install ca-certificates +wget -O /tmp/<%= repo_name %>-<%= repo_os %>.deb<%= proxy_string %> https://<%= repo_host %>/<%= repo_name %>-<%= repo_os %>.deb +dpkg -i /tmp/<%= repo_name %>-<%= repo_os %>.deb +<% elsif os_family == 'Windows' -%> +$openvox_agent_source = 'https://<%= repo_host %>/<%= repo_os %>/<%= repo_name %>/openvox-agent-latest-<%= @host.architecture %>.msi' +$openvox_agent_msi = "${env:TEMP}\openvox-agent-<%= @host.architecture %>.msi" +Write-Host "Downloading openvox-agent from ${$openvox_agent_source} to ${openvox_agent_msi}" +Start-BitsTransfer -Source "${openvox_agent_source}" -Destination "${openvox_agent_msi}"<%= proxy_string_bits %> +<% end -%> +<% end -%> diff --git a/app/views/unattended/provisioning_templates/snippet/puppet_setup.erb b/app/views/unattended/provisioning_templates/snippet/puppet_setup.erb index a6805944a03..0a2244da199 100644 --- a/app/views/unattended/provisioning_templates/snippet/puppet_setup.erb +++ b/app/views/unattended/provisioning_templates/snippet/puppet_setup.erb @@ -18,7 +18,7 @@ os_major = @host.operatingsystem.major.to_i os_name = @host.operatingsystem.name aio_enabled = host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-puppet8') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppet7') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppet6') || host_param_true?('enable-puppetlabs-puppet5-repo') || host_param_true?('enable-puppet5') -aio_openvox_enabled = host_param_true?('enable-openvox7') || host_param_true?('enable-openvox8') +aio_openvox_enabled = host_param_true?('enable-openvox8') if host_param('run-puppet-in-installer-tags') puppet_tags = host_param('run-puppet-in-installer-tags') @@ -32,6 +32,7 @@ if os_family == 'Freebsd' bin_path = '/usr/local/bin' elsif os_family == 'Windows' windows_package = "puppet-agent-#{@host.architecture}.msi" + windows_package = "openvox-agent-#{@host.architecture}.msi" if aio_openvox_enabled etc_path = 'C:\ProgramData\PuppetLabs\puppet\etc' bin_path = 'C:\Program Files\Puppet Labs\Puppet\bin' elsif aio_enabled @@ -65,9 +66,7 @@ rpmkeys --import https://yum.puppet.com/RPM-GPG-KEY-puppet <% elsif aio_openvox_enabled -%> rpmkeys --import https://yum.voxpupuli.org/GPG-KEY-openvox.pub <% end -%> -<% if @host.provision_method == 'image' -%> /usr/bin/zypper -n --gpg-auto-import-keys install <%= linux_package %> -<% end -%> <% elsif os_family == 'Windows' -%> $puppet_agent_msi = "${env:TEMP}\<%= windows_package %>" $puppet_install_args = @( diff --git a/app/views/unattended/provisioning_templates/user_data/autoyast_default_user_data.erb b/app/views/unattended/provisioning_templates/user_data/autoyast_default_user_data.erb index fbd88fc6bb6..eba8aabdfa3 100644 --- a/app/views/unattended/provisioning_templates/user_data/autoyast_default_user_data.erb +++ b/app/views/unattended/provisioning_templates/user_data/autoyast_default_user_data.erb @@ -31,7 +31,9 @@ echo 'root:<%= root_pass -%>' | /usr/sbin/chpasswd -e <%= snippet "blacklist_kernel_modules" %> <% if puppet_enabled %> -<% if host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> +<% if host_param_true?('enable-openvox8-repo') -%> +<%= snippet 'openvox_repo' %> +<% elsif host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> <%= snippet 'puppetlabs_repo' %> <% end -%> <%= snippet 'puppet_setup' %> diff --git a/app/views/unattended/provisioning_templates/user_data/kickstart_default_user_data.erb b/app/views/unattended/provisioning_templates/user_data/kickstart_default_user_data.erb index 0b799ba5270..025323dd6f4 100644 --- a/app/views/unattended/provisioning_templates/user_data/kickstart_default_user_data.erb +++ b/app/views/unattended/provisioning_templates/user_data/kickstart_default_user_data.erb @@ -63,7 +63,9 @@ fi <% end -%> <% if puppet_enabled %> -<% if host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> +<% if host_param_true?('enable-openvox8-repo') -%> +<%= snippet 'openvox_repo' %> +<% elsif host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> <%= snippet 'puppetlabs_repo' %> <% end -%> <%= snippet 'puppet_setup' %> diff --git a/app/views/unattended/provisioning_templates/user_data/preseed_default_user_data.erb b/app/views/unattended/provisioning_templates/user_data/preseed_default_user_data.erb index 880ea4a53fa..a5a4c320b05 100644 --- a/app/views/unattended/provisioning_templates/user_data/preseed_default_user_data.erb +++ b/app/views/unattended/provisioning_templates/user_data/preseed_default_user_data.erb @@ -44,7 +44,9 @@ echo 'Acquire::http::Proxy "<%= proxy_uri %>";' >> /etc/apt/apt.conf <% end -%> <% if puppet_enabled %> -<% if host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> +<% if host_param_true?('enable-openvox8-repo') -%> +<%= snippet 'openvox_repo' %> +<% elsif host_param_true?('enable-puppetlabs-repo') || host_param_true?('enable-official-puppet8-repo') || host_param_true?('enable-official-puppet7-repo') || host_param_true?('enable-puppetlabs-puppet6-repo') || host_param_true?('enable-puppetlabs-puppet5-repo') -%> <%= snippet 'puppetlabs_repo' %> <% end -%> <%= snippet 'puppet_setup' %> diff --git a/app/views/unattended/provisioning_templates/user_data/userdata_default.erb b/app/views/unattended/provisioning_templates/user_data/userdata_default.erb index 07a450e890b..ac0d166ab18 100644 --- a/app/views/unattended/provisioning_templates/user_data/userdata_default.erb +++ b/app/views/unattended/provisioning_templates/user_data/userdata_default.erb @@ -76,6 +76,8 @@ runcmd: - | <%= indent(2) { snippet('puppetlabs_repo') } %> - | +<%= indent(2) { snippet('openvox_repo') } %> +- | <%= indent(2) { snippet('puppet_setup') } %> <% end -%> <% if salt_enabled -%> diff --git a/test/unit/foreman/renderer/snapshots/ProvisioningTemplate/user_data/UserData_default.host4dhcp.snap.txt b/test/unit/foreman/renderer/snapshots/ProvisioningTemplate/user_data/UserData_default.host4dhcp.snap.txt index 8d76d801f11..81ca7e4443a 100644 --- a/test/unit/foreman/renderer/snapshots/ProvisioningTemplate/user_data/UserData_default.host4dhcp.snap.txt +++ b/test/unit/foreman/renderer/snapshots/ProvisioningTemplate/user_data/UserData_default.host4dhcp.snap.txt @@ -63,6 +63,8 @@ runcmd: fi +- | + - | - |