AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 410208
Accepted
Steve Bennett
Steve Bennett
Asked: 2012-07-23 22:57:54 +0800 CST2012-07-23 22:57:54 +0800 CST 2012-07-23 22:57:54 +0800 CST

有没有更优雅的方式来远程运行 chef-client?

  • 772

这是Chef Fast Start教程中推荐的方式:

knife ssh name:mynode -a ipaddress  -x ubuntu -i mycredentials.pem "sudo chef-client"

这实在是笨拙。真的没有更好的方法吗,或者在真实的生产环境中,您无论如何都会让节点自动更新的想法?

chef
  • 6 6 个回答
  • 38080 Views

6 个回答

  • Voted
  1. user157553
    2013-02-05T14:09:21+08:002013-02-05T14:09:21+08:00

    您可以使用knife ssh在包含特定角色或食谱的所有盒子上运行 chef-client:

    knife ssh "role:web" "sudo chef-client" -x ubuntu --sudo 
    

    或者,如果您在 EC2 中:

    knife ssh "role:web" "sudo chef-client" -x ubuntu -a ec2.public_hostname 
    
    • 12
  2. Best Answer
    Tim Potter
    2012-07-24T00:59:28+08:002012-07-24T00:59:28+08:00

    这几乎就是你开始做事的方式,但它只需要完成一次。chef-client 的初始运行通常会启用并启动 chef-client 守护进程作为 init.d 服务。

    如果你真的想更优雅地做到这一点,你可以放弃 knife-ssh 并直接运行 ssh:

    ssh ubuntu@ipadddress -i mycredentials.pem sudo chef-client
    

    这可能会更快,因为 knife-ssh 会针对 Chef 服务器进行搜索以获取与搜索词匹配的节点(在本例中name:dynode),如果您已经知道 IP 地址,则不需要严格执行此操作。

    • 10
  3. Greg Jones
    2017-05-22T21:36:31+08:002017-05-22T21:36:31+08:00

    您可以使用 ansible 来部署和运行 chef-client。

    $ ansible -i hosts all -a 'chef-client'

    ansible 很容易用 pip 安装:

    pip install ansible

    您的清单文件(在示例中名为“hosts”)可能如下所示:

    [all] host1.example.com ansible_user=root host2.example.com ansible_user=root host3.example.com ansibel_user=root

    (注意“all”是我们示例的配置文件中分组的名称——这是任意的,可以是任何东西。您的清单文件也可以包括其他分组,例如 [web_wervers]、[database_servers]、[chef_servers] , ETC。)

    所以,再次,把它们放在一起:

    > ansible -i hosts all -a 'chef-client'

    或者可能:

    > ansible -i hosts all -a 'systemctl status'

    • 2
  4. Anil Wavde
    2016-05-20T06:52:09+08:002016-05-20T06:52:09+08:00

    我使用 Jenkins CI 来管理运行。Linux 服务器设置为工作站并安装了 Jenkins。所以我可以使用修改后的 run_list 引导节点。无论如何,引导过程在最后运行 chef-client。

    对于临时执行,Jenkins 作业执行 knife 命令以修改节点的 run_list 并使用 SSH 插件在所需节点上执行 chef-client。

    • 0
  5. osexp2003
    2018-03-07T22:16:55+08:002018-03-07T22:16:55+08:00

    遗憾的是,要向 chef 客户端发送命令,我们必须使用 ssh 下划线。

    看起来虽然每个 Chef 客户端都与 Chef 服务器建立了安全连接,但是 Chef 服务器并没有在该安全连接上提供命令多路复用器,这是为什么呢?

    • 0
  6. sekrett
    2019-09-13T12:29:26+08:002019-09-13T12:29:26+08:00

    chef-runChef Workstation 中有一个新命令:

    chef-run server_name resource_name
    

    如果不存在,它将安装chef-client并运行您指定的资源或说明书。

    教程:https ://learn.chef.io/modules/try-chef-infra#/

    • 0

相关问题

  • 如何开始使用 Chef?

  • 调用 chef-solo 的惯用方式?

  • centos 5.3上的厨师错误

  • 哪种方式是使用 Chef 安装软件包的最“优雅”方式?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve