{"id":25376510,"url":"https://github.com/sbarbett/proxmox-ansible","last_synced_at":"2025-04-09T09:49:01.330Z","repository":{"id":277119076,"uuid":"930112590","full_name":"sbarbett/proxmox-ansible","owner":"sbarbett","description":"Collection of roles and sample playbooks for managing Proxmox with Ansible","archived":false,"fork":false,"pushed_at":"2025-04-02T05:11:42.000Z","size":56,"stargazers_count":60,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T06:22:20.859Z","etag":null,"topics":["ansible","proxmox","sysadmin-tool"],"latest_commit_sha":null,"homepage":"https://blog.barbetta.me/posts/ansible-playbooks-for-proxmox-lxcs/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sbarbett.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-10T04:57:40.000Z","updated_at":"2025-04-02T05:06:57.000Z","dependencies_parsed_at":"2025-02-12T08:49:08.382Z","dependency_job_id":"f73dd3ef-2ea9-49f7-ab0f-8b2c39cc0f40","html_url":"https://github.com/sbarbett/proxmox-ansible","commit_stats":null,"previous_names":["sbarbett/proxmox-ansible"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fproxmox-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fproxmox-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fproxmox-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fproxmox-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbarbett","download_url":"https://codeload.github.com/sbarbett/proxmox-ansible/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248017997,"owners_count":21034042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","proxmox","sysadmin-tool"],"created_at":"2025-02-15T04:28:07.689Z","updated_at":"2025-04-09T09:49:01.309Z","avatar_url":"https://github.com/sbarbett.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# proxmox_management\n\nThis Ansible collection makes it easy to provision, configure, and manage Proxmox LXC containers. It includes several roles that handle everything from setting up containers to applying advanced configurations and even deploying Docker containers inside them.\n\n## Overview\n\nThe collection is composed of the following roles:\n\n* **proxmox_provision** – Creates and starts LXC containers on a Proxmox host using the Proxmox API.\n* **container_inventory** – Retrieves container IP addresses using a Python script and automatically adds them to the Ansible inventory.\n* **container_setup** – Handles basic setup, like updating packages, creating non-root users, and disabling root login.\n* **container_extras** – Runs additional non-root setup tasks, such as installing extra packages and customizing system messages.\n* **docker_compose** – Deploys and manages Docker containers on LXC hosts using Docker Compose.\n\nThese roles are designed to work together, starting with container creation and ending with full application deployment via Docker.\n\n## Requirements\n\nTo use this collection, you'll need:\n\n* **Ansible:** Version 2.9 or later.\n* **Python Libraries (on the control node):**\n    - proxmoxer\n    - requests\n    - passlib\n* **Ansible Collection Dependency:** community.general (\u003e=6.0.0)\n* **Proxmox API Access:** Valid credentials and network access to your Proxmox server.\n\n_Note:_ I recommend using `geerlingguy.docker` to install Docker and its dependencies.\n\n## Quick Start\n\n1. **Set up your environment:** Use the `bootstrap.yml` playbook in `examples/` to install the required dependencies:\n\n   ```bash\n   python3 -m venv venv\n   source venv/bin/activate\n   pip install ansible\n   ansible-playbook examples/bootstrap.yml\n   ```\n\n2. **Install the collection:**\n\n   ```bash\n   ansible-galaxy collection install sbarbett.proxmox_management\n   ```\n\n3. **Configure your vault and container definitions** in `group_vars/`.\n\n## Usage\n\nYou can integrate this collection into your playbooks for a complete workflow. Here are some useful examples:\n\n* [Example playbook: Full LXC workflow](https://github.com/sbarbett/proxmox-ansible/blob/main/examples/manage-lxcs.yml) - From provisioning to final setup.\n* [Example LXC dictionary](https://github.com/sbarbett/proxmox-ansible/blob/main/examples/lxcs.yml) - Defines your containers.\n\n### Docker Compose Templates\n\nThis collection includes ready-to-use Docker Compose manifests for some common services:\n\n* [IT Tools](https://github.com/sbarbett/proxmox-ansible/blob/main/roles/docker_compose/files/compose_files/it-tools.yml) _([Environment file](https://github.com/sbarbett/proxmox-ansible/blob/main/roles/docker_compose/files/compose_files/it-tools.env.j2))_- A collection of useful utilities for IT professionals.\n* [Gitea](https://github.com/sbarbett/proxmox-ansible/blob/main/roles/docker_compose/files/compose_files/gitea.yml) _([Environment file](https://github.com/sbarbett/proxmox-ansible/blob/main/roles/docker_compose/files/compose_files/gitea.env.j2))_ -  A lightweight, self-hosted Git service.\n* [PiHole-Unbound](https://github.com/sbarbett/proxmox-ansible/blob/main/roles/docker_compose/files/compose_files/pihole-unbound.yml) _([Environment file](https://github.com/sbarbett/proxmox-ansible/blob/main/roles/docker_compose/files/compose_files/pihole-unbound.env.j2))_ - A PiHole 6 container preconfigured with Unbound for upstream recursion.\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbarbett%2Fproxmox-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbarbett%2Fproxmox-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbarbett%2Fproxmox-ansible/lists"}