community / community.general / 6.6.8 / module / proxmox Management of instances in Proxmox VE cluster Authors: Sergei Antipov (@UnderGreen)community.general.proxmox (6.6.8) — module
Install with ansible-galaxy collection install community.general:==6.6.8
collections: - name: community.general version: 6.6.8
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)
Since community.general 4.0.0 on, there are no more default values, see I(proxmox_default_behavior).
- name: Create new container with minimal options community.general.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 community.general.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. community.general.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) community.general.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: true
- name: Create new container with minimal options use environment PROXMOX_PASSWORD variable(you should export it before) community.general.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 community.general.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 community.general.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 community.general.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 community.general.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: Create a new container with nesting enabled and allows the use of CIFS/NFS inside the container. community.general.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' features: - nesting=1 - mount=cifs,nfs
- name: > Create a linked clone of the template container with id 100. The newly created container with be a linked clone, because no storage parameter is defined community.general.proxmox: vmid: 201 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 clone: 100 hostname: clone.example.org
- name: Create a full clone of the container with id 100 community.general.proxmox: vmid: 201 node: uk-mc02 api_user: root@pam api_password: 1q2w3e api_host: node1 clone: 100 hostname: clone.example.org storage: local
- name: Start container community.general.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 community.general.proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: started timeout: 90
- name: Stop container community.general.proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: stopped
- name: Stop container with force community.general.proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 force: true state: stopped
- name: Restart container(stopped or mounted container you can't restart) community.general.proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: restarted
- name: Remove container community.general.proxmox: vmid: 100 api_user: root@pam api_password: 1q2w3e api_host: node1 state: absent
cpus: description: - numbers of allocated cpus for instance - This option has no default unless I(proxmox_default_behavior) is set to C(compatiblity); then the default is C(1). type: int disk: description: - This option was previously described as "hard disk size in GB for instance" however several formats describing a lxc mount are permitted. - Older versions of Proxmox will accept a numeric value for size using the I(storage) parameter to automatically choose which storage to allocate from, however new versions enforce the C(<STORAGE>:<SIZE>) syntax. - Additional options are available by using some combination of the following key-value pairs as a comma-delimited list C([volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]). - See U(https://pve.proxmox.com/wiki/Linux_Container) for a full description. - This option has no default unless I(proxmox_default_behavior) is set to C(compatiblity); then the default is C(3). type: str node: description: - Proxmox VE node on which to operate. - Only required for I(state=present). - For every other states it will be autodiscovered. type: str pool: description: - Add the new VM to the specified pool. type: str swap: description: - swap memory size in MB for instance - This option has no default unless I(proxmox_default_behavior) is set to C(compatiblity); then the default is C(0). type: int tags: description: - List of tags to apply to the container. - Tags must start with C([a-z0-9_]) followed by zero or more of the following characters C([a-z0-9_-+.]). - Tags are only available in Proxmox 7+. elements: str type: list version_added: 6.2.0 version_added_collection: community.general vmid: description: - Specifies the instance ID. - If not set the next available ID will be fetched from ProxmoxAPI. type: int clone: description: - ID of the container to be cloned. - I(description), I(hostname), and I(pool) will be copied from the cloned container if not specified. - The type of clone created is defined by the I(clone_type) parameter. - This operator is only supported for Proxmox clusters that use LXC containerization (PVE version >= 4). type: int version_added: 4.3.0 version_added_collection: community.general cores: description: - Specify number of cores per socket. - This option has no default unless I(proxmox_default_behavior) is set to C(compatiblity); then the default is C(1). type: int force: default: false 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. type: dict purge: default: false description: - Remove container from all related configurations. - For example backup jobs, replication jobs, or HA. - Related ACLs and Firewall entries will always be removed. - Used with state C(absent). type: bool version_added: 2.3.0 version_added_collection: community.general state: choices: - present - started - absent - stopped - restarted default: present description: - Indicate desired state of the instance type: str memory: description: - memory size in MB for instance - This option has no default unless I(proxmox_default_behavior) is set to C(compatiblity); then the default is C(512). type: int mounts: description: - specifies additional mounts (separate disks) for the container. As a hash/dictionary defining mount points type: dict onboot: description: - specifies whether a VM will be started during system bootup - This option has no default unless I(proxmox_default_behavior) is set to C(compatiblity); then the default is C(false). 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 type: str storage: default: local description: - target storage type: str timeout: default: 30 description: - timeout for operations type: int api_host: description: - Specify the target host of the Proxmox VE cluster. required: true type: str api_user: description: - Specify the user to authenticate with. required: true type: str cpuunits: description: - CPU weight for a VM - This option has no default unless I(proxmox_default_behavior) is set to C(compatiblity); then the default is C(1000). type: int features: description: - Specifies a list of features to be enabled. For valid options, see U(https://pve.proxmox.com/wiki/Linux_Container#pct_options). - Some features require the use of a privileged container. elements: str type: list version_added: 2.0.0 version_added_collection: community.general hostname: description: - the instance hostname - required only for C(state=present) - must be unique if vmid is not passed type: str password: description: - the instance root password type: str clone_type: choices: - full - linked - opportunistic default: opportunistic description: - Type of the clone created. - C(full) creates a full clone, and I(storage) must be specified. - C(linked) creates a linked clone, and the cloned container must be a template container. - C(opportunistic) creates a linked clone if the cloned container is a template container, and a full clone if not. I(storage) may be specified, if not it will fall back to the default. type: str version_added: 4.3.0 version_added_collection: community.general 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 type: str nameserver: description: - sets DNS server IP address for a container type: str ostemplate: description: - the template for VM creating - required only for C(state=present) type: str 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: - Specify the password to authenticate with. - You can use C(PROXMOX_PASSWORD) environment variable. type: str api_token_id: description: - Specify the token ID. - Requires C(proxmoxer>=1.1.0) to work. type: str version_added: 1.3.0 version_added_collection: community.general searchdomain: description: - sets DNS search domain for a container type: str unprivileged: description: - Indicate if the container should be unprivileged. - 'The default value for this parameter is C(false) but that is deprecated and it will be replaced with C(true) in community.general 7.0.0. ' type: bool validate_certs: default: false description: - If C(false), SSL certificates will not be validated. - This should only be used on personally controlled sites using self-signed certificates. type: bool api_token_secret: description: - Specify the token secret. - Requires C(proxmoxer>=1.1.0) to work. type: str version_added: 1.3.0 version_added_collection: community.general proxmox_default_behavior: choices: - compatibility - no_defaults default: no_defaults description: - As of community.general 4.0.0, various options no longer have default values. These default values caused problems when users expected different behavior from Proxmox by default or filled options which caused problems when set. - The value C(compatibility) (default before community.general 4.0.0) will ensure that the default values are used when the values are not explicitly specified by the user. The new default is C(no_defaults), which makes sure these options have no defaults. - This affects the I(disk), I(cores), I(cpus), I(memory), I(onboot), I(swap), I(cpuunits) options. type: str version_added: 1.3.0 version_added_collection: community.general