如何使用ansible修改sudoers文件?

如何使用ansible修改sudoers文件?

我们(在 10 台服务器上)有一个 sudoers 文件/etc/sudoers.d/ops。有时我们需要向该文件添加多个用户和 Cmnd_Alias。我们如何使用 ansible playbook 来自动化此操作?

我们的 sudoers 文件:

User_Alias     OPS_USERS = user1,user2,user3

Cmnd_Alias     OPS_CMD = /sbin/ifconfig, /usr/sbin/dmidecode

OPS_USERS      ALL = NOPASSWD:OPS_CMD  

答案1

就我个人而言,我会使用模板模块(关联)。我会准备一个与此类似的模板:

User_Alias OPS_USERS = {{ users|join(', ') }}

Cmnd_Alias OPS_CMD = {{ 命令|join(', ') }}

OPS_USERS 全部 = NOPASSWD:OPS_CMD

在变量中我会放这样的东西:

用户:
  - “用户1”
  -“用户2”
  -“用户3”

命令:
  -“/sbin/ifconfig”
  -“/usr/sbin/dmidecode”

编辑:也许需要一些解释。

在模板中,我使用了一个过滤器,它将字符串与给定的分隔符连接起来(',')。您可以找到有关过滤器的更多信息这里。当然,要连接的字符串是从列表中获取的'用户' 或者 '命令' 在你的剧本的变量部分定义。

相关内容