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'