J'essaie de récupérer l'ID de groupe de deux groupes ( syslog
et utmp
) par nom à l'aide d'une tâche Ansible. À des fins de test, j'ai créé un playbook pour récupérer les informations de l'hôte Ansible lui-même.
---
- name: My playbook
hosts: enabled
sudo: True
connection: local
gather_facts: False
tasks:
- name: Determine GIDs
shell: "getent group {{ item }} | cut -d : -f 3"
register: gid_{{item}}
failed_when: gid_{{item}}.rc != 0
changed_when: false
with_items:
- syslog
- utmp
Malheureusement, j'obtiens l'erreur suivante lors de l'exécution du playbook:
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
Comment puis-je consolider une tâche comme celle-ci dans un formulaire paramétré tout en enregistrant des variables distinctes , une par article , pour une utilisation ultérieure? Le but est donc d'avoir des variables basées sur le nom du groupe qui peuvent ensuite être utilisées dans des tâches ultérieures.
J'utilise le int
filtre gid_syslog.stdout
et gid_utmp.stdout
je fais un calcul basé sur le GID dans les tâches ultérieures.
J'ai également essayé d'utiliser gid.{{item}}
et gid[item]
au lieu de gid_{{item}}
vain.
Les éléments suivants fonctionnent bien contrairement à ce qui précède:
---
- name: My playbook
hosts: enabled
sudo: True
connection: local
gather_facts: False
tasks:
- name: Determine syslog GID
shell: "getent group syslog | cut -d : -f 3"
register: gid_syslog
failed_when: gid_syslog.rc != 0
changed_when: false
- name: Determine utmp GID
shell: "getent group utmp | cut -d : -f 3"
register: gid_utmp
failed_when: gid_utmp.rc != 0
changed_when: false
Set fact prend en charge les variables, contrairement à la déclaration de la solution précédente
la source