Vielleicht kann mir ja jemand von euch helfen... Ich möchte gerne mit Ansible einige administrative Tasks vereinfachen, jedoch erfordern diese Root Rechte. Der direkte Login als Root via SSH ist aus Sicherheitsgründen sowieso ausgeschlossen. Genauso wenig erlaubt es die Sicherheit, dem unprivilegierten User ohne Passwort volle sudo Rechte zu geben.
Ich habe mich jetzt etwas durch die Ansible Doku gelesen und bin auf become gestoßen. Aufgrund dessen habe ich meine Hosts Datei etwas angepasst - diese sieht nun so aus:
all:
vars:
ansible_connection: ssh
ansible_ssh_user: myuser
ansible_ssh_private_key_file: /home/myuser/.ssh/id_ed25519
ansible_become: yes
ansible_become_user: root
ansible_become_method: su
ansible_become_flags: "-"
children:
NBGDMZ:
hosts:
proxy.v199.rz01.nbg.de.domain.de:
vars:
ansible_become_pass: "{{ proxy_become_pass }}"
borgbackup.v199.rz01.nbg.de.domain.de:
vars:
ansible_become_pass: "{{ borgbackup_become_pass }}"
torrent.v199.rz01.nbg.de.domain.de:
vars:
ansible_become_pass: "{{ torrent_become_pass }}"
waf.v199.rz01.nbg.de.domain.de:
vars:
ansible_become_pass: "{{ waf_become_pass }}"
minecraft.v199.rz01.nbg.de.domain.de:
vars:
ansible_become_pass: "{{ minecraft_become_pass }}"
children:
NBGDMZdocker:
hosts:
NBGGSB:
hosts:
children:
NBGGSBdocker:
hosts:
Alles anzeigen
Zudem habe ich einen Vault angelegt, welcher so aussieht:
proxy_become_pass: password1
borgbackup_become_pass: password2
torrent_become_pass: password3
waf_become_pass: password4
minecraft_become_pass: password5
Führe ich nun ansible-playbook test_playbook.yml --ask-vault-pass -e vaulted_vars.yml aus, werde ich nach dem Vault PW gefragt und lande nach einiger Zeit warten in einen Timeout.
user@pc:~/Workspace/ansible$ ansible-playbook test_playbook.yml --ask-vault-pass -e vaulted_vars.yml
Vault password:
PLAY [Just a test playbook] **************************************************************************************************************************************************************************************************************************************************************
TASK [Create dummy file in home] *********************************************************************************************************************************************************************************************************************************************************
fatal: [minecraft.v199.rz01.nbg.de.domain.de]: FAILED! => {"msg": "Timeout (32s) waiting for privilege escalation prompt: "}
fatal: [waf.v199.rz01.nbg.de.domain.de]: FAILED! => {"msg": "Timeout (32s) waiting for privilege escalation prompt: "}
fatal: [proxy.v199.rz01.nbg.de.domain.de]: FAILED! => {"msg": "Timeout (32s) waiting for privilege escalation prompt: "}
fatal: [torrent.v199.rz01.nbg.de.domain.de]: FAILED! => {"msg": "Timeout (32s) waiting for privilege escalation prompt: "}
fatal: [borgbackup.v199.rz01.nbg.de.domain.de]: FAILED! => {"msg": "Timeout (32s) waiting for privilege escalation prompt: "}
PLAY RECAP *******************************************************************************************************************************************************************************************************************************************************************************
borgbackup.v199.rz01.nbg.de.domain.de : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
minecraft.v199.rz01.nbg.de.domain.de : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
proxy.v199.rz01.nbg.de.domain.de : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
torrent.v199.rz01.nbg.de.domain.de : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
waf.v199.rz01.nbg.de.domain.de : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
user@pc:~/Workspace/ansible$
Alles anzeigen
Und genau das verstehe ich nicht - ansible sollte per su den User wechseln, das PW dafür hat er aus dem Vault. Aber... er tut quasi nichts. Mache ich da irgendwo einen Fehler oder so?