Preparing Ansible managed nodes using playbook
---
- name: prep playbook for use with ansible-navigator
hosts: all
remote_user: root
vars:
ansible_password: 'Passw0rd!'
remuser: devops
rempass: redhat123
tasks:
- name: create user {{ remuser }}
user:
name: "{{ remuser }}"
state: present
password: "{{ rempass | ansible.builtin.password_hash('sha512') }}"
- name: provision ssh key
authorized_key:
user: "{{ remuser }}"
state: present
key: "{{ lookup('file', '~/.ssh/id_ecdsa.pub') }}"
- name: provision sudo rule for {{ remuser }}
copy:
dest: /etc/sudoers.d/training
content: 'devops ALL=(ALL) NOPASSWD: ALL'
owner: root
group: root
mode: 0600
Alternative solution: Preparing Ansible Managed Nodes - shell script