Files
vmn-ansible/tasks/password_validation.yaml
T

39 lines
1.1 KiB
YAML

---
- name: Set default password
ansible.builtin.set_fact:
lxc_root_password: "new-lxc-test"
- name: Prompt for password
ansible.builtin.pause:
prompt: "Enter password (letters, digits, hyphens, dots; max 253 chars) [new-lxc-test]"
echo: false
register: password_result_1
until: >
password_result_1.user_input | length == 0 or
(
password_result_1.user_input | length <= 253 and
password_result_1.user_input is regex('^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$')
)
retries: 3
delay: 0
- name: Prompt for password (confirmation)
ansible.builtin.pause:
prompt: "Confirm your new password"
echo: no
register: password_result_2
- name: Ensure passwords match
ansible.builtin.assert:
that:
- password_result_1.user_input == password_result_2.user_input
fail_msg: "Passwords do not match!"
success_msg: "Password confirmed."
- name: Use user input only if provided, otherwise keep the default
ansible.builtin.set_fact:
lxc_root_password: "{{ password_result_1.user_input }}"
when: password_result_1.user_input | length > 0