Spec-Zone.ru › Ansible 2.6

lxd_container — Управление контейнерами LXD

Новое в версии 2.2.

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус
  • Техническое обслуживание
    • Автор

Обзор

  • Управление контейнерами LXD

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
architecture
Архитектура контейнера (например, "x86_64" или "i686"). См. https://github.com/lxc/lxd/blob/master/doc/rest-api.md#post-1
cert_file Значение по умолчанию:
"\"{}/.config/lxc/client.crt\" .format(os.environ[\"HOME\"])"
Путь к файлу сертификата клиента.
config
Настройка контейнера (например, {"limits.cpu": "2"}). См. https://github.com/lxc/lxd/blob/master/doc/rest-api.md#post-1
Если контейнер уже существует, и значение "config" в метаданных, полученных из GET /1.0/containers/<name> https://github.com/lxc/lxd/blob/master/doc/rest-api.md#10containersname, отличаются, этот модуль пытается применить настройки.
Ключи, начинающиеся с 'volatile.', игнорируются при этом сравнении.
Не все значения конфигурации поддерживаются для применения к существующему контейнеру. Возможно, потребуется удалить и воссоздать контейнер.
devices
Устройства для контейнера (например, { "rootfs": { "path": "/dev/kvm", "type": "unix-char" }). См. https://github.com/lxc/lxd/blob/master/doc/rest-api.md#post-1
ephemeral
Является ли контейнер временным (например, true или false). См. https://github.com/lxc/lxd/blob/master/doc/rest-api.md#post-1
force_stop Значение по умолчанию:
"no"
Если значение true, модуль lxd_container принудительно останавливает контейнер при остановке или перезапуске контейнера.
key_file Значение по умолчанию:
"\"{}/.config/lxc/client.key\" .format(os.environ[\"HOME\"])"
Путь к файлу ключа сертификата клиента.
name
обязательно
Имя контейнера.
source
Источник контейнера (например, { "type": "image", "mode": "pull", "server": "https://images.linuxcontainers.org", "protocol": "lxd", "alias": "ubuntu/xenial/amd64" }). См. https://github.com/lxc/lxd/blob/master/doc/rest-api.md#post-1
state
    Варианты:
  • started ←
  • stopped
  • restarted
  • absent
  • frozen
Определяет состояние контейнера.
timeout Значение по умолчанию:
30
Таймаут для изменения состояния контейнера.
Также используется как таймаут ожидания установки IPv4-адресов на все сетевые интерфейсы в контейнере после запуска или перезапуска.
trust_password
Защищённый пароль клиента.
Вам необходимо установить этот пароль на сервере LXD перед запуском этого модуля с помощью следующей команды. lxc config set core.trust_password <some random password> См. https://www.stgraber.org/2016/04/18/lxd-api-direct-interaction/
Если trust_password задан, этот модуль отправляет запрос для аутентификации перед отправкой любых запросов.
url Значение по умолчанию:
"unix:/var/lib/lxd/unix.socket"
Путь к сокету Unix-домена или HTTPS-адрес сервера LXD.
wait_for_ipv4_addresses Значение по умолчанию:
"no"
Если значение true, модуль lxd_container ожидает, пока IPv4-адреса будут установлены на все сетевые интерфейсы в контейнере после запуска или перезапуска.

Примечания

Примечание

  • Контейнеры должны иметь уникальное имя. Если вы попытаетесь создать контейнер с именем, которое уже существует в пространстве имен пользователя, модуль просто вернёт «без изменений».
  • Существует два способа запуска команд в контейнерах: с помощью модуля команд или с помощью плагина подключения Ansible lxd, включенного в Ansible ≥ 2.1. Последний требует установки Python в контейнере, что можно сделать с помощью модуля команд.
  • Вы можете копировать файлы с хоста в контейнер с помощью модулей Ansible copy и template, а также плагина подключения lxd. См. примеры ниже.
  • Вы можете скопировать файл из созданного контейнера на хост с помощью command=lxc file pull container_name/dir/filename filename. См. первый пример ниже.

Примеры

# An example for creating a Ubuntu container and install python
- hosts: localhost
  connection: local
  tasks:
    - name: Create a started container
      lxd_container:
        name: mycontainer
        state: started
        source:
          type: image
          mode: pull
          server: https://images.linuxcontainers.org
          protocol: lxd
          alias: ubuntu/xenial/amd64
        profiles: ["default"]
        wait_for_ipv4_addresses: true
        timeout: 600

    - name: check python is installed in container
      delegate_to: mycontainer
      raw: dpkg -s python
      register: python_install_check
      failed_when: python_install_check.rc not in [0, 1]
      changed_when: false

    - name: install python in container
      delegate_to: mycontainer
      raw: apt-get install -y python
      when: python_install_check.rc == 1

# An example for deleting a container
- hosts: localhost
  connection: local
  tasks:
    - name: Delete a container
      lxd_container:
        name: mycontainer
        state: absent

# An example for restarting a container
- hosts: localhost
  connection: local
  tasks:
    - name: Restart a container
      lxd_container:
        name: mycontainer
        state: restarted

# An example for restarting a container using https to connect to the LXD server
- hosts: localhost
  connection: local
  tasks:
    - name: Restart a container
      lxd_container:
        url: https://127.0.0.1:8443
        # These cert_file and key_file values are equal to the default values.
        #cert_file: "{{ lookup('env', 'HOME') }}/.config/lxc/client.crt"
        #key_file: "{{ lookup('env', 'HOME') }}/.config/lxc/client.key"
        trust_password: mypassword
        name: mycontainer
        state: restarted

# Note your container must be in the inventory for the below example.
#
# [containers]
# mycontainer ansible_connection=lxd
#
- hosts:
    - mycontainer
  tasks:
    - name: copy /etc/hosts in the created container to localhost with name "mycontainer-hosts"
      fetch:
        src: /etc/hosts
        dest: /tmp/mycontainer-hosts
        flat: true

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для этого модуля:

Ключ Возвращаемое значение Описание
actions
список
успешно
Список выполненных действий для контейнера.

Пример:
["create", "start"]
addresses
словарь
при state = started или restarted
Сопоставление имени сетевого устройства со списком IPv4-адресов в контейнере

Пример:
{'eth0': ['10.155.92.191']}
logs
список
при вызове ansible-playbook с -vvvv.
Логи запросов и ответов.

Пример:
(слишком длинный для размещения здесь)
old_state
строка
при state = started или restarted
Предыдущее состояние контейнера

Пример:
stopped


Статус

Этот модуль помечен как превью, что означает отсутствие гарантии обратной совместимости интерфейса.

Техническое обслуживание

Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.

Список других модулей, также поддерживаемых сообществом Ansible, см. здесь.

Автор

  • Hiroaki Nakamura (@hnakamur)

Подсказка

Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ для улучшения.

© 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/lxd_container_module.html

Spec-Zone.ru

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