Welcome to the Ansible Monorepo, a centralized collection of Ansible playbooks, roles, and automation scripts designed for streamlined infrastructure management.
- Overview
- Getting Started
- Repository Structure
- Code Standards
- Contributing
- Testing & CI/CD
- Versioning
- License
This repository contains modular and reusable Ansible configurations to automate deployment and system management. The primary goals are:
- Idempotency: Ensure consistent execution without unintended changes.
- Security: Use 1Password CLI for secrets management.
- Maintainability: Follow standardized coding and contribution guidelines.
-
Ansible installed:
sudo apt install ansible
-
1Password CLI for secrets:
brew install 1password-cli #macOS sudo apt install 1password-cli #Linux
git clone https://github.com/Masked-Kunsiquat/ansible-prime.git
cd ansible-prime
ansible-monorepo/
├── ansible.cfg # Global Ansible configuration
├── inventory/ # Inventory files & groups
│ ├── hosts # Default inventory
│ ├── group_vars/ # Group-specific variables
│ ├── host_vars/ # Host-specific variables
├── roles/ # Modular Ansible roles
├── playbooks/ # Playbooks that call roles
├── templates/ # Jinja2 templates
├── scripts/ # Supporting automation scripts
├── secrets/ # Managed via 1Password
├── CODE_STANDARDS.md # Coding standards
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Version history
├── LICENSE # License information
└── README.md # This file
All code contributions must follow the repository coding standards defined in CODE_STANDARDS.md
.
We welcome contributions! Please check out CONTRIBUTING.md
for:
- PR & Issue Guidelines
- Branching & Commit Conventions
- CI/CD & Linting Requirements
- Pre-commit hooks are used to enforce YAML and Ansible linting.
- GitHub Actions CI/CD automatically runs tests and linting:
- Playbooks must pass
ansible-lint
before merging. - CI/CD workflows are in
.github/workflows/ci.yml
.
- Playbooks must pass
- All changes are tracked in
CHANGELOG.md
. - Releases are tagged using semantic versioning (
vX.Y.Z
). - Run
npx semantic-release
to generate new releases.
This project is licensed under the MIT License.