我必须使用ansible剧本用很少的行/命令来更新sudoers.d多个用户文件
users.yml
user1:
- Line1111
- Line2222
- Line3333
user2:
- Line4444
- Line5555
- Line6666
main.yml
- hosts: "{{ host_group }}"
vars_files:
- ../users.yml
tasks:
- name: Add user "user1" to sudoers.d
lineinfile:
path: /etc/sudoers.d/user1
line: '{{ item }}'
state: present
mode: 0440
create: yes
validate: 'visudo -cf %s'
with_items:
- "{{ user1 }}"
以上仅对用户1有效。
如果我还想包含user2->如何更改文件名:路径:/etc/sudoers.d/user1
我尝试了以下及其无效:
在运行时将以下用户作为变量传递给main.yml
users:
- "user1"
- "user2"
- name: Add user "{{users}}" to sudoers.d
lineinfile:
path: /etc/sudoers.d/{{users}}
line: '{{ item }}'
state: present
mode: 0440
create: yes
validate: 'visudo -cf %s'
with_items:
- "{{ users }}"
所以,基本上我想将用户作为user1和user2传递给变量{{users}},并希望使用users.yml中每个用户的行并将其添加到相应的用户文件(/etc/sudoers.d / user1和/etc/sudoers.d/user2)。
所以/etc/sudoers.d/user1应该类似于
Line1111
Line2222
Line3333
和/etc/sudoers.d/user2应该看起来像
Line4444
Line5555
Line6666
cat users.yml
---
users:
- user1:
filename: user1sudoers
args:
- Line1111
- Line2222
- Line3333
- user2:
filename: user2sudoers
args:
- Line4444
- Line5555
- Line6666