Revision a15d0e0b
Added by Alexis Mousset over 7 years ago
techniques/applications/aptPackageInstallation/4.0/aptPackageInstallation.st | ||
---|---|---|
|
||
"${apt_package[${index_aptpkg}]}"
|
||
package_policy => "${apt_action[${index_aptpkg}]}",
|
||
package_method => apt_nobulk("30", "${apt_allow_untrusted[${index_aptpkg}]}"),
|
||
package_method => apt_nobulk_version("30", "${apt_allow_untrusted[${index_aptpkg}]}"),
|
||
package_select => "${apt_version_criterion[${index_aptpkg}]}",
|
||
package_version => "${apt_version[${index_aptpkg}]}",
|
||
classes => kept_if_else("debian_install_kept_${apt_package[${index_aptpkg}]}", "debian_installed_${apt_package[${index_aptpkg}]}", "debian_install_failed_${apt_package[${index_aptpkg}]}"),
|
||
... | ... | |
package_noverify_returncode => "1";
|
||
|
||
}
|
||
|
||
body package_method apt_nobulk_version(apt_pkg_timeout, allow_untrusted)
|
||
{
|
||
|
||
any::
|
||
|
||
# make correct version comparisons
|
||
package_version_less_command => "${rudder_debian_knowledge.dpkg_compare_less}";
|
||
package_version_equal_command => "${rudder_debian_knowledge.dpkg_compare_equal}";
|
||
|
||
debian::
|
||
package_changes => "individual";
|
||
package_list_update_ifelapsed => "${apt_pkg_timeout}";
|
||
|
||
package_list_command => "/usr/bin/dpkg -l";
|
||
package_list_name_regex => ".i\s+([^\s:]+).*";
|
||
package_list_version_regex => ".i\s+[^\s]+\s+([^\s]+).*";
|
||
package_installed_regex => ".i.*"; # packages that have been uninstalled may be listed
|
||
package_name_convention => "${name}=${version}";
|
||
|
||
package_add_command => "/usr/bin/env DEBIAN_FRONTEND=noninteractive LC_ALL=C /usr/bin/apt-get -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef -o APT::Get::AutomaticRemove=false -o Apt::Get::AllowUnauthenticated=${allow_untrusted} --yes install";
|
||
package_list_update_command => "/usr/bin/apt-get update";
|
||
package_delete_command => "/usr/bin/env DEBIAN_FRONTEND=noninteractive LC_ALL=C /usr/bin/apt-get -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef -o APT::Get::AutomaticRemove=false --yes -q remove";
|
||
package_update_command => "/usr/bin/env DEBIAN_FRONTEND=noninteractive LC_ALL=C /usr/bin/apt-get -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef -o APT::Get::AutomaticRemove=false -o Apt::Get::AllowUnauthenticated=${allow_untrusted} --yes install";
|
||
package_verify_command => "/usr/bin/dpkg -s";
|
||
package_noverify_returncode => "1";
|
||
|
||
}
|
techniques/applications/rpmPackageInstallation/7.0/rpmPackageInstallation.st | ||
---|---|---|
# Case 3: We do have a version defined
|
||
"${rpm_package[${index_rpmpkg}]}"
|
||
package_policy => "${rpm_data[${index_rpmpkg}][0]}",
|
||
package_method => generic_nobulk("30"),
|
||
package_method => generic_nobulk_version("30"),
|
||
package_select => "${rpm_data[${index_rpmpkg}][2]}",
|
||
package_version => "${rpm_version[${index_rpmpkg}]}",
|
||
classes => rudder_common_classes_persist("rpm_package_installation_${index_rpmpkg}", "${rpm_package_check_interval}"),
|
||
... | ... | |
package_update_command => "/usr/bin/rug update -y";
|
||
package_verify_command => "/usr/bin/rug verify -y$"; # $ means no args
|
||
}
|
||
|
||
body package_method generic_nobulk_version(rpm_pkg_timeout) {
|
||
|
||
|
||
package_version_less_command => "${rudder_rpm_knowledge.rpm_compare_less}";
|
||
package_version_equal_command => "${rudder_rpm_knowledge.rpm_compare_equal}";
|
||
|
||
package_changes => "individual";
|
||
|
||
redhat::
|
||
package_list_command => "/bin/rpm -qa --qf '%{name} %{version}-%{release} %{arch}\n'";
|
||
package_list_name_regex => "^(\S+?)\s\S+?\s\S+$";
|
||
package_list_version_regex => "^\S+?\s(\S+?)\s\S+$";
|
||
package_list_arch_regex => "^\S+?\s\S+?\s(\S+)$";
|
||
package_installed_regex => ".*";
|
||
package_name_convention => "${name}-${version}";
|
||
package_list_update_ifelapsed => "${rpm_pkg_timeout}";
|
||
package_add_command => "/usr/bin/yum ${redhat_knowledge.yum_options} -y install";
|
||
package_delete_command => "/bin/rpm -e";
|
||
package_update_command => "/usr/bin/yum ${redhat_knowledge.yum_options} -y update";
|
||
package_verify_command => "/bin/rpm -V";
|
||
|
||
|
||
zypper_version_ok::
|
||
package_list_command => "/bin/rpm -qa --queryformat \"i | repos | %{name} | %{version}-%{release} | %{arch}\n\"";
|
||
package_list_update_ifelapsed => "${rpm_pkg_timeout}";
|
||
package_installed_regex => "i.*";
|
||
package_list_name_regex => "[^|]+\|[^|]+\|\s+([^\s]+).*";
|
||
package_list_version_regex => "[^|]+\|[^|]+\|[^|]+\|\s+([^\s]+).*";
|
||
package_list_arch_regex => "[^|]+\|[^|]+\|[^|]+\|[^|]+\|\s+([^\s]+).*";
|
||
package_name_convention => "${name}=${version}";
|
||
package_add_command => "/usr/bin/zypper --non-interactive install";
|
||
package_delete_command => "/usr/bin/zypper --non-interactive remove --force-resolution";
|
||
package_update_command => "/usr/bin/zypper --non-interactive update";
|
||
package_verify_command => "/usr/bin/zypper --non-interactive verify$";
|
||
|
||
SuSE_10.!zypper_version_ok::
|
||
package_list_command => "/bin/rpm -qa --queryformat \"i | repos | %{name} | %{version}-%{release} | %{arch}\n\"";
|
||
package_list_update_ifelapsed => "${rpm_pkg_timeout}";
|
||
package_installed_regex => "i.*";
|
||
package_list_name_regex => "[^|]+\|[^|]+\|\s+([^\s]+).*";
|
||
package_list_version_regex => "[^|]+\|[^|]+\|[^|]+\|\s+([^\s]+).*";
|
||
package_list_arch_regex => "[^|]+\|[^|]+\|[^|]+\|[^|]+\|\s+([^\s]+).*";
|
||
package_name_convention => "${name}";
|
||
package_add_command => "/usr/bin/rug install -y";
|
||
package_delete_command => "/usr/bin/rug remove -y";
|
||
package_update_command => "/usr/bin/rug update -y";
|
||
package_verify_command => "/usr/bin/rug verify -y$"; # $ means no args
|
||
}
|
Also available in: Unified diff
Fixes #9761: Allow to only install a specific version in apt and rpm techniques.