proxmox - управление экземплярами в кластере Proxmox VE
Новое в версии 2.0.
Описание
- позволяет создавать/удалять/останавливать экземпляры в кластере Proxmox VE
- Начиная с Ansible 2.1, автоматически определяет тип контейнеризации (lxc для PVE 4, openvz для более старых версий)
Требования (к хосту, на котором выполняется модуль)
- proxmoxer
- python >= 2.7
- requests
Параметры
| параметр | обязательно | значение по умолчанию | допустимые значения | комментарии |
|---|---|---|---|---|
| api_host | да | хост кластера Proxmox VE | ||
| api_password | нет | пароль для аутентификации можно использовать переменную среды PROXMOX_PASSWORD | ||
| api_user | да | имя пользователя для аутентификации | ||
| cores (добавлен в 2.4)
| нет | 1 | Укажите количество ядер на сокет. | |
| cpus | нет | 1 | количество выделенных процессоров для экземпляра | |
| cpuunits | нет | 1000 | вес процессора для виртуальной машины | |
| disk | нет | 3 | размер жесткого диска в ГБ для экземпляра | |
| force | нет |
| принудительное выполнение операций можно использовать только со состояниями present, stopped, restarted
с параметром force можно перезаписать существующий контейнер со состояниями stopped, restarted позволяет принудительно остановить экземпляр | |
| hostname | нет | имя хоста экземпляра требуется только для state=present
должен быть уникальным, если не указан vmid | ||
| ip_address | нет | указание адреса, который будет назначен контейнеру | ||
| memory | нет | 512 | размер памяти в МБ для экземпляра | |
| mounts (добавлен в 2.2)
| нет | указание дополнительных монтирований (отдельных дисков) для контейнера. В виде словаря точек монтирования | ||
| nameserver | нет | устанавливает IP-адрес сервера DNS для контейнера | ||
| netif | нет | указание сетевых интерфейсов для контейнера. В виде словаря интерфейсов. | ||
| node | нет | Узел Proxmox VE, когда создается новая виртуальная машина требуется только для state=present
для других состояний будет определено автоматически | ||
| onboot | нет | указание того, будет ли виртуальная машина запущена при загрузке системы | ||
| ostemplate | нет | шаблон для создания виртуальной машины требуется только для state=present
| ||
| password | нет | корневой пароль экземпляра требуется только для state=present
| ||
| pool (добавлен в 2.3)
| нет | ресурсный пул Proxmox VE | ||
| pubkey (добавлен в 2.3)
| нет | Открытый ключ для добавления в /root/.ssh/authorized_keys. Добавлен в Proxmox 4.2, игнорируется для более ранних версий | ||
| searchdomain | нет | устанавливает домен поиска DNS для контейнера | ||
| state | нет | present |
| Указывает желаемое состояние экземпляра |
| storage | нет | local | целевой хранилище | |
| swap | нет | размер памяти подкачки в МБ для экземпляра | ||
| timeout | нет | 30 | тайм-аут для операций | |
| unprivileged (добавлен в 2.3)
| нет | Указывает, должен ли контейнер быть без привилегий | ||
| validate_certs | нет |
| включить/отключить проверку сертификатов https | |
| vmid | нет | идентификатор экземпляра если не задан, следующий доступный идентификатор VM будет получен из ProxmoxAPI. если не указан, будет получен из ProxmoxAPI на основе имени хоста |
Примеры
# Create new container with minimal options
- 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'
# Create new container automatically selecting the next available vmid.
- 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'
# Create new container with minimal options with force(it will rewrite existing container)
- 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
# Create new container with minimal options use environment PROXMOX_PASSWORD variable(you should export it before)
- 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'
# Create new container with minimal options defining network interface with dhcp
- 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"}'
# Create new container with minimal options defining network interface with static ip
- 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"}'
# Create new container with minimal options defining a mount
- 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/"}'
# Create new container with minimal options defining a cpu core limit
- 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
# Start container
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: started
# Stop container
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: stopped
# Stop container with force
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
force: yes
state: stopped
# Restart container(stopped or mounted container you can't restart)
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: stopped
# Remove container
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: absent
Примечания
Примечание
- Требует модули proxmoxer и requests на хосте. Эти модули можно установить с помощью pip.
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость.
Для получения помощи в разработке модулей, если вы этого захотите, пожалуйста, ознакомьтесь с Справочной информацией по сообществу и участию, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/proxmox_module.html