Ansible: проверьте, существует ли мой пользователь на удаленном хосте, иначе используйте пользователя root для соединения с ssh
В настоящее время я пишу сценарий Ansible, который должен обновлять openssl на каждом хосте, на котором работает Debian или CentOS. На хостах наши SSH-ключи хранятся для моего собственного пользователя.или же корень. Я хочу проверить, существует ли мой пользователь на хосте, если нет, я хочу аутентифицироваться с пользователем root. Есть ли возможность сделать это? Я пробовал это с помощью команды bash, но я хочу проверить, существует ли мой пользовательдо Я выполняю задачи. Может быть, есть другие решения моей проблемы, но я их не знаю. Запуск этой книги воспроизведения выдает синтаксическую ошибку. Мой скрипт сейчас выглядит так:
---
- 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'