【问题标题】:Can we tell chef-client to run particular resources?我们可以告诉 chef-client 运行特定的资源吗?
【发布时间】:2016-01-14 06:17:57
【问题描述】:

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

配方:用户

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

在我的 users 配方中,我有两个资源 user1user2。 我已经启动了一个 EC2,我想运行 users 配方,但我不想在 EC2 上创建两个用户。

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

【问题讨论】:

  • 是的,你可以。请更准确地说明您已经尝试过的内容。
  • 如果您想控制环境中的用户,请考虑使用社区“用户”食谱。它使用数据包来控制用户设置。

标签: chef-infra


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多