我最近开始学习厨师并尝试使用3个节点。我设法在ubuntu上设置我的工作站(不是很明显),现在引导2个节点。但在此图像下方,其IP地址设置为127.0.0.1。
我使用以下方法提升他们:
$knife bootstrap xxxx.xxxx.com -x root -P xxxxxxxx -N xxxxxxxx
看起来很好,它出现在厨师服务器上但是当我执行以下操作强制运行chef-client时,它会抛出一些错误,如下所示。
$ knife ssh "name:logsmanager" "chef-client" -x root -a xxxx.xxxx.com
FATAL: 1 node found, but does not have the required attribute to establish the connection. Try setting another attribute to open the connection using --attribute.
此外,我了解客户端节点默认情况下每30分钟检查一次,但在我的主厨服务器节点选项卡上,它显示最后一次检查是在6天前和13小时前检查过的。
这是否意味着客户端节点不检查主厨服务器,或者它类似于源版本检查,结帐术语?
如果有人可以为我点亮这件事,我将不胜感激。谢谢
编辑:
运行上面的命令后,我遇到了另一个问题:
$ knife ssh "name:logsmanager" "chef-client" -x root -a fqdn
WARNING: Failed to connect to my.domain.com -- Net::SSH::AuthenticationFailed: Authentication failed for user root@my.domain.com@my.domain.com .Seems to understant root@my.domain.com as username for my.domain.com fqdn.
答案 0 :(得分:1)
-a
的{{1}}参数应该是"虚线路径"中的节点属性。语法,如knife ssh
或fqdn
。默认情况下,cloud.public_ipv4
将使用节点的FQDN连接到。
Knife将运行您提供的搜索查询,然后使用给定的属性查找要传递给knife ssh
的名称。
答案 1 :(得分:1)
默认情况下,Chef客户端不检查Chef服务器上的更改。它是手动完成的。
要使节点运行chef-client定期检查此选项:
-i SECONDS, --interval SECONDS
The frequency (in seconds) at which the chef-client runs. When the chef-client is run at intervals, --splay and --interval values are applied before the chef-client run. Default value: 1800.
有关chef-client的其他选项的更多信息,您可以find here。
关于提供属性,您必须提供要用于SSH的属性,而不是实际值。这意味着:
$ knife ssh "role:web" "uptime" -x ubuntu -a public_hostname
public_hostname - 表示名为public_hostname