Create VM with Proxmox API
This commit is contained in:
parent
8b8de00dbb
commit
0c8763c702
2 changed files with 56 additions and 0 deletions
39
proxmox.yml
Normal file
39
proxmox.yml
Normal file
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
# This is a special playbook to create a new VM !
|
||||
- hosts: pad.adm.auro.re # Host with python-proxmoxer and python-requests
|
||||
become: false # We do not need root as we use Proxmox API
|
||||
|
||||
vars:
|
||||
vm_definitions:
|
||||
- name: ldap-replica-pacaterie
|
||||
virtu: mordred
|
||||
cores: 2 # 2 mimimum, 10 maximum
|
||||
memory: 1024 # M
|
||||
disksize: 16 # G
|
||||
installiso: debian-buster-DI-rc1-amd64-netinst.iso
|
||||
- name: dhcp-pacaterie
|
||||
virtu: mordred
|
||||
cores: 2 # 2 mimimum, 10 maximum
|
||||
memory: 1024 # M
|
||||
disksize: 16 # G
|
||||
installiso: debian-buster-DI-rc1-amd64-netinst.iso
|
||||
- name: dns-pacaterie
|
||||
virtu: mordred
|
||||
cores: 2 # 2 mimimum, 10 maximum
|
||||
memory: 1024 # M
|
||||
disksize: 16 # G
|
||||
installiso: debian-buster-DI-rc1-amd64-netinst.iso
|
||||
- name: prometheus-pacaterie
|
||||
virtu: mordred
|
||||
cores: 2 # 2 mimimum, 10 maximum
|
||||
memory: 1024 # M
|
||||
disksize: 16 # G
|
||||
installiso: debian-buster-DI-rc1-amd64-netinst.iso
|
||||
|
||||
vars_prompt:
|
||||
- name: "password"
|
||||
prompt: "Enter LDAP password for your user"
|
||||
private: yes
|
||||
|
||||
roles:
|
||||
- proxmox-vm
|
17
roles/proxmox-vm/tasks/main.yml
Normal file
17
roles/proxmox-vm/tasks/main.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
- name: Define a virtual machine in Proxmox
|
||||
proxmox_kvm:
|
||||
api_user: "{{ ansible_user_id }}@pam"
|
||||
api_password: "{{ password }}"
|
||||
api_host: "{{ item.virtu }}.adm.auro.re"
|
||||
name: "{{ item.name }}"
|
||||
node: "{{ item.virtu }}"
|
||||
scsihw: virtio-scsi-pci
|
||||
scsi: '{"scsi0":"{{ item.virtu }}:{{ item.disksize }},format=raw"}'
|
||||
sata: '{"sata0":"local:iso/{{ item.installiso }},media=cdrom"}'
|
||||
net: '{"net0":"virtio,bridge=vmbr2"}' # Adm only by default
|
||||
cores: "{{ item.cores }}"
|
||||
memory: "{{ item.memory }}"
|
||||
balloon: "{{ item.memory // 2 }}"
|
||||
bios: seabios # Ansible module doesn't support UEFI boot disk
|
||||
loop: "{{ vm_definitions }}"
|
Loading…
Reference in a new issue