user "{{ outer_item.name }}" exists check
getent:
database: passwd
fail_key: false
register: exist_check_result
- name: getent_result
debug:
msg: "{{ exist_check_result }}"
и получаю
ok: [192.168.40.145] => {
"msg": {
"ansible_facts": {
"getent_passwd": {
"Debian-exim": [
"x",
"110",
"114",
"",
"/var/spool/exim4",
"/bin/false"
],
"_apt": [
"x",
"104",
"65534",
"",
"/nonexistent",
"/bin/false"
],
как написать условие для последующего таска, чтоб выполнялся если пользователь существует из полученного выше?
сам спросил и сам ответил: when: "{{outer_item.name in getent_passwd.keys()|list}}"
но в итоге вы делаете говно, хотя вы конечно не согласитесь
сломается, в when {{ }} не пишутся
да, спасибо, я уже поправил
если по сабжу то проще всего прогнать цикл в цикл через инклюд, но конкретно по проверке юзера в 95% оно вам не надо, т.к если пользователь есть с ним ничего делаться не будет, если в ынамеренно не указали иное, если есть необходимость , к примеру менять пароль/делать append, только при наличии переменной, то проще всего это сделать через |default и omit
Обсуждают сегодня