diff --git a/README.md b/README.md index 58463a0..a1b3ffc 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ Ansible collection for infrastructure management, system configuration, and virt ## Roles -### proxmox-lxc-provision +### proxmox_lxc_provision Manages Proxmox LXC containers with comprehensive lifecycle operations. - Create, clone, start, stop, and delete containers - Template conversion and configuration editing - Post-provisioning tasks and health checks -### system-setup +### system_setup Performs initial system configuration for new servers. - Creates admin user with SSH key authentication @@ -19,14 +19,14 @@ Performs initial system configuration for new servers. - Installs essential packages - Optional passwordless sudo configurations -### system-maintenance +### system_maintenance Updates packages and handles maintenance across multiple distributions. - Multi-distribution support (Debian/Ubuntu/Alpine) - Package updates and cleanup - Automatic reboot handling when required -### nvidia-drivers +### nvidia_drivers Installs NVIDIA drivers and CUDA runtime with proper idempotency and error handling. - Supports Debian/Ubuntu with automatic OS detection @@ -53,7 +53,7 @@ ansible-galaxy collection install patrickj.infrastructure - os_template: "local:vztmpl/debian-12_amd64.tar.zst" - container_ipv4: "10.0.0.99" roles: - - role: proxmox-provision + - role: proxmox_lxc_provision - name: Configure the LXC container hosts: new-debian-container diff --git a/roles/nvidia-drivers/README.md b/roles/nvidia_drivers/README.md similarity index 96% rename from roles/nvidia-drivers/README.md rename to roles/nvidia_drivers/README.md index 440a5fa..0764206 100644 --- a/roles/nvidia-drivers/README.md +++ b/roles/nvidia_drivers/README.md @@ -27,7 +27,7 @@ Installs NVIDIA drivers and CUDA runtime on Debian/Ubuntu systems with proper id ```yaml - name: Install NVIDIA drivers with kernel modules include_role: - name: nvidia-drivers + name: nvidia_drivers vars: nvidia_install_kernel_modules: true nvidia_open_source_drivers: false @@ -37,7 +37,7 @@ Installs NVIDIA drivers and CUDA runtime on Debian/Ubuntu systems with proper id ```yaml - name: Install NVIDIA userspace libraries include_role: - name: nvidia-drivers + name: nvidia_drivers vars: nvidia_install_kernel_modules: false ``` @@ -46,7 +46,7 @@ Installs NVIDIA drivers and CUDA runtime on Debian/Ubuntu systems with proper id ```yaml - name: Install NVIDIA with extras include_role: - name: nvidia-drivers + name: nvidia_drivers vars: nvidia_install_kernel_modules: true nvidia_optional_packages: diff --git a/roles/nvidia-drivers/defaults/main.yml b/roles/nvidia_drivers/defaults/main.yml similarity index 100% rename from roles/nvidia-drivers/defaults/main.yml rename to roles/nvidia_drivers/defaults/main.yml diff --git a/roles/nvidia-drivers/tasks/main.yml b/roles/nvidia_drivers/tasks/main.yml similarity index 100% rename from roles/nvidia-drivers/tasks/main.yml rename to roles/nvidia_drivers/tasks/main.yml diff --git a/roles/proxmox-lxc-provision/README.md b/roles/proxmox_lxc_provision/README.md similarity index 86% rename from roles/proxmox-lxc-provision/README.md rename to roles/proxmox_lxc_provision/README.md index edcf48a..b2ce6d6 100755 --- a/roles/proxmox-lxc-provision/README.md +++ b/roles/proxmox_lxc_provision/README.md @@ -1,19 +1,19 @@ -# Ansible Role: proxmox-lxc-provision +# Ansible Role: proxmox_lxc_provision ## Description This Ansible role manages the provision of LXC containers and templates on a Proxmox host. By default the role will create and start an LXC container. It allows creating a new container from a [container image](https://pve.proxmox.com/wiki/Linux_Container#pct_container_images) or cloning an existing container or template container. It also includes tasks which may be used individually: -- `clone.yaml`: Creates a new LXC container by cloning another container or template -- `convert.yaml`: Converts an LXC container to a template -- `create.yaml`: Creates a new LXC container -- `delete.yaml`: Deletes an LXC container given its vmid or hostname -- `start.yaml`: Starts an LXC container -- `stop.yaml`: Stops an LXC container -- `update.yaml`: Updates an existing LXC container -- `wait.yaml`: Waits for SSH to be available on the container - +- `clone.yml`: Creates a new LXC container by cloning another container or template +- `convert.yml`: Converts an LXC container to a template +- `create.yml`: Creates a new LXC container +- `delete.yml`: Deletes an LXC container given its vmid or hostname +- `start.yml`: Starts an LXC container +- `stop.yml`: Stops an LXC container +- `update.yml`: Updates an existing LXC container +- `wait.yml`: Waits for SSH to be available on the container +- `check-exists.yml`: Checks the existence of the LXC with the given hostname ## Requirements - Ansible 2.9 or higher @@ -103,7 +103,7 @@ proxmox_node: "pve01" lxc_template: "local:vztmpl/debian-12_amd64.tar.zst" lxc_ipv4: "10.0.0.99" roles: - - role: proxmox-lxc-provision + - role: proxmox_lxc_provision ``` ### Creating a new LXC by cloning an existing container with vmid 200 @@ -116,7 +116,7 @@ proxmox_node: "pve01" lxc_clone_from: 200 lxc_ipv4: "10.0.0.99" roles: - - role: proxmox-lxc-provision + - role: proxmox_lxc_provision ``` ### Idempotent Behavior @@ -135,7 +135,7 @@ The role now includes idempotency checking. If a container with the specified `c - os_template: "local:vztmpl/debian-12_amd64.tar.zst" - container_ipv4: "10.0.0.99" roles: - - role: proxmox-lxc-provision + - role: proxmox_lxc_provision # Run configuration tasks on the container # ... @@ -146,6 +146,6 @@ The role now includes idempotency checking. If a container with the specified `c container_hostname: "{{ container_hostname }}" tasks: - include_role: - name: proxmox-lxc-provision + name: proxmox_lxc_provision tasks_from: convert -``` \ No newline at end of file +``` diff --git a/roles/proxmox-lxc-provision/defaults/main.yml b/roles/proxmox_lxc_provision/defaults/main.yml similarity index 100% rename from roles/proxmox-lxc-provision/defaults/main.yml rename to roles/proxmox_lxc_provision/defaults/main.yml diff --git a/roles/proxmox-lxc-provision/tasks/check-exists.yml b/roles/proxmox_lxc_provision/tasks/check-exists.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/check-exists.yml rename to roles/proxmox_lxc_provision/tasks/check-exists.yml diff --git a/roles/proxmox-lxc-provision/tasks/clone.yml b/roles/proxmox_lxc_provision/tasks/clone.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/clone.yml rename to roles/proxmox_lxc_provision/tasks/clone.yml diff --git a/roles/proxmox-lxc-provision/tasks/convert.yml b/roles/proxmox_lxc_provision/tasks/convert.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/convert.yml rename to roles/proxmox_lxc_provision/tasks/convert.yml diff --git a/roles/proxmox-lxc-provision/tasks/create.yml b/roles/proxmox_lxc_provision/tasks/create.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/create.yml rename to roles/proxmox_lxc_provision/tasks/create.yml diff --git a/roles/proxmox-lxc-provision/tasks/delete.yml b/roles/proxmox_lxc_provision/tasks/delete.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/delete.yml rename to roles/proxmox_lxc_provision/tasks/delete.yml diff --git a/roles/proxmox-lxc-provision/tasks/edit-config.yml b/roles/proxmox_lxc_provision/tasks/edit-config.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/edit-config.yml rename to roles/proxmox_lxc_provision/tasks/edit-config.yml diff --git a/roles/proxmox-lxc-provision/tasks/main.yml b/roles/proxmox_lxc_provision/tasks/main.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/main.yml rename to roles/proxmox_lxc_provision/tasks/main.yml diff --git a/roles/proxmox-lxc-provision/tasks/post-clone.yml b/roles/proxmox_lxc_provision/tasks/post-clone.yml similarity index 96% rename from roles/proxmox-lxc-provision/tasks/post-clone.yml rename to roles/proxmox_lxc_provision/tasks/post-clone.yml index 642c43b..7977e48 100755 --- a/roles/proxmox-lxc-provision/tasks/post-clone.yml +++ b/roles/proxmox_lxc_provision/tasks/post-clone.yml @@ -15,7 +15,7 @@ - name: Regenerate SSH host keys ansible.builtin.include_role: - name: system-setup + name: system_setup tasks_from: ssh vars: regenerate_ssh_keys: true diff --git a/roles/proxmox-lxc-provision/tasks/start.yml b/roles/proxmox_lxc_provision/tasks/start.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/start.yml rename to roles/proxmox_lxc_provision/tasks/start.yml diff --git a/roles/proxmox-lxc-provision/tasks/stop.yml b/roles/proxmox_lxc_provision/tasks/stop.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/stop.yml rename to roles/proxmox_lxc_provision/tasks/stop.yml diff --git a/roles/proxmox-lxc-provision/tasks/update.yml b/roles/proxmox_lxc_provision/tasks/update.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/update.yml rename to roles/proxmox_lxc_provision/tasks/update.yml diff --git a/roles/proxmox-lxc-provision/tasks/wait.yml b/roles/proxmox_lxc_provision/tasks/wait.yml similarity index 100% rename from roles/proxmox-lxc-provision/tasks/wait.yml rename to roles/proxmox_lxc_provision/tasks/wait.yml diff --git a/roles/system-maintenance/README.md b/roles/system_maintenance/README.md similarity index 97% rename from roles/system-maintenance/README.md rename to roles/system_maintenance/README.md index 1b0e2f1..94c0095 100644 --- a/roles/system-maintenance/README.md +++ b/roles/system_maintenance/README.md @@ -20,7 +20,7 @@ Updates packages and handles system maintenance tasks across multiple distributi ```yaml - name: Perform system maintenance include_role: - name: system-maintenance + name: system_maintenance ``` ## What It Does diff --git a/roles/system-maintenance/handlers/main.yml b/roles/system_maintenance/handlers/main.yml similarity index 100% rename from roles/system-maintenance/handlers/main.yml rename to roles/system_maintenance/handlers/main.yml diff --git a/roles/system-maintenance/tasks/alpine.yml b/roles/system_maintenance/tasks/alpine.yml similarity index 100% rename from roles/system-maintenance/tasks/alpine.yml rename to roles/system_maintenance/tasks/alpine.yml diff --git a/roles/system-maintenance/tasks/debian.yml b/roles/system_maintenance/tasks/debian.yml similarity index 100% rename from roles/system-maintenance/tasks/debian.yml rename to roles/system_maintenance/tasks/debian.yml diff --git a/roles/system-maintenance/tasks/main.yml b/roles/system_maintenance/tasks/main.yml similarity index 100% rename from roles/system-maintenance/tasks/main.yml rename to roles/system_maintenance/tasks/main.yml diff --git a/roles/system-setup/README.md b/roles/system_setup/README.md similarity index 91% rename from roles/system-setup/README.md rename to roles/system_setup/README.md index 85799fb..bcdf0a9 100644 --- a/roles/system-setup/README.md +++ b/roles/system_setup/README.md @@ -9,7 +9,7 @@ Performs initial system configuration including user creation, SSH hardening, an - Installs essential packages - Optional passwordless sudo - Optional SSH host key regeneration -- System package updates (via system-maintenance role) +- System package updates (via system_maintenance role) ## Variables @@ -38,7 +38,7 @@ ssh_pubkey_file: "/path/to/your/public/key.pub" ```yaml - name: Initial system setup include_role: - name: system-setup + name: system_setup vars: password: "{{ admin_password }}" ssh_pubkey_file: "~/.ssh/id_rsa.pub" @@ -48,7 +48,7 @@ ssh_pubkey_file: "/path/to/your/public/key.pub" ```yaml - name: System setup with custom user include_role: - name: system-setup + name: system_setup vars: username: myuser password: "{{ user_password }}" @@ -65,7 +65,7 @@ ssh_pubkey_file: "/path/to/your/public/key.pub" ## What It Does -1. **System Updates** - Calls system-maintenance role for package updates +1. **System Updates** - Calls system_maintenance role for package updates 2. **Package Installation** - Installs packages from `extra_packages` list 3. **User Creation** - Creates user with password and sudo access 4. **SSH Key Setup** - Configures authorized keys for the user @@ -76,7 +76,7 @@ ssh_pubkey_file: "/path/to/your/public/key.pub" - Root privileges - SSH public key file accessible to Ansible -- system-maintenance role (dependency) +- system_maintenance role (dependency) ## Security Notes diff --git a/roles/system-setup/defaults/main.yml b/roles/system_setup/defaults/main.yml similarity index 100% rename from roles/system-setup/defaults/main.yml rename to roles/system_setup/defaults/main.yml diff --git a/roles/system-setup/handlers/main.yml b/roles/system_setup/handlers/main.yml similarity index 100% rename from roles/system-setup/handlers/main.yml rename to roles/system_setup/handlers/main.yml diff --git a/roles/system-setup/tasks/extra-packages.yml b/roles/system_setup/tasks/extra-packages.yml similarity index 100% rename from roles/system-setup/tasks/extra-packages.yml rename to roles/system_setup/tasks/extra-packages.yml diff --git a/roles/system-setup/tasks/main.yml b/roles/system_setup/tasks/main.yml similarity index 88% rename from roles/system-setup/tasks/main.yml rename to roles/system_setup/tasks/main.yml index 864eb79..2ada687 100755 --- a/roles/system-setup/tasks/main.yml +++ b/roles/system_setup/tasks/main.yml @@ -2,7 +2,7 @@ # Upgrade and update packages - include_role: - name: system-maintenance + name: system_maintenance # Install extra packages - include_tasks: extra-packages.yaml diff --git a/roles/system-setup/tasks/ssh.yml b/roles/system_setup/tasks/ssh.yml similarity index 100% rename from roles/system-setup/tasks/ssh.yml rename to roles/system_setup/tasks/ssh.yml diff --git a/roles/system-setup/tasks/user.yml b/roles/system_setup/tasks/user.yml similarity index 100% rename from roles/system-setup/tasks/user.yml rename to roles/system_setup/tasks/user.yml diff --git a/roles/system-setup/templates/sshd_config.j2 b/roles/system_setup/templates/sshd_config.j2 similarity index 100% rename from roles/system-setup/templates/sshd_config.j2 rename to roles/system_setup/templates/sshd_config.j2