e5da6cfdad
ci / validate (push) Has been cancelled
- Implement 4-role architecture (base_provision, patching, hardening, decommission) - Extract hardcoded values to role defaults and group_vars - Add Ansible Vault integration for secrets management - Implement proper handlers for service restarts instead of direct tasks - Add Molecule testing framework with Docker driver - Configure ansible-lint with production profile settings Fix all 125+ ansible-lint violations: - Add FQCN (Fully Qualified Collection Names) to all modules - Replace yes/no with true/false for boolean values - Add explicit mode parameters to file/template operations - Remove duplicate post_tasks blocks from playbooks - Add newlines at end of all YAML files - Fix key ordering in tasks (name, when, block) - Convert service restarts to handlers with notify - Remove ignore_errors in favor of failed_when/changed_when - Fix line length violations and empty lines - Add noqa comments for unavoidable risky-file-permissions Update documentation: - Add REFACTORING.md with implementation details - Add VAULT_GUIDE.md for secrets management - Add per-role README.md files - Update existing documentation All playbooks now pass ansible-lint production profile with 0 violations.
36 lines
951 B
YAML
36 lines
951 B
YAML
---
|
|
- name: Provision Enterprise Infrastructure Nodes
|
|
hosts: all
|
|
become: true
|
|
gather_facts: true
|
|
vars_files:
|
|
- vars/vault.yml
|
|
|
|
pre_tasks:
|
|
- name: Validate Ansible version
|
|
ansible.builtin.assert:
|
|
that:
|
|
- ansible_version.major >= 2
|
|
- ansible_version.minor >= 9
|
|
fail_msg: "Ansible 2.9+ is required"
|
|
|
|
- name: Display provisioning information
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
Provisioning {{ inventory_hostname }}
|
|
OS: {{ ansible_os_family }}
|
|
Python: {{ ansible_python_version }}
|
|
|
|
roles:
|
|
- role: base_provision
|
|
tags: ['provision', 'base']
|
|
|
|
post_tasks:
|
|
- name: Generate provisioning summary
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
Provisioning completed successfully!
|
|
Host: {{ inventory_hostname }}
|
|
IP: {{ ansible_default_ipv4.address }}
|
|
OS: {{ ansible_os_family }} {{ ansible_os_version }}
|