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 bool |
| принудительное выполнение операций может использоваться только с состояниями present, stopped, restarted
с опцией state=present force разрешается перезапись существующего контейнерасо состояниями stopped , restarted разрешается принудительная остановка экземпляра |
| hostname | имя хоста экземпляра требуется только для state=present
должно быть уникальным, если vmid не указан | |
| ip_address | устанавливает адрес, который будет назначен контейнеру | |
| memory | Значение по умолчанию: 512 | размер оперативной памяти в МБ для экземпляра |
| mounts (добавлено в 2.2) | устанавливает дополнительные точки монтирования (отдельные диски) для контейнера. В виде хеша/словаря, определяющего точки монтирования | |
| nameserver | устанавливает IP-адрес сервера DNS для контейнера | |
| netif | устанавливает сетевые интерфейсы для контейнера. В виде хеша/словаря, определяющего интерфейсы. | |
| node | Узел Proxmox VE, когда создается новая виртуальная машина требуется только для state=present
для других состояний будет автоматически обнаружен | |
| onboot bool |
| указывает, будет ли виртуальная машина запущена во время загрузки системы |
| 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 bool (добавлено в 2.3) |
| указывает, должен ли контейнер быть не привилегированным |
| validate_certs bool |
| включить/выключить проверку сертификатов https |
| vmid | идентификатор экземпляра если не задан, следующий доступный идентификатор виртуальной машины будет получен из ProxmoxAPI. если не задан, будет получен из PromoxAPI на основе имени хоста |
Примечания
Примечание
- Требуются модули 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
- 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
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, которые также поддерживаются сообществом 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.6/modules/proxmox_module.html