如何复制特定chef_environment中的节点

时间:2016-02-16 12:27:08

标签: chef 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, 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中,然后,我将它们上传到厨师服务器吗?然后将它们应用于节点?我是否对数据包(来自环境= 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-client

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 ?

2 个答案:

答案 0 :(得分:0)

角色和食谱集体只是运行列表条目,你可以"复制"它们通过def isPrime(n): for i in range(2,math.sqrt(n)): if n%i ==0 : return False return True #limits calculated using prime number theory by hand primes=[] for num in range(104319,114319): if isPrime(num): primes.append(num) 或任何其他操纵运行列表的刀具命令。没有什么特别的复制从一个到另一个,只是复制意大利面串行。成功运行knife node edit至少一次后,刀输出中的Roles:Recipes:值将被更新,它们是上次运行时的缓存输出(存储在节点中的大多数值)数据)。

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

答案 1 :(得分:0)

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