Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chef infra 如何在特定环境中复制节点_Chef Infra_Chef Recipe_Knife - Fatal编程技术网

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
至少一次后,刀输出中的
角色:
配方:
值将更新,它们是上次运行的缓存输出(与节点数据中存储的大多数值一样)


数据包不附加到特定节点或环境,它们是全局对象,因此此处没有交互。

使用角色和环境,不要复制节点。只需创建环境和节点并将它们分配给特定节点。这是推荐的方法。如果已将配置分配给节点,请将其移动到角色和/或环境