机器上的人偶代理状态是什么?

what is the puppet agent status on the machine?

我知道

puppet agent --disable "my message"  --verbose

但我想知道在给定机器上的某个时刻,它的 puppet 代理状态是什么。我不知道如何从

man puppet-agent

是否有命令可以告诉我代理是启用还是禁用?

谢谢。

-

-------------------- 编辑

CentOS release 6.6 (Final)

bash-4.1$ puppet --version
3.7.4
bash-4.1$ file /usr/bin/puppet 
/usr/bin/puppet: a /usr/bin/ruby script text executable

-------------------- EDIT2

无论是启用还是禁用,我总是这样:

[root@p1al25 ~]# cat `sudo puppet agent --configprint agent_catalog_run_lockfile`
cat: /var/lib/puppet/state/agent_catalog_run.lock: No such file or directory
[root@p1al25 ~]# puppet agent --disable "my message"
[root@p1al25 ~]# cat `sudo puppet agent --configprint agent_catalog_run_lockfile`
cat: /var/lib/puppet/state/agent_catalog_run.lock: No such file or directory
[root@p1al25 ~]# service puppet status
puppet (pid  4387) is running...

-------------------- EDIT3

这个成功了,感谢 daxlerod

[root@p1al25 ~]# service puppet status
puppet (pid  4387) is running...
[root@p1al25 ~]# puppet agent --disable "my message" --verbose
Notice: Disabling Puppet.
[root@p1al25 ~]# cat `puppet agent --configprint agent_disabled_lockfile` 
{"disabled_message":"reason not specified"}

代理状态通常用于主从设置。

这里有更多详细信息:

https://docs.puppetlabs.com/learning/agent_master_basic.html

因为您可能会问两个问题。一个是:

我的服务是 运行ning 吗?
答案将是 运行ning 您的典型服务命令(例如服务傀儡状态)

或者,我的代理是否完全能够 运行?

答案是使用命令 人偶特工 --test

获取当前状态的一行代码是:

cat `puppet agent --configprint agent_disabled_lockfile`

一般这个必须是运行作为root,所以我用:

sudo cat `sudo puppet agent --configprint agent_disabled_lockfile`

有多种可能的结果。

  • cat: \path\to\lock: No such file or directory人偶没有被禁用。
  • 任何其他文本表示 puppet 已禁用,文本是 puppet agent --disable 'reason'
  • 禁用 puppet 时提供的原因

我想我 post 在这里更新答案。

如果 Puppet 代理被禁用,将会有一个文件 $vardir/state/agent_disabled.lock。如果通过 puppet agent --disable 'because reasons'.

给出了原因,则此文件还包含禁用原因

您可以通过命令puppet config print vardir获取$vardir的值。


总结一下:

[me@linuxbox ~]# cat $(puppet config print vardir)/state/agent_disabled.lock

如果代理被禁用,您将获得:

{"disabled_message":"because reasons"}

如果代理已启用,您会收到错误 "No such file or directory"。

Mac OS X:

状态:

$ puppet resource service puppet
service { 'puppet':
  ensure => 'stopped',
  enable => 'false',
}

请注意,如果启用,它将 return:

service { 'puppet':
  ensure => 'stopped',
  enable => 'true',
}

开始:

sudo puppet resource service puppet ensure=running enable=true

停止:

sudo puppet resource service puppet ensure=stopped enable=false

奖金:我喜欢一个技巧: sudo --non-interactive。我在 sudoer 用户的脚本中使用它。这将在没有 sudoer 而不是阻止脚本执行的计算机上失败。