Chef infra 如何在特定环境中复制节点
我有一个现有的厨师节点:Chef infra 如何在特定环境中复制节点,chef-infra,chef-recipe,knife,Chef Infra,Chef Recipe,Knife,我有一个现有的厨师节点: Node Name: app1 Environment: DEMO FQDN: el-demo-app1 IP: xx.xxx.xxx.xxx Run List: recipe[yum_el2], role[Dep], recipe[crypto], role[mule-server], role[activemq], recipe[tomcat-conf], role[tomcat] Roles: activemq
Node Name: app1
Environment: DEMO
FQDN: el-demo-app1
IP: xx.xxx.xxx.xxx
Run List: recipe[yum_el2], role[Dep], recipe[crypto], role[mule-server], role[activemq], recipe[tomcat-conf], role[tomcat]
Roles: activemq, tomcat
Recipes: yum_el, crypto, yum, java, activemq, tomcat-conf, el_conf::commonservices, java::oracle,iptables::default
Platform: redhat 6.6
Tags:
如何在另一个名为LOCAL的环境中使另一个节点与此节点相同
我将运行列表从节点app1下载到本地json文件中,至于菜谱和角色,它们似乎已经在git repo中了,那么,我是否将它们上传到chef服务器?然后将它们应用到节点?对于数据包(来自environment=DEMO),我是否也这样做,因为它们有键
What i WAS able to do is to:
1. download a recipe from supermarket
- knife cookbook site search ack
- knife cookbook site download ack
2. add it to git in my branch
git add ack , in the cookbooks folder
3. upload that to the chef server
- knife cookbook upload ack
4. apply that as a run-list
- sudo chef-client --runlist "ack"
and it worked
5. test it
$ack --help
需要与节点app1相同的当前节点如下所示:
$ knife search node chef_environment:LOCAL
1 items found
Node Name: dt-linux-dev111
Environment: LOCAL
FQDN: dt-linux-dev111
IP: yy.yyy.yyy.yyy
Run List: recipe[nodejs]
Roles:
Recipes: nodejs, nodejs::default, environment_elis2::default, nodejs::packages
Platform: redhat 6.7
Tags:
问题:
我可以对“角色”、“配方”和“数据包”应用与“运行列表”相同的步骤吗?运行列表查看角色的数组结构并添加它,执行“刀节点编辑dt-linux-dev111”,添加所需的角色和配方以及数据包,然后运行sudo chef客户端
How do i add multiple roles to a node?
How do i add multiple Recipes to a node ?
How do i add multiple data-bags to a node ?
角色和菜谱合在一起只是运行列表条目,您可以“复制”“通过
刀节点编辑
或操作运行列表的任何其他刀命令来编辑它们。从一个字符串复制到另一个字符串没有什么特别的地方,只需复制字符串数组即可。成功运行chef-client
至少一次后,刀输出中的角色:
和配方:
值将更新,它们是上次运行的缓存输出(与节点数据中存储的大多数值一样)
数据包不附加到特定节点或环境,它们是全局对象,因此此处没有交互。使用角色和环境,不要复制节点。只需创建环境和节点并将它们分配给特定节点。这是推荐的方法。如果已将配置分配给节点,请将其移动到角色和/或环境