Q: "Получить UID каждого из созданных пользователей."
A: Модуль getent служит именно для этой цели. Например,
- hosts: localhost
vars:
my_users: ['root', 'admin']
tasks:
- getent:
database: passwd
- debug:
msg:
- "{{ item }} uid: {{ getent_passwd[item].1 }}"
- "{{ item }} gid: {{ getent_passwd[item].2 }}"
- "{{ item }} home: {{ getent_passwd[item].4 }}"
- "{{ item }} shell: {{ getent_passwd[item].5 }}"
loop: "{{ my_users }}"
дает
ok: [localhost] => (item=root) => {
"msg": [
"root uid: 0",
"root gid: 0",
"root home: /root",
"root shell: /bin/bash"
]
}
ok: [localhost] => (item=admin) => {
"msg": [
"admin uid: 1002",
"admin gid: 1002",
"admin home: /home/admin",
"admin shell: /bin/bash"
]
}
Модуль getent
автоматически создал словарь getent_passwd
, который можно использовать в шаблоне. Например шаблон
shell> cat template.j2
{% for user in my_users %}
{{ user }} {{ getent_passwd[user].1 }}
{% endfor %}
- template:
src: template.j2
dest: my_users.txt
дает
shell> cat my_users.txt
root 0
admin 1002