Hi all,
I've seen solutions on this list in the past about installing packages in Solaris via cfengine, and I working through the document and some examples I have a structure that works very well for installing packages where none exist (hooray!), but I'm now up to the point where I need to update said packages with a new one. So far, I haven't been able to get anything to work. So, for example: bundle agent pkg_cfengine3 { vars: "master_servers" slist => { "cfpolicyhost" }; "package_location" string => "/u01/packages/sparc"; "solaris_packages[CCcfengine3]" string => "cfengine-3.0.5p1-sol10-sparc-opt-cctools"; "solaris_package_versions[CCcfengine3]" string => "3.0.5p1"; "admin_file" string => "cfengine_admin_file"; # manually create pkgnames to preserve order "package_names" slist => { "CCcfengine3" }; files: "/var/tmp/$(admin_file)" create => "true", edit_defaults => empty, edit_line => create_admin_file; "/u01/pkgs/sparc/$(solaris_packages[$(package_names)])" perms => m("700"), copy_from => mycopy("$(package_location)/$(solaris_packages[$(package_names)])", @(master_servers)), action => immediate; packages: "$(package_names)" package_policy => "add", package_method => cc_solaris("$(package_names)", "$(solaris_packages[$(package_names)])", "/u01/pkgs/sparc", "$(admin_file)"), package_version => "$(solaris_package_versions[$(package_names)])", package_select => ">"; } ### body package_method cc_solaris (pkgname, spoolfile, spooldir, adminfile) { package_changes => "individual"; package_list_command => "/usr/bin/pkginfo -l"; package_multiline_start => "\s*PKGINST:\s+[^\s]+"; package_list_name_regex => "\s*PKGINST:\s+([^\s]+)"; package_list_version_regex => "\s*VERSION:\s+([^\s]+)"; package_list_arch_regex => "\s*ARCH:\s+([^\s]+)"; package_installed_regex => "\s*STATUS:\s*(completely|partially)\s+installed.*"; package_name_convention => "$(name)"; package_add_command => "/usr/sbin/pkgadd -n -a /var/tmp/$(adminfile) -d $(spooldir)/$(spoolfile)"; package_delete_command => "/usr/sbin/pkgrm -n -a /var/tmp/$(adminfile)"; } ### bundle edit_line create_admin_file { insert_lines: "mail= instance=unique partial=nocheck runlevel=nocheck idepend=nocheck rdepend=nocheck space=nocheck setuid=nocheck conflict=nocheck action=nocheck networktimeout=60 networkretries=3 authentication=quit keystore=/var/sadm/security proxy= basedir=default"; } I've tried a package_policy of 'update', but there's no method defined, and solaris doesn't really have an update method, and the package_policy 'reinstall' seems ideal as it deletes and then installs a package, but it doesn't seem to work as expected across package version numbers. Does anyone have a working solution that still uses cfengine's package management bits? Simon -- Simon Oxwell ControlCircle Senior Server Engineer The Datacentre People 0044 (0)20 7517 6594 Hertsmere House, 2 Hertsmere Road, simon.oxw...@controlcircle.com <mailto:simon.oxw...@controlcircle.com> London, E14 4AB
_______________________________________________ Help-cfengine mailing list Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine