我们可以告诉厨师 - 客户运行特定资源吗?

时间:2016-01-08 10:39:00

标签: chef

我写了一个厨师食谱,将创建2个用户。我想告诉chef-client根据标签创建一个或两个用户(这在Ansible中是可行的)我想在chef中实现相同的功能。

食谱:用户

user 'user1' do
  comment 'A random user1'
  uid '1234'
  gid '1234'
  home '/home/random'
  shell '/bin/bash'
  password '$1$JJsvHslasdfjVEroftprNn4JHtDi'
end
user 'user2' do
  comment 'A random user2'
  uid '1234'
  gid '1234'
  home '/home/random'
  shell '/bin/bash'
  password '$1$JJsvHslasdfjVEroftprNn4JHtDi'
end

在我的用户食谱中,我有两个资源user1user2。 我已经推出了EC2,我想运行用户配方,但我不希望在EC2上创建这两个用户。

同样,在我的组织中,我们有200名员工,我们不希望在新推出的EC2上创建所有用户。请按照Chef标准指导如何管理用户创建。

2 个答案:

答案 0 :(得分:0)

没有像Ansible或Salt这样的特定功能。您可以使用覆盖运行列表来指定仅使用一次的运行列表,但并非所有烹饪书都在其下表现良好。如果你想编写Ruby代码来实现这一点,你完全可以。

unless tag?('thingy')
  user 'one'
  user 'two'
end
user 'three'

答案 1 :(得分:0)

除了上述答案之外,我觉得您需要查看来自users食谱的getCityid('Draper'); 资源,该资源会创建特定群组中的所有用户。 然后,您可以为每个环境设置不同的组名称,并控制该组中的用户,例如通过使用不同的data_bags。