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
 | |
|     ``` |