Ich habe eine Inventardatei, die verschiedene Login-Informationen für mehrere Hosts enthält. Aber beim Aufruf des ansible_ssh_user-Wertes im Playbook bekomme ich nur den letzten Eintrag.ansible: ansible_ssh_user Überschreibende Werte für Hosts in einer Gruppe
Warum dauert es den letzten Eintrag ansible_ssh_user?
Inventar Datei:
[local]
10.41.42.2 ansible_ssh_user=root ansible_ssh_pass=root123
[DSC_root]
10.41.42.2 ansible_ssh_user=root ansible_ssh_pass=root123
10.41.42.70 ansible_ssh_user=root ansible_ssh_pass=root
10.41.42.71 ansible_ssh_user=root ansible_ssh_pass=root
[DSC_admin]
10.41.42.2 ansible_ssh_user=root ansible_ssh_pass=root123
10.41.42.70 ansible_ssh_user=dscadmin ansible_ssh_pass=dscadmin
10.41.42.71 ansible_ssh_user=dscadmin ansible_ssh_pass=dscadmin
Textbuch:
---
- hosts: DSC_root
remote_user: root
tasks:
- name: get root user home grep and register
shell: >
grep "^{{ansible_ssh_user}}:" /etc/passwd | awk -F: '{ print $6 }'
changed_when: false
register: v_getuserhome
- debug: var=v_getuserhome
Logs:
[[email protected] ansible]# ansible-playbook -i inventory1 get_home.yml
PLAY [DSC_root] ****************************************************************
TASK [setup] *******************************************************************
ok: [10.41.42.71]
ok: [10.41.42.70]
ok: [10.41.42.2]
TASK [get root user home grep and register] ************************************
ok: [10.41.42.70]
ok: [10.41.42.71]
ok: [10.41.42.2]
TASK [debug] *******************************************************************
ok: [10.41.42.70] => {
"v_getuserhome": {
"changed": false,
"cmd": "grep \"^dscadmin:\" /etc/passwd | awk -F: '{ print $6 }'",
"delta": "0:00:00.005985",
"end": "2016-07-31 09:23:42.743393",
"rc": 0,
"start": "2016-07-31 09:23:42.737408",
"stderr": "",
"stdout": "/home/dscadmin",
"stdout_lines": [
"/home/dscadmin"
],
"warnings": []
}
}
ok: [10.41.42.2] => {
"v_getuserhome": {
"changed": false,
"cmd": "grep \"^root:\" /etc/passwd | awk -F: '{ print $6 }'",
"delta": "0:00:00.005801",
"end": "2016-07-31 18:53:44.074155",
"rc": 0,
"start": "2016-07-31 18:53:44.068354",
"stderr": "",
"stdout": "/root",
"stdout_lines": [
"/root"
],
"warnings": []
}
}
ok: [10.41.42.71] => {
"v_getuserhome": {
"changed": false,
"cmd": "grep \"^dscadmin:\" /etc/passwd | awk -F: '{ print $6 }'",
"delta": "0:00:00.006740",
"end": "2016-07-31 09:23:43.347801",
"rc": 0,
"start": "2016-07-31 09:23:43.341061",
"stderr": "",
"stdout": "/home/dscadmin",
"stdout_lines": [
"/home/dscadmin"
],
"warnings": []
}
}
PLAY RECAP *********************************************************************
10.41.42.2 : ok=3 changed=0 unreachable=0 failed=0
10.41.42.70 : ok=3 changed=0 unreachable=0 failed=0
10.41.42.71 : ok=3 changed=0 unreachable=0 failed=0
Ja, Sie haben Recht. Gibt es eine Möglichkeit, verschiedene Inventardateien direkt im Playbook aufzurufen? – samir