Chef infra 我们能告诉chef客户端运行特定的资源吗?

Chef infra 我们能告诉chef客户端运行特定的资源吗?,chef-infra,Chef Infra,我已经写了一个厨师食谱,它将创建2个用户。我想告诉chef客户端基于标记创建一个或两个用户(这在Ansible中是可行的),我想在chef中实现同样的功能 配方:用户 user'user1'do 注释“随机用户1” uid'1234' gid'1234' 主页“/主页/随机” shell“/bin/bash” 密码“$1$JJsvHslasdfjVEroftprNn4JHtDi” 结束 用户“user2”do 注释“随机用户2” uid'1234' gid'1234' 主页“/主页/随机” sh

我已经写了一个厨师食谱,它将创建2个用户。我想告诉chef客户端基于标记创建一个或两个用户(这在Ansible中是可行的),我想在chef中实现同样的功能

配方:用户

user'user1'do
注释“随机用户1”
uid'1234'
gid'1234'
主页“/主页/随机”
shell“/bin/bash”
密码“$1$JJsvHslasdfjVEroftprNn4JHtDi”
结束
用户“user2”do
注释“随机用户2”
uid'1234'
gid'1234'
主页“/主页/随机”
shell“/bin/bash”
密码“$1$JJsvHslasdfjVEroftprNn4JHtDi”
结束
在我的用户配方中,我有两个资源
user1
user2
。 我已经启动了一个EC2,我想运行用户配方,但我不希望两个用户都在EC2上创建


同样,在我的组织中,我们有200名员工,我们不希望所有用户都在新发布的EC2上创建。请根据厨师标准指导如何管理用户创建。

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

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

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

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

除了上述答案,我觉得您还需要查看cookbook中创建特定组中所有用户的
users\u manage
资源。
然后,您可以为每个环境设置不同的组名,并通过使用不同的数据包等方式控制该组中的用户

除了上述答案之外,我觉得您还需要查看cookbook中创建特定组中所有用户的
users\u manage
资源。
然后,您可以为每个环境设置不同的组名,并通过使用不同的数据包等方式控制该组中的用户

是的,你可以。如果你想控制你的环境中的用户,请考虑使用社区“用户”食谱。它使用一个数据库来控制用户设置。是的,你可以。如果你想控制你的环境中的用户,请考虑使用社区“用户”食谱。它使用一个数据包来控制用户设置。