Spec-Zone.ru › Ansible 2.11

community.general.proxmox – управление экземплярами в кластере Proxmox VE

Примечание

Этот плагин входит в коллекцию community.general (версия 2.0.1).

Для его установки используйте: 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
  • 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.
features
список / элементы=строка
добавлен в 2.0.0 community.general
Указывает список функций для включения. Для допустимых вариантов см. https://pve.proxmox.com/wiki/Linux_Container#pct_options.
Некоторые функции требуют использования привилегированного контейнера.
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
строка
пароль администратора экземпляра
требуется только для state=present
pool
строка
Добавить новую виртуальную машину в указанный пул.
proxmox_default_behavior
строка
добавлен в 1.3.0 community.general
    Варианты:
  • совместимость
  • 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 ←
  • запущен
  • отсутствует
  • остановлен
  • перезапущен
Указывает желаемое состояние экземпляра
storage
строка
По умолчанию:
"local"
целевой накопитель
swap
целое число
объем подкачки в МБ для экземпляра
Если proxmox_default_behavior установлено в compatiblity (значение по умолчанию), этот параметр имеет значение по умолчанию 0. Обратите внимание, что значение по умолчанию для proxmox_default_behavior изменяется в community.general 4.0.0.
timeout
целое число
По умолчанию:
30
тайм-аут для операций
unprivileged
логическое значение
    Варианты:
  • нет ←
  • да
Указывает, должен ли контейнер быть без привилегий
validate_certs
логическое значение
    Варианты:
  • нет ←
  • да
Если no, сертификаты SSL не будут проверены.
Это следует использовать только на контролируемых вами сайтах с использованием самозаверенных сертификатов.
vmid
целое число
Указывает идентификатор экземпляра.
Если не задано, будет получен следующий доступный идентификатор из ProxmoxAPI.

Примеры

- 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: Create a new container with nesting enabled and allows the use of CIFS/NFS inside the 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'
    features:
     - nesting=1
     - mount=cifs,nfs


- 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/proxmox_module.html

Spec-Zone.ru

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