community.general.proxmox модуль – Управление экземплярами в кластере Proxmox VE
Примечание
Этот модуль входит в коллекцию community.general (версия 9.5.0).
У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, запустите ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования, см. Требования для подробностей.
Чтобы использовать его в playbook, укажите: community.general.proxmox.
Обзор
- Позволяет создавать/удалять/останавливать экземпляры в кластере Proxmox VE.
- Модуль автоматически определяет тип контейнеризации (lxc для PVE 4, openvz для более старых версий).
- Начиная с community.general 4.0.0, значения по умолчанию больше не используются.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- proxmoxer
- requests
Параметры
Параметр | Комментарии |
|---|---|
api_host строка / обязательно | Укажите целевой хост кластера Proxmox VE. |
api_password строка | Укажите пароль для аутентификации. Вы можете использовать переменную окружения |
api_port целое число добавлен в community.general 9.1.0 | Укажите целевой порт кластера Proxmox VE. Используется переменная окружения |
api_token_id строка добавлен в community.general 1.3.0 | Укажите идентификатор токена. Требуется |
api_token_secret строка добавлен в community.general 1.3.0 | Укажите секрет токена. Требуется |
api_user строка / обязательно | Укажите пользователя для аутентификации. |
clone целое число добавлен в community.general 4.3.0 | Идентификатор контейнера, который будет клонирован.
Тип создаваемого клона определяется параметром Этот оператор поддерживается только для кластеров Proxmox, использующих контейнеризацию LXC (версия PVE >= 4). |
clone_type строка добавлен в community.general 4.3.0 | Тип создаваемого клона.
Варианты:
|
cores целое число | Укажите количество ядер на сокет. |
cpus целое число | количество выделенных cpu для экземпляра |
cpuunits целое число | Вес ЦП для виртуальной машины |
description строка добавлен в community.general 0.2.0 | Укажите описание контейнера. Используется только в веб-интерфейсе конфигурации. Сохраняется как комментарий в файле конфигурации. |
disk строка | Этот параметр ранее описывался как «размер жёсткого диска в ГБ для экземпляра», но допускаются несколько форматов, описывающих mount lxc. Более старые версии Proxmox принимают числовое значение для размера, используя параметр Доступны дополнительные параметры, используя комбинацию следующих пар ключ-значение через запятую: Полное описание см. на https://pve.proxmox.com/wiki/Linux_Container. Этот параметр несовместим с |
disk_volume словарь добавлен в community.general 9.2.0 | Укажите хеш/словарь диска Полное описание см. на https://pve.proxmox.com/wiki/Linux_Container#pct_mount_points. |
|
host_path путь |
Несовместим с |
|
options словарь |
Значение любого параметра должно быть строкой, например, |
|
size целое число |
Размер задаётся в ГБ. Требуется только если |
|
storage строка |
Несовместимо с |
|
volume строка |
Если не определено, модуль проверит его наличие. Если нет, будет создан новый том. Если определено, том должен существовать под этим именем. Требуется только если |
features список / элементы=строка добавлено в community.general 2.0.0 | Указывает список функций, которые необходимо включить. Допустимые варианты см. в https://pve.proxmox.com/wiki/Linux_Container#pct_options. Некоторые функции требуют использования контейнера с привилегиями. |
force логическое | Принудительное выполнение операций. Может использоваться только с состояниями С опцией force можно перезаписать существующий контейнер. Состояния Варианты:
|
hookscript строка добавлено в community.general 0.2.0 | Скрипт, который будет выполняться на различных этапах жизненного цикла контейнера. |
hostname строка | Имя хоста экземпляра. Требуется только для Должно быть уникальным, если не указан vmid. |
ip_address строка | Указывает адрес, который будет назначен контейнеру. |
memory целое число | Размер памяти в МБ для экземпляра. |
mount_volumes список / элементы=словарь добавлено в community.general 9.2.0 | Указывает дополнительные подключения (отдельные диски) для контейнера. Представлено в виде словаря/списка, определяющего точки монтирования. Полное описание см. в https://pve.proxmox.com/wiki/Linux_Container#pct_mount_points. Эта опция несовместима с |
|
host_path путь |
Несовместимо с |
|
id строка / обязательно |
|
|
mountpoint путь / обязательно |
|
|
options словарь |
Значение каждой опции должно быть строкой, например |
|
size целое число |
Размер указан в ГБ. Требуется только если |
|
storage строка |
Несовместимо с |
|
volume строка |
Если не определено, модуль проверит, существует ли такой том. Если нет, будет создан новый. Если определено, том должен существовать под этим именем. Требуется только если |
mounts словарь | Указывает дополнительные подключения (отдельные диски) для контейнера. Представлено в виде словаря/списка, определяющего точки монтирования как строки. Эта опция несовместима с |
nameserver строка | Устанавливает IP-адрес DNS-сервера для контейнера. |
netif словарь | Указывает сетевые интерфейсы для контейнера. Представлено в виде словаря/списка, определяющего интерфейсы. |
node строка | Узел Proxmox VE, на котором нужно выполнить операцию. Требуется только для Для всех остальных состояний он будет автоматически определён. |
onboot логическое | Указывает, будет ли VM запущена при загрузке системы. Варианты:
|
ostemplate строка | Шаблон для создания VM. Требуется только для |
ostype string added in community.general 8.1.0 | Указывает Если установлено значение Варианты:
|
password string | root-пароль экземпляра |
pool string | Добавить новую виртуальную машину в указанный пул. |
pubkey string | Открытый ключ для добавления в /root/.ssh/authorized_keys. Добавлен в Proxmox 4.2, игнорируется для более ранних версий |
purge boolean added in community.general 2.3.0 | Удалить контейнер из всех связанных конфигураций. Например, задания резервного копирования, задания репликации или HA. Связанные списки управления доступом и записи брандмауэра всегда будут удалены. Используется с Варианты:
|
searchdomain string | устанавливает DNS-домен поиска для контейнера |
startup list / elements=string added in community.general 8.5.0 | Указывает порядок запуска контейнера. Используйте Используйте Используйте |
state string | Указывает желаемое состояние экземпляра
Варианты:
|
storage string | Целевое хранилище. Этот параметр взаимоисключающий с Значение по умолчанию: |
swap integer | Размер подкачки в МБ для экземпляра |
tags list / elements=string added in community.general 6.2.0 | Список тегов для применения к контейнеру. Теги должны начинаться с Теги доступны только в Proxmox 7+. |
timeout integer | время ожидания для операций Значение по умолчанию: |
timezone string added in community.general 7.1.0 | Часовой пояс, используемый контейнером, принимает значения, подобные Специальное значение |
unprivileged boolean | Указывает, должен ли контейнер быть с пониженными правами. Значение по умолчанию изменилось на Варианты:
|
update boolean added in community.general 8.1.0 | Если Варианты:
|
validate_certs boolean | Если Это следует использовать только на лично контролируемых сайтах, использующих самозаверяющие сертификаты. Варианты:
|
vmid integer | Указывает ID экземпляра. Если не указано, следующий доступный ID будет получен из ProxmoxAPI. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.general.proxmox Добавлена в community.general 9.0.0 | Используйте |
check_mode | Поддержка: нет | Может работать в |
diff_mode | Поддержка: нет | Вернёт подробности о том, что изменилось (или, возможно, требует изменения в |
См. также
См. также
- community.general.proxmox_vm_info
-
Получение информации об одной или нескольких виртуальных машинах Proxmox VE.
Примеры
- 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 minimal options specifying disk storage location and size
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'
disk: 'local-lvm:20'
- name: Create new container with minimal options specifying disk storage location and size via disk_volume
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'
disk_volume:
storage: local
size: 20
- 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 more options defining network interface with static ip4 and ip6 with vlan-tag and mtu
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,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 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 mount with 8GB using mount_volumes
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'
mount_volumes:
- id: mp0
storage: local
size: 8
mountpoint: /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 new container with minimal options and same timezone as proxmox host
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'
timezone: host
- 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: Update container configuration
community.general.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.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: Convert container to template
community.general.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.general.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: template
force: true
- name: Remove container
community.general.proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: absent
Ссылки на коллекции
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/proxmox_module.html