Ansible: Überprüfen Sie, ob mein Benutzer auf dem Remote-Host vorhanden ist, andernfalls verwenden Sie den Root-Benutzer, um eine Verbindung mit ssh @ herzustelle

Ich schreibe gerade ein Ansible-Skript, das openssl auf jedem Host mit Debian oder CentOS aktualisieren soll. Auf den Hosts sind unsere SSH-Keys für meinen eigenen User hinterlegtode Wurzel. Ich möchte überprüfen, ob mein Benutzer auf dem Host vorhanden ist, andernfalls möchte ich mich beim Root-Benutzer authentifizieren. Gibt es eine Möglichkeit dies zu tun? Ich habe es mit einem Bash-Befehl versucht, möchte aber prüfen, ob mein Benutzer existiertVo Ich leite die Aufgaben. Vielleicht gibt es andere Lösungen für mein Problem, aber ich kenne sie nicht. Das Ausführen dieses Playbooks löst einen Syntaxfehler aus. Mein Skript sieht im Moment so aus:

---
- hosts: "{{ host_group }}" 
  remote_user: "{{ username }}"
  tasks:

# Check whether there's a existinig user or whether you have to use root
    - name: Check whether there's your user on the machine
      action: shell /usr/bin/getent passwd $username | /usr/bin/wc -l | tr -d ''
      register: user_exist
      remote_user: root
      when: user_exist.stdout == 0
      tags:
         - users

# Install openssl on Ubuntu or Debian
    - name: Install openssl on Ubuntu or Debian
      become: True
      become_user: root
      apt: name=openssl state=latest
      when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'

# Install openssl on CentOS or RHEL
    - name: Install openssl on CentOS or RHEL
      become: True
      become_user: root
      yum: name=openssl state=latest
      when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'

Antworten auf die Frage(2)

Ihre Antwort auf die Frage