设置唯一Chef节点属性的最佳实践

 BrucelLi 发布于 2023-02-11 19:40

我正在尝试使用Chef来管理新的虚拟机.我正在使用专用的Chef服务器,并从一个单独的工作站vm完成所有这些工作.

我目前正在这样做的方法是克隆一个基本vm映像,然后使用knife bootstrap来安装Chef并使vm处于一致状态.

我可以为vm指定环境或运行列表; 我可以覆盖我的环境中的某些设置,例如,我在测试环境的"覆盖"块中设置了厨师 - 客户端间隔,以便在我测试时每60次运行客户端,所以我不必手动运行厨师 -客户每次.

例如,我的工作流程如下:

克隆vm模板并启动vm

手动设置主机名(更新/ etc/hostname和/ etc/hosts)并重新启动

使用初始配方引导节点

刀bootstrap chef-test1 -r'配方[ntp],食谱[chef-client]'

编辑节点以反映新环境

我遇到的问题是设置每节点属性.我想使用hostname cookbook来设置节点的主机名,如果我将其设置为某个角色,那么每个服务器都必须创建一个新角色.但是当我尝试引导并包含此角色时,我收到一个错误:

chef-test1   * log[Please set the set_fqdn attribute to desired hostname] action write[2013-12-09T16:26:56-07:00] WARN: Please set the set_fqdn attribute to desired hostname

当我没有那个配方的bootstrap并尝试编辑节点并设置"set_fqdn"属性时,我无法保存属性,例如这个json:

{
  "name": "chef-test1",
  "set_fqdn": "chef-test1.local.fqdn",
  "chef_environment": "test-dev1",
  "normal": {
    "tags": [

    ]
  },
  "run_list": [
    "recipe[ntp]",
    "recipe[chef-client]",
    "recipe[hostname]"
  ]
}

当我退出编辑器时,刀告诉我:

Node not updated, skipping node save

我试图在厨师gui中编辑这个属性,属性不会保存.

我找到了这个在/etc/chef/chef.json中创建json的人,基本上按照我的预期行事,但我不确定/etc/chef/chef.json如何发挥作用(为每个新的更新它)节点?我不是在使用大厨独唱所以也许这就是我的困惑所在.)

根据此电子邮件线程,无法使用刀节点编辑覆盖默认属性,但"set_fqdn"不是默认值.我想避免为每个节点创建一个角色,我想我可以使用hostname cookbook来减轻手动设置主机名的需要,例如:

刀具bootstrap saucy64 -r'配方[ntp],配方[chef-client],配方[主机名]' - json'"{set_fqdn":"chef-test1.local.tld","chef_client":{"interval" :"600"}'

刀引导程序fedora19 -r'recipe [ntp],食谱[chef-client],食谱[hostname]' - json'"{set_fqdn":"chef-test2.local.tld","chef_client":{"interval" :"60"}'

我很感激你的帮助.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有