无人看pipe的厨师客户端安装

有没有人尝试执行一个无人看pipe的厨师客户端安装 – 从节点本身安装厨师客户端?

文档中提供的信息不多。 另外,我不希望厨师独奏,但在节点上的厨师客户端。

从你的问题来看,你不知道你在做什么操作系统,以及你是在独立的还是在厨师的服务器环境中。

以下是独立安装chef-client的两个选项:

Omnibus安装程序

curl -L https://www.chef.io/chef/install.sh | sudo bash 

或针对特定版本

 curl -L https://www.chef.io/chef/install.sh | sudo bash -s -- -v 12.0.2 

包安装

Ubuntu的例子:

 wget https://opscode-omnibus-packages.s3.amazonaws.com/debian/6/x86_64/chef_12.5.1-1_amd64.deb sudo dpkg -i chef_12.5.1-1_amd64.deb 

引导

刀引导程序将在厨师服务器环境中的节点上安装厨师客户端。 Bootstrap使用omnibus安装程序,然后从服务器复制所需的客户端configuration。

 knife bootstrap 123.45.6.789 -x username -P password --sudo 

无人参与引导

厨师客户端可以使用无人参与的引导进行安装。 这允许厨师客户端从本身安装,而不使用SSH。 例如,机器通常使用AWS Auto Scaling,AWS CloudFormation,Rackspace Auto Scale和PXE等环境创build。 在这种情况下,使用工具进行参与,像刀具引导或刀CLOUD_PLUGIN创build单机安装是不实际的,因为机器是自动创build的,有人不能总是手头来启动引导过程。

当厨师客户端使用无人参与引导程序安装时,请记住厨师客户端:

  • 必须能够向主厨服务器进行身份validation
  • 必须能够configuration一个运行列表
  • 可能需要自定义属性,具体取决于正在使用的食谱
  • 必须能够访问chef-validator.pem,以便它可以在Chef服务器上创build一个新的身份
  • 必须有唯一的节点名称; 厨师客户端默认使用主机系统的FQDN

当厨师客户端使用无人参与引导程序安装时,通常将其构build到启动厨师客户端的映像中。 使用的图像types取决于将在其上进行无人参与引导的平台。

使用client.rb文件中的设置(chef_server_url,http_proxy等)来确保将configuration细节内置到无人参与的引导过程中。

节点的初始运行列表是使用主机系统上的JSON文件指定的。 将chef-client作为可执行文件运行时,使用-j选项告诉主客户端使用哪个JSON文件。 例如:

 chef-client -j /etc/chef/file.json --environment _default 

其中file.json类似于:

 { "resolver": { "nameservers": [ "10.0.0.1" ], "search":"int.example.com" }, "run_list": [ "recipe[resolver]" ] } 

您可能还想与Chef签出Provision和Bootstrap AWS实例

我只是做了这个,不得不从一些不同的StackExchange问​​题和一些博客文章中find它们。 很多信息都是针对AWS的,但是我没有在那里部署。 下面简要总结一下需要什么。 我假设厨师客户端已经安装,你可以访问厨师服务器实例。

  1. 放置在/ etc / chef中的validation.pem
  2. / etc / chef中的client.rb包含以下字段:

    node_name "my_node" chef_server_url "https://api.chef.io/organizations/my_org validation_client_name "my_org-validator"

  3. (最低限度)这个数据在/ etc / chef中的first_run.json:

    {"run_list":["role[base]"]}

  4. 一个将运行的启动脚本

    chef-client -j /etc/chef/first_run.json > /tmp/chef_first_run.log

我configuration了所有这些并保存了磁盘映像。 现在,当运行该操作系统安装的设备启动时,它会自动向主厨服务器注册自己,并执行angular色“基本”的运行列表。 我使用了Ubuntu Server 16.04和Chef Client 12.3.0

编辑:以前这说first_run.json应该包含run-list 。 这已经更新到run_list每个反馈的评论。

我们在AWS上一直这样做 – 在这里查看厨师CloudInitconfiguration指令: http ://cloudinit.readthedocs.io/en/latest/topics/examples.html#install-and-run-chef-recipes

厨师删除了他们的PPA前一段时间,所以你必须使用综合或gem方法 – 包不再有效。