47 lines
1.3 KiB
YAML
47 lines
1.3 KiB
YAML
---
|
|
- name: Create user {{ user }}
|
|
hosts: labs
|
|
vars:
|
|
user: webadmin
|
|
sshkey: /home/rocky/.ssh/id_rsa.pub
|
|
tasks:
|
|
- name: Execute block
|
|
block:
|
|
- name: Create user {{ user }}
|
|
ansible.builtin.user:
|
|
name: "{{ user }}"
|
|
create_home: true
|
|
state: present
|
|
|
|
- name: Set authorized key taken from file
|
|
ansible.posix.authorized_key:
|
|
user: "{{ user }}"
|
|
key: "{{ lookup('file', '{{ sshkey }}') }}"
|
|
state: present
|
|
|
|
- name: Test ssh connexion
|
|
ansible.builtin.command: su - rocky -c 'ssh -o StrictHostKeyChecking=no {{ user }}@{{ item }} "exit 0"'
|
|
delegate_to: localhost
|
|
become: false
|
|
register: ssh_out
|
|
changed_when: false
|
|
with_items:
|
|
- "{{ groups['labs'] }}"
|
|
|
|
rescue:
|
|
- name: Delete user {{ user }}
|
|
ansible.builtin.user:
|
|
name: "{{ user }}"
|
|
state: absent
|
|
always:
|
|
- name: Show user info
|
|
ansible.builtin.command: id {{ user }}
|
|
changed_when: false
|
|
register: info
|
|
|
|
- name: Write log to file
|
|
ansible.builtin.lineinfile:
|
|
line: "{{ info }}"
|
|
path: /tmp/ansible.log
|
|
delegate_to: localhost
|