首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Foreman的“运行傀儡”功能不一致

Foreman的“运行傀儡”功能不一致
EN

Server Fault用户
提问于 2014-07-15 21:48:11
回答 2查看 2.4K关注 0票数 2

首先,简要介绍一下我们的设置:

  1. 我们有一个foreman实例运行正常,让我们称之为领班。
  2. 木偶大师工作得很好,让我们称它为木偶大师。
  3. 有两个主机可以与工头和傀儡大师接触,中间没有防火墙,我们称它们为主机-a和主机-b。
  4. 所有主机都在运行3.x

我们已经开始扩展Foreman的使用,并希望启用Run木偶按钮。我跟踪了维基,并让它在最初的测试中发挥作用。然而,在进一步的测试中,按钮产生了一些非常不一致的结果。我似乎记得,在触发运行时,默认情况下有2分钟的播放,但这不是问题所在。有时,当我按下按钮,主机跳到并立即开始运行。然而,大多数情况下,它从不触发运行。

Foreman在sudoers配置中有以下内容:

代码语言:javascript
运行
复制
Defaults:foreman-proxy !requiretty
foreman-proxy   ALL = NOPASSWD: /usr/bin/puppet kick *

主机在auth.conf中有以下内容,这是一个空白的namespaceauth.conf,puppet.conf中的listen = true。

代码语言:javascript
运行
复制
# allow foreman to start puppet runs
path /run
auth any
method save
allow foreman.domain.lan

当试图通过Foreman触发木偶运行时,这会出现在生产日志中。

代码语言:javascript
运行
复制
Started GET "/hosts/host-a.domain.lan/puppetrun" for 192.168.8.48 at 2014-07-15 21:44:59 +0000
Processing by HostsController#puppetrun as HTML
  Parameters: {"id"=>"host-a.domain.lan"}
Redirected to http://foreman.domain.lan/hosts/host-a.domain.lan
Completed 302 Found in 48ms (ActiveRecord: 1.3ms)


Started GET "/hosts/host-a.domain.lan" for 192.168.8.48 at 2014-07-15 21:44:59 +0000
Processing by HostsController#show as HTML
  Parameters: {"id"=>"host-a.domain.lan"}
  Rendered hosts/_overview.html.erb (16.2ms)
  Rendered hosts/_metrics.html.erb (0.3ms)
  Rendered hosts/show.html.erb within layouts/application (734.1ms)
  Rendered home/_user_dropdown.html.erb (2.0ms)
Read fragment views/tabs_and_title_records-2 (0.2ms)
  Rendered home/_topbar.html.erb (3.8ms)
  Rendered layouts/base.html.erb (5.9ms)
Completed 200 OK in 781ms (Views: 652.3ms | ActiveRecord: 108.6ms)

仅此而已,木偶跑步偶尔会在主机上触发,但并不总是这样。有什么想法吗?

编辑:我应该补充一点,当运行触发器不成功时,当运行傀儡代理--不去守护--调试时,主机端不会发出任何消息。

MOAR编辑:运行Foremanv1.5.1加上木偶3.6.2在木偶主人和领班,v3.3.1在主机上。

EN

回答 2

Server Fault用户

发布于 2014-07-16 17:50:23

我尝试了很多方法,以获得可靠的踢跑,但不能,这是不可取的,无论如何,所以我转到木偶。这需要配置智能代理的SSH密钥、领班代理用户及其sudo权限。关于这个傀儡运行方法的文档不多,而foreman中的调试日志记录不包括任何命令输出,因此很难知道什么地方/如何失败。

默认情况下,foreman用户没有shell (在RHEL上),因此无法运行/usr/bin/ssh。简单的usermod -s /bin/bash完成了这个任务,但对我来说,这似乎是一个安全风险。更重要的是,运行它需要不同的sudo权限,因此我不得不将foreman= NOPASSWD: /usr/bin/puppet改为foreman= NOPASSWD: /usr/bin/ssh。之后,只需配置ssh命令即可。

在我的例子中,我们部署了一个用户帐户和SSH密钥,用于在客户端计算机上运行带有sudo的木偶命令。我将私钥复制到某个位置--领班-代理可以使用它(例如:/etc/foreman/ puppetssh /id_rsa),并在/etc/foreman/setings.yml中配置傀儡参数,如下所示:

代码语言:javascript
运行
复制
:puppetssh_command: /usr/bin/sudo /usr/bin/puppet agent -t --no-usecacheonfailure
:puppetssh_user: puppetssh
:puppetssh_keyfile: /etc/foreman-proxy/puppetssh/id_rsa
票数 2
EN

Server Fault用户

发布于 2016-04-14 07:24:29

它对我有效,我选择了傀儡源http://theforeman.org/manuals/1.11/index.html#4.3.6Puppet

按照上面链接中的一条指令,在内容傀儡下面编辑文件中的下面一行。

代码语言:javascript
运行
复制
/etc/foreman-proxy/settings.d/puppet.

:puppetssh_command: /usr/bin/puppet agent --onetime --no-usecacheonfailure

转换成

:puppetssh_command: /usr/bin/puppet agent --test

现在它会像魅力一样发挥作用--如果它不起作用的话,可以随意回答,干杯

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/612812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档