59 lines
2.3 KiB
Markdown
59 lines
2.3 KiB
Markdown
# Ansible Playbooks
|
|
|
|
This directory contains automation playbooks for managing the homelab infrastructure.
|
|
|
|
## Provisioning & Setup
|
|
|
|
### `create_lxc.yml`
|
|
**Creates and bootstraps a new LXC container on Proxmox.**
|
|
- **Input**: Prompts for Container Name, IP Address, VMID, CPU Cores, and Memory.
|
|
- **Actions**:
|
|
1. Connects to Proxmox API to create a new unprivileged LXC container.
|
|
2. **Injects SSH Keys**: Uses `vars.yml` to inject public keys directly into `/root/.ssh/authorized_keys` (bypassing password auth).
|
|
3. Starts the container and waits for connectivity.
|
|
4. Automatically secures the container (creates `mbuz` user, secures SSH, disables root) effectively running the logic of `lxc_setup_ubuntu.yml`.
|
|
5. Adds the new host to `inventory/hosts.ini` in the `[lxc]` group.
|
|
|
|
### `lxc_setup_ubuntu.yml`
|
|
**Secures a fresh Ubuntu installation.**
|
|
- **Target**: Hosts in the `[new]` group (or fresh installs).
|
|
- **Actions**:
|
|
1. Creates the administrative user (`mbuz`).
|
|
2. Sets up SSH public key authentication.
|
|
3. Disables root login and password authentication for SSH.
|
|
4. Configures passwordless `sudo` for the admin user.
|
|
5. **Inventory Update**: Moves the host from the `[new]` group to the `[lxc]` group in `hosts.ini`.
|
|
|
|
### `lxc_setup_ubuntu_git.yml`
|
|
**Provisions application dependencies on managed hosts.**
|
|
- **Target**: Existing managed hosts (e.g., `[lxc]`).
|
|
- **Actions**:
|
|
1. Installs `git` and core utilities.
|
|
2. Clones the central Docker configuration repository from the local Gitea server.
|
|
3. Prepares the `/opt/docker` directory structure.
|
|
|
|
## Maintenance & Upgrades
|
|
|
|
### `apt_upgrade.yml`
|
|
**Performs system-wide updates.**
|
|
- **Target**: All Ubuntu hosts.
|
|
- **Actions**:
|
|
1. Updates `apt` cache.
|
|
2. Performs `dist-upgrade`.
|
|
3. Autoremoves unused packages.
|
|
4. Checks for and notifies if a reboot is required.
|
|
|
|
### `zabbix_agent_upgrade.yml`
|
|
**Updates Zabbix Agent.**
|
|
- **Target**: `zagents` group.
|
|
- **Actions**:
|
|
1. Ensures `zabbix-agent2` is installed and updated to the latest available version.
|
|
|
|
### `zabbix_proxy_install.yml`
|
|
**Installs Zabbix Proxy and Agent.**
|
|
- **Target**: Specific Zabbix Proxy host.
|
|
- **Actions**:
|
|
1. Downloads and installs the Zabbix release package.
|
|
2. Installs `zabbix-proxy-sqlite3` and `zabbix-agent2`.
|
|
3. Configures PSK encryption and connection settings using `secrets.yml`.
|