51 lines
1.5 KiB
YAML
51 lines
1.5 KiB
YAML
---
|
|
# Add Single User Playbook
|
|
# Quick playbook to add one admin user
|
|
|
|
- name: Add Admin User
|
|
hosts: all
|
|
become: yes
|
|
gather_facts: yes
|
|
|
|
vars_prompt:
|
|
- name: new_username
|
|
prompt: "Enter username to create"
|
|
private: no
|
|
|
|
- name: new_user_comment
|
|
prompt: "Enter full name/comment"
|
|
private: no
|
|
default: ""
|
|
|
|
- name: generate_ssh_key
|
|
prompt: "Generate SSH key pair? (yes/no)"
|
|
private: no
|
|
default: "yes"
|
|
|
|
vars:
|
|
admin_users:
|
|
- username: "{{ new_username }}"
|
|
comment: "{{ new_user_comment if new_user_comment else new_username }}"
|
|
groups: ["sudo", "adm"]
|
|
generate_keys: "{{ generate_ssh_key | bool }}"
|
|
shell: /bin/bash
|
|
state: present
|
|
|
|
roles:
|
|
- role: ssh_users
|
|
|
|
post_tasks:
|
|
- name: Display success message
|
|
ansible.builtin.debug:
|
|
msg:
|
|
- "========================================="
|
|
- "User {{ new_username }} created successfully!"
|
|
- "========================================="
|
|
- "{% if generate_ssh_key | bool %}SSH keys: {{ ssh_keys_local_dir }}/{{ inventory_hostname }}/{{ new_username }}_id_ed25519{% endif %}"
|
|
- ""
|
|
- "{% if generate_ssh_key | bool %}Test SSH access:{% endif %}"
|
|
- "{% if generate_ssh_key | bool %}ssh -i {{ ssh_keys_local_dir }}/{{ inventory_hostname }}/{{ new_username }}_id_ed25519 {{ new_username }}@{{ inventory_hostname }}{% endif %}"
|
|
- "========================================="
|
|
delegate_to: localhost
|
|
run_once: true
|