From d0c272ff832fd13540bb95b5e7e0322993e27045 Mon Sep 17 00:00:00 2001 From: Maxim Vershinin Date: Sun, 9 Aug 2026 14:10:53 +0400 Subject: [PATCH] REFACTOR: VM creation and setup --- .../deploy_and_set_up_lxc_on_proxmox.yaml | 6 ++--- playbooks/deploy_vm_from_cloud_init.yaml | 23 +++++-------------- .../tasks/main.yaml | 20 ++++++++-------- 3 files changed, 19 insertions(+), 30 deletions(-) rename roles/{basic_proxmox_vm => deploy_vm_on_proxmox}/tasks/main.yaml (86%) diff --git a/playbooks/deploy_and_set_up_lxc_on_proxmox.yaml b/playbooks/deploy_and_set_up_lxc_on_proxmox.yaml index a14f201..2530724 100644 --- a/playbooks/deploy_and_set_up_lxc_on_proxmox.yaml +++ b/playbooks/deploy_and_set_up_lxc_on_proxmox.yaml @@ -12,17 +12,17 @@ vars_prompt: - name: lxc_hostname - prompt: "Hostname for the container:" + prompt: "Hostname for the container" private: false - name: lxc_root_password - prompt: "Root password:" + prompt: "Root password" private: true confirm: true encrypt: sha512_crypt - name: lxc_ip_address - prompt: "IP address for the container (in x.x.x.x/x formant):" + prompt: "IP address for the container (in x.x.x.x/x formant)" private: false diff --git a/playbooks/deploy_vm_from_cloud_init.yaml b/playbooks/deploy_vm_from_cloud_init.yaml index 96c045c..f432053 100644 --- a/playbooks/deploy_vm_from_cloud_init.yaml +++ b/playbooks/deploy_vm_from_cloud_init.yaml @@ -2,27 +2,16 @@ - name: Deploy a virtual machine from a cloud init image hosts: localhost gather_facts: false - roles: - - ../roles/basic_proxmox_vm -- name: Basic Proxmox guest deployment - hosts: all - remote_user: ansible - roles: - - ../roles/basic_postinstall vars_files: ../inventory/group_vars/all/secrets.yaml vars: ansible_user_passwd_hash: "{{ ansible_password | password_hash('sha512', 's3edscrj45e6r') }}" user_passwd_hash: "{{ user_password | password_hash('sha512', 's3ed6123jhgcr') }}" + vars_prompt: + - name: vm_hostname + prompt: "Hostname for the VM" + private: false - handlers: - - name: restart ssh-server - service: - name: ssh - state: restarted - - - name: restart sshd-server - service: - name: sshd - state: restarted \ No newline at end of file + roles: + - ../roles/deploy_vm_on_proxmox diff --git a/roles/basic_proxmox_vm/tasks/main.yaml b/roles/deploy_vm_on_proxmox/tasks/main.yaml similarity index 86% rename from roles/basic_proxmox_vm/tasks/main.yaml rename to roles/deploy_vm_on_proxmox/tasks/main.yaml index 990fec3..392bdfd 100644 --- a/roles/basic_proxmox_vm/tasks/main.yaml +++ b/roles/deploy_vm_on_proxmox/tasks/main.yaml @@ -10,13 +10,19 @@ api_token_secret: "{{ proxmox_token_secret }}" clone: debian-13-cloud-init-template - newid: 1041 - name: ansible-ci-test + name: "{{ vm_hostname }}" storage: main format: qcow2 full: true timeout: 500 +- name: Sleep for 20 seconds to ensure that Proxmox has cloned the VM + become: false + ansible.builtin.wait_for: + timeout: 20 + delegate_to: localhost + changed_when: false + - name: Tweak the hardware settings become: false community.proxmox.proxmox_kvm: @@ -27,7 +33,7 @@ api_token_id: ansible api_token_secret: "{{ proxmox_token_secret }}" - vmid: 1041 + name: "{{ vm_hostname }}" cores: 4 memory: 4096 # Minimal value for debian based OS for smooth workflow update: true @@ -42,12 +48,6 @@ api_token_id: ansible api_token_secret: "{{ proxmox_token_secret }}" - vmid: 1041 + name: "{{ vm_hostname }}" state: started -- name: Sleep for 3 minutes to ensure that cloud-init's done its thing - become: false - ansible.builtin.wait_for: - timeout: 180 - delegate_to: localhost - changed_when: false