community.general.proxmox – управление экземплярами в кластере Proxmox VE
Примечание
Этот плагин входит в коллекцию community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать его в книге задач, укажите: community.general.proxmox.
Обзор
- позволяет создавать/удалять/останавливать экземпляры в кластере Proxmox VE
- Начиная с Ansible 2.1, автоматически определяет тип контейнеризации (lxc для PVE 4, openvz для более старых версий)
- Начиная с community.general 4.0.0, значения по умолчанию отсутствуют, см. proxmox_default_behavior.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- proxmoxer
- requests
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| api_host строка / обязательно | Укажите целевой хост кластера Proxmox VE. | |
| api_password строка | Укажите пароль для аутентификации. Можно использовать переменную среды PROXMOX_PASSWORD. | |
| api_token_id строка добавлен в 1.3.0 community.general | Укажите идентификатор токена. | |
| api_token_secret строка добавлен в 1.3.0 community.general | Укажите секрет токена. | |
| api_user строка / обязательно | Укажите пользователя для аутентификации. | |
| cores целое число | Укажите количество ядер на сокет. Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию 1. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0. | |
| cpus целое число | количество выделенных процессоров для экземпляра Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию 1. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0. | |
| cpuunits целое число | Вес процессора для виртуальной машины Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию 1000. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0. | |
| description строка добавлен в 0.2.0 community.general | Укажите описание контейнера. Используется только в веб-интерфейсе конфигурации. Сохраняется как комментарий в файле конфигурации. | |
| disk строка | размер жесткого диска в ГБ для экземпляра Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию 3. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0. | |
| features список / элементы=строка добавлен в 2.0.0 community.general | Указывает список функций для включения. Для допустимых вариантов см. https://pve.proxmox.com/wiki/Linux_Container#pct_options. Некоторые функции требуют использования привилегированного контейнера. | |
| force логическое значение |
| принудительное выполнение операций может использоваться только с состояниями present, stopped, restarted.
с параметром state=present разрешает перезапись существующего контейнерасостояниями stopped , restarted разрешает принудительное остановку экземпляра |
| hookscript строка добавлен в 0.2.0 community.general | Скрипт, который будет выполняться на различных этапах жизненного цикла контейнеров. | |
| hostname строка | имя хоста экземпляра требуется только для state=present
должно быть уникальным, если vmid не передан | |
| ip_address строка | указывается адрес, который будет назначен контейнеру | |
| memory целое число | объем оперативной памяти в МБ для экземпляра Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию 512. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0. | |
| mounts словарь | указываются дополнительные точки монтирования (отдельные диски) для контейнера. Как хеш/словарь, определяющий точки монтирования | |
| nameserver строка | устанавливает IP-адрес DNS-сервера для контейнера | |
| netif словарь | указываются сетевые интерфейсы для контейнера. Как хеш/словарь, определяющий интерфейсы. | |
| node строка | Узел Proxmox VE, на котором нужно выполнить операцию. Требуется только для state=present. Для всех остальных состояний он будет автоматически обнаружен. | |
| onboot логическое значение |
| указывается, будет ли виртуальная машина запущена при загрузке системы Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию no. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0. |
| ostemplate строка | шаблон для создания виртуальной машины требуется только для state=present
| |
| password строка | пароль администратора экземпляра требуется только для state=present
| |
| pool строка | Добавить новую виртуальную машину в указанный пул. | |
| proxmox_default_behavior строка добавлен в 1.3.0 community.general |
| Различные параметры модуля, которые используются для определения значений по умолчанию. Это создает проблемы, когда пользователь ожидает другого поведения от Proxmox по умолчанию или заполняет параметры, которые вызывают проблемы, когда они были установлены. Значение по умолчанию — compatibility, что гарантирует использование значений по умолчанию, когда значения не указаны пользователем.Начиная с community.general 4.0.0, значение по умолчанию изменится на no_defaults. Чтобы избежать предупреждений об устаревании, установите proxmox_default_behavior в явное значение.Это влияет на параметры disk, cores, cpus, memory, onboot, swap, cpuunits. |
| pubkey строка | Открытый ключ для добавления в /root/.ssh/authorized_keys. Добавлено в Proxmox 4.2, игнорируется для более ранних версий | |
| searchdomain строка | устанавливает домен поиска DNS для контейнера | |
| state строка |
| Указывает желаемое состояние экземпляра |
| storage строка | По умолчанию: "local" | целевой накопитель |
| swap целое число | объем подкачки в МБ для экземпляра Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию 0. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0. | |
| timeout целое число | По умолчанию: 30 | тайм-аут для операций |
| unprivileged логическое значение |
| Указывает, должен ли контейнер быть без привилегий |
| validate_certs логическое значение |
| Если no, сертификаты SSL не будут проверены.Это следует использовать только на контролируемых вами сайтах с использованием самозаверенных сертификатов. |
| vmid целое число | Указывает идентификатор экземпляра. Если не задано, будет получен следующий доступный идентификатор из ProxmoxAPI. |
Примеры
- 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: yes
- 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: 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: yes
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
Авторы
- Сергей Антипов (@UnderGreen)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/proxmox_module.html