Модуль community.proxmox.proxmox — управление экземплярами в кластере Proxmox VE
Примечание
Этот модуль входит в коллекцию community.proxmox (версия 1.6.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.proxmox. Для использования этого модуля необходимы дополнительные требования. Подробнее см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.proxmox.proxmox.
Краткое описание
- Позволяет создавать, удалять и останавливать экземпляры в кластере Proxmox VE.
- Модуль автоматически определяет тип контейнеризации (lxc для PVE 4, openvz для более ранних версий).
Требования
Следующие требования необходимы на узле, на котором выполняется этот модуль.
- proxmoxer >= 2.0
- requests
Параметры
Параметр | Комментарии |
|---|---|
api_host string / обязательный | Укажите целевой узел кластера Proxmox VE. Если переменная окружения |
api_password string | Укажите пароль для аутентификации. Если переменная окружения |
api_port integer | Укажите целевой порт кластера Proxmox VE. Если переменная окружения |
api_timeout integer | Ограничение времени для запросов к API Proxmox VE. По умолчанию: |
api_token_id string | Укажите идентификатор токена. Если переменная окружения |
api_token_secret string | Укажите секретный ключ токена. Если переменная окружения |
api_user string / обязательный | Укажите пользователя для аутентификации. Если переменная окружения |
ca_path path | Путь к локальному сертификату, который будет использоваться для проверки TLS-соединений. Игнорируется, если |
clone integer | Идентификатор клонируемого контейнера. Если не указаны, из клонированного контейнера будут скопированы Тип создаваемого клона определяется параметром Эта операция поддерживается только в кластерах Proxmox, использующих контейнеризацию LXC (версия PVE >= 4). |
clone_type string | Тип создаваемого клона.
Варианты:
|
cores integer | Укажите количество ядер на сокет. |
cpus integer | Количество процессоров, выделенных для экземпляра. |
cpuunits integer | Вес ЦП для виртуальной машины. |
delete list / elements=string | Список параметров, которые требуется удалить. |
description string | Укажите описание контейнера. Используется только в веб-интерфейсе конфигурации. Сохраняется в виде комментария в файле конфигурации. |
disk string | Ранее этот параметр описывался как «размер жёсткого диска экземпляра в ГиБ», однако допускается несколько форматов описания точки монтирования LXC. В старых версиях Proxmox для указания размера можно использовать числовое значение с параметром Дополнительные параметры можно задать, используя комбинацию следующих пар ключ-значение в виде списка, разделённого запятыми: Полное описание см. на странице https://pve.proxmox.com/wiki/Linux_Container. Этот параметр несовместим с |
disk_volume dictionary | Укажите хеш/словарь диска Полное описание см. на странице https://pve.proxmox.com/wiki/Linux_Container#pct_mount_points. |
|
host_path path |
Несовместим с |
|
options dictionary |
Значение любого параметра должно быть строкой, например |
|
size integer |
Размер указывается в ГиБ. Требуется только при наличии |
|
storage string |
Несовместим с |
|
volume string |
Если параметр не задан, модуль проверит, существует ли том. Если нет, будет создан новый том. Если параметр задан, том должен существовать под этим именем. Требуется только при наличии |
features list / elements=string | Задаёт список функций, которые необходимо включить. Допустимые параметры см. на странице https://pve.proxmox.com/wiki/Linux_Container#pct_options. Для некоторых функций требуется привилегированный контейнер. |
force boolean | Принудительное выполнение операций. Можно использовать только со следующими состояниями: Для Для Для состояний При указании Варианты:
|
hookscript string | Скрипт, который будет выполняться на различных этапах жизненного цикла контейнера. |
hostname string | Имя хоста экземпляра. Требуется только для Должно быть уникальным, если vmid не указан. |
ip_address string | Задаёт адрес, который будет назначен контейнеру. |
memory integer | Объём памяти экземпляра в МБ. |
mount_volumes list / elements=dictionary | Укажите дополнительные точки монтирования (отдельные диски) для контейнера в виде хеша/словаря, определяющего точки монтирования. Полное описание см. на странице https://pve.proxmox.com/wiki/Linux_Container#pct_mount_points. Этот параметр несовместим с |
|
host_path path |
Несовместим с |
|
id string / обязательный |
|
|
mountpoint path / обязательный |
|
|
options dictionary |
Значение любого параметра должно быть строкой, например |
|
size integer |
Размер указывается в ГиБ. Требуется только при наличии |
|
storage string |
Несовместим с |
|
volume string |
Если параметр не задан, модуль проверит, существует ли том. Если нет, будет создан новый том. Если параметр задан, том должен существовать под этим именем. Требуется только при наличии |
mounts dictionary | Задаёт дополнительные точки монтирования (отдельные диски) для контейнера в виде хеша/словаря, определяющего точки монтирования в виде строк. Этот параметр несовместим с |
nameserver string | Задаёт IP-адрес DNS-сервера для контейнера. |
netif dictionary | Задаёт сетевые интерфейсы контейнера в виде хеша/словаря, определяющего интерфейсы. |
node string | Узел Proxmox VE, на котором выполняются операции. Требуется только для Для всех остальных состояний узел будет определён автоматически. |
onboot boolean | Указывает, будет ли виртуальная машина запускаться при загрузке системы. Варианты:
|
ostemplate string | Шаблон для создания виртуальной машины. Требуется только для |
ostype string | Задаёт Если установлено значение Варианты:
|
password string | Пароль root экземпляра. |
pool string | Добавить новую виртуальную машину в указанный пул. |
pubkey string | Открытый ключ для добавления в /root/.ssh/authorized_keys. Эта возможность появилась в Proxmox 4.2; в более ранних версиях она игнорируется. |
purge boolean | Удалить контейнер из всех связанных конфигураций. Например, из заданий резервного копирования, заданий репликации или конфигурации HA. Связанные записи ACL и брандмауэра удаляются всегда. Используется с Варианты:
|
searchdomain string | Задаёт домен поиска DNS для контейнера. |
startup list / elements=string | Задаёт порядок запуска контейнеров. Используйте Используйте Используйте |
state string | Укажите требуемое состояние экземпляра. Варианты:
|
storage string | |
swap integer | Размер swap-памяти экземпляра в МБ. |
tags list / elements=string | Список тегов, назначаемых контейнеру. Теги должны начинаться с Теги доступны только в Proxmox 7 и более поздних версиях. |
timeout integer | Время ожидания операций. По умолчанию: |
timezone string | Часовой пояс контейнера; принимаются такие значения, как Специальное значение |
unprivileged boolean | Указывает, должен ли контейнер быть непривилегированным. Варианты:
|
update boolean | Если Если Значение по умолчанию изменилось с Варианты:
|
validate_certs boolean | Проверять сертификаты TLS, используемые для подключения к API Proxmox VE. В настоящее время значение по умолчанию — Если параметр не указан, используется переменная окружения Варианты:
|
vmid integer | Задаёт идентификатор экземпляра. Если параметр не задан, из ProxmoxAPI будет получен следующий доступный идентификатор. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.proxmox.proxmox | Используйте |
check_mode | Поддержка: нет | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения об изменениях (или о возможных изменениях в |
См. также
См. также
- community.proxmox.proxmox_vm_info
-
Получение информации об одной или нескольких виртуальных машинах Proxmox VE.
Примеры
- name: Create new container with minimal options
community.proxmox.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 minimal options specifying disk storage location and size
community.proxmox.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'
disk: 'local-lvm:20'
- name: Create new container with minimal options specifying disk storage location and size via disk_volume
community.proxmox.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'
disk_volume:
storage: local
size: 20
- name: Create new container with hookscript and description
community.proxmox.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.proxmox.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.proxmox.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.proxmox.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.proxmox.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.proxmox.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 more options defining network interface with static ip4 and ip6 with vlan-tag and mtu
community.proxmox.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,ip6=fe80::1227/64,gw6=fe80::1,bridge=vmbr0,firewall=1,tag=934,mtu=1500"
- name: Create new container with minimal options defining a mount with 8GiB
community.proxmox.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 mount with 8GiB using mount_volumes
community.proxmox.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'
mount_volumes:
- id: mp0
storage: local
size: 8
mountpoint: /mnt/test
- name: Create new container with minimal options defining a cpu core limit
community.proxmox.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 new container with minimal options and same timezone as proxmox host
community.proxmox.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'
timezone: host
- name: Create a new container with nesting enabled and allows the use of CIFS/NFS inside the container.
community.proxmox.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.proxmox.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.proxmox.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: Update container configuration
community.proxmox.proxmox:
vmid: 100
node: uk-mc02
api_user: root@pam
api_password: 1q2w3e
api_host: node1
netif:
net0: "name=eth0,gw=192.168.0.1,ip=192.168.0.3/24,bridge=vmbr0"
update: true
- name: Start container
community.proxmox.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.proxmox.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: started
timeout: 90
- name: Stop container
community.proxmox.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: stopped
- name: Stop container with force
community.proxmox.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.proxmox.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: restarted
- name: Convert container to template
community.proxmox.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: template
- name: Convert container to template (stop container if running)
community.proxmox.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: template
force: true
- name: Remove container
community.proxmox.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: absent
- name: >-
Create a new container automatically selecting the next available vmid
using a non-root API token
community.proxmox.proxmox:
node: 'uk-mc02'
api_token_id: 'svc-tkn'
api_token_secret: '81c09a2a-0359-4ba1-8153-8cb3cd02509b'
api_user: 'remoteapiuser@pam'
api_host: 'node1'
password: '123456'
hostname: 'example.org'
ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz'
- name: >-
Create a new container automatically selecting the next available vmid
and providing a public key for the root account the Ansible host can use
to connect to the new container
community.proxmox.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'
pubkey: 'ssh-ed25519 AAAAC3NzaC1...hBWA ansibleuser@ansiblehost'
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/proxmox/proxmox_module.html