community.general.proxmox – управление экземплярами в кластере Proxmox VE
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: 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
- python >= 2.7
- 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. | |
| 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 строка | пароль пользователя root экземпляра требуется только для state=present | |
| pool строка | пул ресурсов Proxmox VE | |
| 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 булево |
| включить/отключить проверку сертификатов HTTPS |
| vmid строка | идентификатор экземпляра если не задан, будет извлечён следующий доступный ID виртуальной машины из ProxmoxAPI. если не задан, будет извлечён из PromoxAPI на основе имени хоста |
Примечания
Примечание
- Требуются модули proxmoxer и requests на хосте. Эти модули могут быть установлены с помощью pip.
Примеры
- 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: 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/proxmox_module.html