Spec-Zone.ru › Ansible 2.10

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
    Варианты:
  • compatibility
  • no_defaults
Различные параметры модуля, которые использовались для установки значений по умолчанию. Это создаёт проблемы, когда пользователь ожидает другого поведения от 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
строка
    Варианты:
  • present ←
  • started
  • absent
  • stopped
  • restarted
Указывает желаемое состояние экземпляра
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API