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.
с параметром state=present, state=present разрешает перезапись существующего контейнерасо состояниями 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 - |
| Указывает желаемое состояние экземпляра |
| storage - | По умолчанию: "local" | целевой накопитель |
| swap - | По умолчанию: 0 | размер памяти подкачки в МБ для экземпляра |
| timeout - | По умолчанию: 30 | таймаут для операций |
| unprivileged логический добавлен в 2.3 |
| Указывает, должен ли контейнер быть без привилегий |
| validate_certs логический |
| включить/отключить проверку сертификатов HTTPS |
| vmid - | идентификатор экземпляра если не задан, будет получен следующий доступный идентификатор VM из ProxmoxAPI. если не задан, будет получен из ProxmoxAPI на основе имени хоста |
Примечания
Примечание
- Требуются модули proxmoxer и requests на хосте. Эти модули можно установить с помощью pip.
Примеры
# 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 with 8GB
- 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
# Start container with mount. You should enter a 90-second timeout because servers with additional disks take longer to boot.
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: started
timeout: 90
# 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: restarted
# Remove container
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
state: absent
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Сергей Антипов (@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.8/modules/proxmox_module.html