community / community.general / 0.1.4 / module / proxmox management of instances in Proxmox VE cluster Authors: Sergei Antipov (@UnderGreen)community.general.proxmox (0.1.4) — module
Install with ansible-galaxy collection install community.general:==0.1.4
collections: - name: community.general version: 0.1.4
allows you to create/delete/stop instances in Proxmox VE cluster
Starting in Ansible 2.1, it automatically detects containerization type (lxc for PVE 4, openvz for older)
- name: Create new container with minimal options proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 password: 123456 hostname: example.org ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz'
- name: Create new container with hookscript and description proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 password: 123456 hostname: example.org ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz' hookscript: 'local:snippets/vm_hook.sh' description: created with ansible
- name: Create new container automatically selecting the next available vmid. proxmox: node: 'uk-mc02' api_user: 'root@pam' api_password: '1q2w3e' api_host: 'node1' password: '123456' hostname: 'example.org' ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz'
- name: Create new container with minimal options with force(it will rewrite existing container) proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 password: 123456 hostname: example.org ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz' force: yes
- name: Create new container with minimal options use environment PROXMOX_PASSWORD variable(you should export it before) proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_host: node1 password: 123456 hostname: example.org ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz'
- name: Create new container with minimal options defining network interface with dhcp proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 password: 123456 hostname: example.org ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz' netif: '{"net0":"name=eth0,ip=dhcp,ip6=dhcp,bridge=vmbr0"}'
- name: Create new container with minimal options defining network interface with static ip proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 password: 123456 hostname: example.org ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz' netif: '{"net0":"name=eth0,gw=192.168.0.1,ip=192.168.0.2/24,bridge=vmbr0"}'
- name: Create new container with minimal options defining a mount with 8GB proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 password: 123456 hostname: example.org ostemplate: local:vztmpl/ubuntu-14.04-x86_64.tar.gz' mounts: '{"mp0":"local:8,mp=/mnt/test/"}'
- name: Create new container with minimal options defining a cpu core limit proxmox: vmid: 100 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 password: 123456 hostname: example.org ostemplate: local:vztmpl/ubuntu-14.04-x86_64.tar.gz' cores: 2
- name: Start container proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: started
- name: > Start container with mount. You should enter a 90-second timeout because servers with additional disks take longer to boot proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: started timeout: 90
- name: Stop container proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: stopped
- name: Stop container with force proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 force: yes state: stopped
- name: Restart container(stopped or mounted container you can't restart) proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: restarted
- name: Remove container proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: absent
cpus: default: 1 description: - numbers of allocated cpus for instance disk: default: 3 description: - hard disk size in GB for instance node: description: - Proxmox VE node, when new VM will be created - required only for C(state=present) - for another states will be autodiscovered pool: description: - Proxmox VE resource pool swap: default: 0 description: - swap memory size in MB for instance vmid: description: - the instance id - if not set, the next available VM ID will be fetched from ProxmoxAPI. - if not set, will be fetched from PromoxAPI based on the hostname cores: default: 1 description: - Specify number of cores per socket. force: default: 'no' description: - forcing operations - can be used only with states C(present), C(stopped), C(restarted) - with C(state=present) force option allow to overwrite existing container - with states C(stopped) , C(restarted) allow to force stop instance type: bool netif: description: - specifies network interfaces for the container. As a hash/dictionary defining interfaces. state: choices: - present - started - absent - stopped - restarted default: present description: - Indicate desired state of the instance memory: default: 512 description: - memory size in MB for instance mounts: description: - specifies additional mounts (separate disks) for the container. As a hash/dictionary defining mount points onboot: default: 'no' description: - specifies whether a VM will be started during system bootup type: bool pubkey: description: - Public key to add to /root/.ssh/authorized_keys. This was added on Proxmox 4.2, it is ignored for earlier versions storage: default: local description: - target storage timeout: default: 30 description: - timeout for operations api_host: description: - the host of the Proxmox VE cluster required: true api_user: description: - the user to authenticate with required: true cpuunits: default: 1000 description: - CPU weight for a VM hostname: description: - the instance hostname - required only for C(state=present) - must be unique if vmid is not passed password: description: - the instance root password - required only for C(state=present) hookscript: description: - Script that will be executed during various steps in the containers lifetime. type: str version_added: 0.2.0 version_added_collection: community.general ip_address: description: - specifies the address the container will be assigned nameserver: description: - sets DNS server IP address for a container ostemplate: description: - the template for VM creating - required only for C(state=present) description: description: - Specify the description for the container. Only used on the configuration web interface. - This is saved as a comment inside the configuration file. type: str version_added: 0.2.0 version_added_collection: community.general api_password: description: - the password to authenticate with - you can use PROXMOX_PASSWORD environment variable searchdomain: description: - sets DNS search domain for a container unprivileged: default: 'no' description: - Indicate if the container should be unprivileged type: bool validate_certs: default: 'no' description: - enable / disable https certificate verification type: bool