On Sep 14, 2011, at 7:37 AM, Stoyan Nikolov wrote:
> So here is my manifest:
>
> class aguu {
>
> exec { "update":
> command => "apt-get update",
> path => "/usr/bin/"
> }
>
> exec { "upgrade":
> command => "apt-get upgrade -y",
> path => "/usr/bin/"
> }
> }
>
> It it supposed to run apt-get update + upgrade
>
> This is the output I get:
>
> info: Applying configuration version '1316008127'
> notice: //aguu/Exec[update]/returns: executed successfully
> err: //aguu/Exec[upgrade]/returns: change from notrun to 0 failed: apt-get
> upgrade -y returned 100 instead of one of [0] at
> /etc/puppet/modules/aguu/manifests/init.pp:11
> notice: //testmodule1/File[/tmp/testmodule]/ensure: created
> warning: Value of 'preferred_serialization_format' (pson) is invalid for
> report, using default (marshal)
> notice: Finished catalog run in 3.60 seconds
>
> Apt-get should be returning 100 in case of an error, but if i run the exact
> same command from command line it runs fine.
> Any suggestions what should be going wrong?
----
It's entirely possible to have something blocking the run of 'apt-get -y
upgrade' such as unresolved dependencies which may require you to execute
'apt-get -f install' in order to get something done.
Generally, you can check the result of a command by typing 'echo $?' to see the
exit status... ie
apt-get upgrade -y; echo $?
as for your particular issue... hard to know for sure but it may be useful to
see how I handle this. In a general explanation, I create a directory
/etc/puppet/deployment_files and in that directory, I sometimes put things I
need for deployment status or triggering.
This is what my 'apt updates' class looks like...
class apt::updates {
include mod_puppet::deployment_files
# Puppet maintained file /etc/puppet/deployment_files/apt_update_initiator
file { "/etc/puppet/deployment_files/apt_update_initiator":
source => "puppet://puppet/modules/apt/apt_update_initiator",
require => Class["mod_puppet::deployment_files"],
ensure => present,
owner => root,
group => root,
mode => 0644,
}
exec { "/usr/bin/aptitude update":
refreshonly => true,
subscribe => File["/etc/puppet/deployment_files/apt_update_initiator"],
}
# Puppet maintained file
/etc/puppet/deployment_files/apt_safe_upgrade_initiator
file { "/etc/puppet/deployment_files//apt_safe_upgrade_initiator":
source => "puppet://puppet/modules/apt/apt_safe_upgrade_initiator",
require => [ Class["mod_puppet::deployment_files"],
Exec["/usr/bin/aptitude update"] ],
ensure => present,
owner => root,
group => root,
mode => 0644,
}
exec { "/usr/bin/aptitude -y safe-upgrade":
refreshonly => true,
subscribe =>
File["/etc/puppet/deployment_files/apt_safe_upgrade_initiator"],
}
# Puppet maintained file
/etc/puppet/deployment_files/apt_full_upgrade_initiator
file { "/etc/puppet/deployment_files/apt_full_upgrade_initiator":
source => "puppet://puppet/modules/apt/apt_full_upgrade_initiator",
require => [ Class["mod_puppet::deployment_files"],
Exec["/usr/bin/aptitude update"] ],
ensure => present,
owner => root,
group => root,
mode => 0644,
}
exec { "/usr/bin/aptitude -y full-upgrade":
refreshonly => true,
subscribe =>
File["/etc/puppet/deployment_files/apt_full_upgrade_initiator"],
}
}
and so I '/bin/date > /etc/puppet/modules/apt/files/apt_update_initiator' ( and
also to apt_safe_upgrade_initiator and apt_full_upgrade_initiator ) and the
first time this is deployed, all three files are copied and the commands are
executed on each client. Note that 'Exec["/usr/bin/aptitude update"]' is
required by the 'upgrades'
Then I have a cron run every night to put the date into the
apt_update_initiator file on the puppet master so that forces each puppet
client to execute and I can do the same to either of the 'upgrade' files to
force them to upgrade.
On any client, I can check
/etc/puppet/deployment_files/apt_[update|safe_upgrade|full_upgrade]_initiator
to see the date and time I last instructed it to update/upgrade.
Craig
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.