Forum: Cfengine Help
Subject: Creating package_method for gentoo's portage
Author: doychin
Link to topic: https://cfengine.com/forum/read.php?3,22533,22533#msg-22533

I was little surprised when found out that there's no package_method using 
emerge in the COPBL - http://source.cfengine.com/browse/copbl . The next shock 
was "emerge cfengine package_method" generated no search results! Well... I had 
to write one myself, right? It shouldn't be that hard. Here's what I've came up 
with:


body package_method emerge {

        package_changes               => "individual";
        package_list_command          => "/bin/ls -d /var/db/pkg/*/* | /bin/sed 
's/\/var\/db\/pkg\///'";
        package_list_name_regex       => ".*/([^\s]+)-\d.*";
        package_list_version_regex    => ".*/[^\s]+-(\d.*)";
        package_installed_regex       => ".*";                  # all reported 
are installed
        package_name_convention       => "$(name)";
        package_list_update_command    => "/usr/bin/emerge --sync";           
        package_list_update_ifelapsed     => "2000";                  
        
        
        package_add_command        => "/usr/bin/emerge -q --quiet-build";
        #package_add_command         => "/bin/echo Installing";
        package_delete_command      => "/usr/bin/emerge --depclean";
        package_update_command      =>  "/usr/bin/emerge --update";
        package_verify_command      => "/usr/bin/emerge -s";
        package_noverify_regex      => ".*(Not Installed|Applications found : 
0).*";
}


BUT there's the catch. It doesn't seem to match the installed packages. It 
tries to install all packages every time even though they are already 
installed. To save some time in debugging I've changed package_add_command      
  => "/usr/bin/emerge -q --quiet-build"; with package_add_command         => 
"/bin/echo Installing"; to produce the output below. It is the verbose output 
for nagios-nrpe package.


cf3>  -> This promise has already been verified
cf3>  -> Cache file exists and is sufficiently fresh according to 
(package_list_update_ifelapsed)
cf3>  ???????????????????????????????????????????????????????????????
cf3>    Reading package list from /bin/ls
cf3>  ???????????????????????????????????????????????????????????????
cf3> # Patch reporting feature is only available in version Nova and above
cf3>  ???????????????????????????????????????????????????????????????
cf3>   Done checking packages and patches
cf3>  ???????????????????????????????????????????????????????????????
cf3>  -> Package version was not specified
cf3>  -> Looking for (nagios-nrpe,*,*)
cf3> No installed packages matched (nagios-nrpe,*,*)
cf3>  -> Looking for (nagios-nrpe,*,*)
cf3> No installed packages matched (nagios-nrpe,*,*)
cf3> Checking if package (nagios-nrpe,*,*) is at the desired state 
(installed=0,matched=0)
cf3>  -> Package promises to refer to itself as "nagios-nrpe" to the manager
cf3>  -> Package version seems to match criteria
cf3>  -> Schedule package for addition
cf3>  -> Package (nagios-nrpe,any,any) found
cf3>  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cf3>    Offering these package-promise suggestions to the managers
cf3>  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cf3>  -> Deletion schedule...
cf3>  -> Addition schedule...
cf3> Execute scheduled package addition
cf3> Command prefix: /bin/echo Installing
cf3> Executing /bin/echo Installing nagios-nrpe...
cf3> Q:echo Installing nagi ...:Installing nagios-nrpe
cf3> Q:echo Installing nagi ...:
cf3>  -> Finished command related to promiser "nagios-nrpe" -- succeeded
cf3> Package schedule execution ok for nagios-nrpe (outcome cannot be promised 
by cf-agent)


The bundle agent I use for debugging is simple 


bundle agent nagios_scripts {
        packages:
                
                gentoo::
        
                        "nagions-nrpe"
                        package_policy => "add",
                        package_method => emerge,
                        comment => "making sure nagions installed through 
emerge";
}


Any help? I don't find the verbose output enough to debug my problem? How can I 
find more information about what's going on and why it says the package is not 
installed.

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to