Spec-Zone.ru › Ansible 2.7

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
-
    Варианты:
  • запущен ←
  • остановлен
  • перезапущен
  • отсутствует
  • заморожен
Определение состояния контейнера.
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-URL сервера 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
список
успех
Список выполненных действий для контейнера.

Пример:
["создать", "запустить"]
addresses
словарь
при состоянии запущен или перезапущен
Сопоставление имени сетевого устройства со списком IPv4-адресов в контейнере

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

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

Пример:
остановлен


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается сообществом 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.7/modules/lxd_container_module.html

Spec-Zone.ru

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