I believe not_if takes a hash parameter which can contain a :user
setting to run the not_if as, check the Meta resources doc:
http://wiki.opscode.com/display/chef/Resources#Resources-ConditionalExecution
--AJ
On 23 February 2012 12:14, Arthur Kalmenson < "> > wrote:
> I've figured it out! Turns out, my not_if in the bash block didn't do
> exactly what I thought it did. When you don't execute it as the "hubot"
> user, it throws a bunch of errors. Updated it to execute the version command
> as the hubot user, worked:
>
> bash "install hubot" do
> user hubot_user
> group hubot_group
> environment ({'HOME' => "#{install_dir}" })
> cwd install_dir_parent
> code <<-EOH
> tar xzf /tmp/hubot-#{version}.tar.gz && \
> cd hubot && \
> npm install
> EOH
> not_if "su - hubot -c \"#{install_dir}/bin/hubot -v 2>&1 | grep
> '#{version}'\""
> end
>
> Thanks again everyone for your help!
>
> All the best,
> --
> Arthur Kalmenson
>
>
> On Wed, Feb 22, 2012 at 1:55 PM, Arthur Kalmenson < "> >
> wrote:
>>
>> You and I were thinking the same thing Jesse ;)
>>
>> --
>> Arthur Kalmenson
>>
>>
>>
>> On Wed, Feb 22, 2012 at 1:52 PM, Jesse Campbell < "> > wrote:
>>>
>>> It should be saving a few copies of the replaced file, can you diff
>>> between a few of them?
>>>
>>> From your log:
>>> [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> template[/usr/local/hubot/package.json] backed up to
>>> /var/lib/chef/backup/usr/local/hubot/package.json.chef-20120221130628
>>>
>>> On Wed, Feb 22, 2012 at 13:13, Arthur Kalmenson < "> >
>>> wrote:
>>> > Hi Adam,
>>> >
>>> > I was thinking that too, but the template doesn't give any indication
>>> > that
>>> > it should render different: https://gist.github.com/1886413
>>> >
>>> > The only pieces that are replaced is the versions, and those are
>>> > attributes
>>> > that don't change.
>>> >
>>> > --
>>> > Arthur Kalmenson
>>> >
>>> >
>>> >
>>> > On Wed, Feb 22, 2012 at 12:10 PM, Adam Jacob < "> > wrote:
>>> >>
>>> >> Well, the debug output is also indicating that you have changed the
>>> >> contents of the file. Are you rendering the JSON in a way that is
>>> >> consistently formatted, or does it differ slightly every time? (for
>>> >> example, hash ordering may not be unique).
>>> >>
>>> >> Adam
>>> >>
>>> >> On Wed, Feb 22, 2012 at 8:55 AM, Arthur Kalmenson
>>> >> < "> >
>>> >> wrote:
>>> >> > Hi Jesse,
>>> >> >
>>> >> > I don't think the application (hubot) is changing the permission and
>>> >> > ownership of the package.json file. It seems to stay stable at 0644
>>> >> > and
>>> >> > the
>>> >> > user and group is always hubot.
>>> >> >
>>> >> > --
>>> >> > Arthur Kalmenson
>>> >> >
>>> >> >
>>> >> >
>>> >> > On Tue, Feb 21, 2012 at 4:49 PM, Jesse Campbell < "> >
>>> >> > wrote:
>>> >> >>
>>> >> >> One option would be to figure out what owner/group/mode is set by
>>> >> >> the
>>> >> >> external application, then have those be what chef defines.
>>> >> >> I've had lots of success doing that with the puppet manifests that
>>> >> >> I
>>> >> >> haven't yet converted, I imagine the same will work for chef.
>>> >> >>
>>> >> >> -Jesse
>>> >> >>
>>> >> >> On Tue, Feb 21, 2012 at 13:10, Arthur Kalmenson
>>> >> >> < "> >
>>> >> >> wrote:
>>> >> >> > Jesse,
>>> >> >> >
>>> >> >> > $ chef-client -v
>>> >> >> > Chef: 0.10.8
>>> >> >> >
>>> >> >> > Daniel,
>>> >> >> >
>>> >> >> > It looks like you're right. Sorry, the full logs are below. What
>>> >> >> > do I
>>> >> >> > do
>>> >> >> > about those chmod and chown changes? Those files are there and
>>> >> >> > there's
>>> >> >> > no
>>> >> >> > reason to continue changing the ownership, no?
>>> >> >> >
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing group[hubot]
>>> >> >> > action
>>> >> >> > create (hubot::default line 20)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing user[hubot]
>>> >> >> > action
>>> >> >> > create
>>> >> >> > (hubot::default line 23)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > directory[/usr/local/hubot] action create (hubot::default line
>>> >> >> > 30)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > package[libexpat1]
>>> >> >> > action
>>> >> >> > install (hubot::default line 39)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > package[libexpat1-dev]
>>> >> >> > action install (hubot::default line 39)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > remote_file[/tmp/hubot-2.1.3.tar.gz] action create_if_missing
>>> >> >> > (hubot::default line 45)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing bash[install
>>> >> >> > hubot]
>>> >> >> > action run (hubot::default line 52)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: bash[install hubot]
>>> >> >> > sh("bash"
>>> >> >> > "/tmp/chef-script20120221-11973-mu2hna-0")
>>> >> >> >
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: bash[install hubot] ran
>>> >> >> > successfully
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > template[/usr/local/hubot/package.json] action create
>>> >> >> > (hubot::default
>>> >> >> > line
>>> >> >> > 66)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/package.json] backed up to
>>> >> >> >
>>> >> >> > /var/lib/chef/backup/usr/local/hubot/package.json.chef-20120221130628
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/package.json] removed backup at
>>> >> >> >
>>> >> >> >
>>> >> >> > /var/lib/chef/backup/./usr/local/hubot/package.json.chef-20120221103932
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/package.json] owner changed to 1001
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/package.json] group changed to 1001
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/package.json] mode changed to 644
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/package.json] updated content
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] action create
>>> >> >> > (hubot::default
>>> >> >> > line 74)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] backed up to
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> > /var/lib/chef/backup/usr/local/hubot/hubot-scripts.json.chef-20120221130628
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] removed backup at
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> > /var/lib/chef/backup/./usr/local/hubot/hubot-scripts.json.chef-20120221103932
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] owner changed to
>>> >> >> > 1001
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] group changed to
>>> >> >> > 1001
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] mode changed to 644
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] updated content
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/hubot-scripts.json] not queuing delayed
>>> >> >> > action
>>> >> >> > restart on service[hubot] (delayed), as it's already been queued
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > template[/usr/local/hubot/bin/hubot-wrapper] action create
>>> >> >> > (hubot::default
>>> >> >> > line 82)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > template[/etc/init.d/hubot] action create (hubot::default line
>>> >> >> > 93)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing service[hubot]
>>> >> >> > action
>>> >> >> > enable (hubot::default line 100)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing service[hubot]
>>> >> >> > action
>>> >> >> > start (hubot::default line 100)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > package[redis-server]
>>> >> >> > action install (redis::package line 21)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing service[redis]
>>> >> >> > action
>>> >> >> > start (redis::package line 23)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing
>>> >> >> > template[/etc/redis/redis.conf] action create (redis::package
>>> >> >> > line
>>> >> >> > 30)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO:
>>> >> >> > template[/usr/local/hubot/package.json] sending restart action to
>>> >> >> > service[hubot] (delayed)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Processing service[hubot]
>>> >> >> > action
>>> >> >> > restart (hubot::default line 100)
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: service[hubot] restarted
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Chef Run complete in
>>> >> >> > 1.55091
>>> >> >> > seconds
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Running report handlers
>>> >> >> > [Tue, 21 Feb 2012 13:06:28 -0500] INFO: Report handlers complete
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> > --
>>> >> >> > Arthur Kalmenson
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> > On Tue, Feb 21, 2012 at 11:46 AM, Daniel DeLeo
>>> >> >> > < "> >
>>> >> >> > wrote:
>>> >> >> >>
>>> >> >> >>
>>> >> >> >>
>>> >> >> >> On Tuesday, February 21, 2012 at 7:33 AM, Arthur Kalmenson
>>> >> >> >> wrote:
>>> >> >> >>
>>> >> >> >> > Hello everyone,
>>> >> >> >> >
>>> >> >> >> > I have a template resource that notifies the service to
>>> >> >> >> > restart.
>>> >> >> >> > It
>>> >> >> >> > looks as follows:
>>> >> >> >> >
>>> >> >> >> > # apply configurations
>>> >> >> >> > template "#{install_dir}/package.json" do
>>> >> >> >> > source "package.json.erb"
>>> >> >> >> > owner hubot_user
>>> >> >> >> > group hubot_group
>>> >> >> >> > mode "0644"
>>> >> >> >> > notifies :restart, "service[hubot]"
>>> >> >> >> > end
>>> >> >> >> >
>>> >> >> >> > template "#{install_dir}/hubot-scripts.json" do
>>> >> >> >> > source "hubot-scripts.json.erb"
>>> >> >> >> > owner hubot_user
>>> >> >> >> > group hubot_group
>>> >> >> >> > mode "0644"
>>> >> >> >> > notifies :restart, "service[hubot]"
>>> >> >> >> > end
>>> >> >> >> >
>>> >> >> >> > It's my understanding that the notification will only get
>>> >> >> >> > called
>>> >> >> >> > when
>>> >> >> >> > the template renders differently. However, even when nothing
>>> >> >> >> > has
>>> >> >> >> > changed,
>>> >> >> >> > every time chef-client runs, the restart happens.
>>> >> >> >> >
>>> >> >> >> > ...
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Processing
>>> >> >> >> > template[/etc/init.d/hubot] action create (hubot::default line
>>> >> >> >> > 93)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Processing
>>> >> >> >> > service[hubot]
>>> >> >> >> > action
>>> >> >> >> > enable (hubot::default line 100)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Processing
>>> >> >> >> > service[hubot]
>>> >> >> >> > action
>>> >> >> >> > start (hubot::default line 100)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Processing
>>> >> >> >> > package[redis-server]
>>> >> >> >> > action install (redis::package line 21)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Processing
>>> >> >> >> > service[redis]
>>> >> >> >> > action
>>> >> >> >> > start (redis::package line 23)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Processing
>>> >> >> >> > template[/etc/redis/redis.conf] action create (redis::package
>>> >> >> >> > line
>>> >> >> >> > 30)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO:
>>> >> >> >> > template[/usr/local/hubot/package.json] sending restart action
>>> >> >> >> > to
>>> >> >> >> > service[hubot] (delayed)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Processing
>>> >> >> >> > service[hubot]
>>> >> >> >> > action
>>> >> >> >> > restart (hubot::default line 100)
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: service[hubot]
>>> >> >> >> > restarted
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Chef Run complete in
>>> >> >> >> > 2.929228
>>> >> >> >> > seconds
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Running report
>>> >> >> >> > handlers
>>> >> >> >> > [Tue, 21 Feb 2012 10:25:53 -0500] INFO: Report handlers
>>> >> >> >> > complete
>>> >> >> >> >
>>> >> >> >> > Does anyone know why this is happening? Thank you in advance.
>>> >> >> >> The log message indicates that
>>> >> >> >> `template[/usr/local/hubot/package.json]`
>>> >> >> >> is triggering the restart, but you've elided the log messages
>>> >> >> >> from
>>> >> >> >> that
>>> >> >> >> one
>>> >> >> >> so we can't see what's going on.
>>> >> >> >>
>>> >> >> >> Someone had a similar issue which was caused by a separate
>>> >> >> >> process
>>> >> >> >> chmod-ing the file.
>>> >> >> >>
>>> >> >> >> >
>>> >> >> >> > All the best,
>>> >> >> >> > --
>>> >> >> >> > Arthur Kalmenson
>>> >> >> >>
>>> >> >> >>
>>> >> >> >>
>>> >> >> >> --
>>> >> >> >> Dan DeLeo
>>> >> >> >>
>>> >> >> >>
>>> >> >> >>
>>> >> >> >
>>> >> >
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Opscode, Inc.
>>> >> Adam Jacob, Chief Customer Officer
>>> >> T: (206) 619-7151 E: ">
>>> >
>>> >
>>
>>
>
Archive powered by MHonArc 2.6.16.