我们(在 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”
编辑:也许需要一些解释。
在模板中,我使用了一个过滤器,它将字符串与给定的分隔符连接起来(',')。您可以找到有关过滤器的更多信息这里。当然,要连接的字符串是从列表中获取的'用户' 或者 '命令' 在你的剧本的变量部分定义。