21 lines
1.6 KiB
Markdown
21 lines
1.6 KiB
Markdown
# Ansible for Homelab
|
|
|
|
This Ansible setup is designed to automate the configuration and maintenance of servers and applications in the homelab. It includes playbooks for common tasks, inventory management for different environments, and a structured way to handle variables and secrets.
|
|
|
|
## Directory Structure
|
|
|
|
- `inventory/`: Contains the inventory files that define the hosts and groups of hosts managed by Ansible. The `hosts.ini` file should be updated with your server details, and `example_hosts.ini` serves as a template.
|
|
- `group_vars/`: This directory can be used to store variables that apply to specific groups of hosts defined in the inventory.
|
|
- `*.yml` files: These are the Ansible playbooks that define the automation tasks.
|
|
- `secrets.yml`: This file is intended to store sensitive data like passwords and API keys. It is recommended to encrypt this file using Ansible Vault. An `example_secrets.yml` is provided as a template.
|
|
- `vars.yml`: This file can be used to store non-sensitive variables that are used across multiple playbooks.
|
|
|
|
## Getting Started
|
|
|
|
1. **Install Ansible:** Make sure you have Ansible installed on your control machine.
|
|
2. **Inventory:** Update the `inventory/hosts.ini` file with the IP addresses and connection details for your servers.
|
|
3. **Secrets:** Create a `secrets.yml` file based on the `example_secrets.yml` template and encrypt it using Ansible Vault for security.
|
|
4. **Run a Playbook:** You can run a playbook using the `ansible-playbook` command. For example:
|
|
```bash
|
|
ansible-playbook -i inventory/hosts.ini apt_upgrade.yml
|
|
``` |