Spec-Zone.ru › Ansible 2.10

openstack.cloud.os_server – Создание/удаление вычислительных инстансов из OpenStack

Примечание

Этот плагин входит в коллекцию openstack.cloud (версия 1.2.1).

Для его установки используйте: ansible-galaxy collection install openstack.cloud.

Для использования в плейбуке укажите: openstack.cloud.os_server.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры

Обзор

  • Создание или удаление вычислительных инстансов из OpenStack.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • openstacksdk
  • openstacksdk >= 0.12.0
  • python >= 3.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_timeout
целое число
Сколько времени (в секундах) должно ждать соединение перед истечением времени ожидания для вызовов API. Если это опущено, ничего не будет передано в библиотеку запросов.
auth
словарь
Словарь, содержащий информацию об авторизации, необходимую стратегии плагина авторизации облака. Для плагина по умолчанию password, он будет содержать auth_url, username, password, project_name и любую информацию о доменах (например, user_domain_name или project_domain_name), если они поддерживаются облаком. Для других плагинов этот параметр должен содержать необходимые параметры плагина авторизации. Этот параметр не нужен, если указано имя облака или присутствуют переменные среды OpenStack OS_*.
auth_type
строка
Имя плагина авторизации для использования. Если облако использует что-то кроме парольной аутентификации, здесь должно быть указано имя плагина, и содержимое параметра auth должно быть соответствующим образом обновлено.
auto_ip
логическое значение
    Варианты:
  • нет
  • да ←
Убедиться, что у экземпляра есть публичный IP-адрес, как хочет облако

Псевдонимы: auto_floating_ip, public_ip
availability_zone
строка
Зона доступности, в которой нужно создать сервер.
boot_from_volume
логическое значение
    Варианты:
  • нет ←
  • да
Должен ли экземпляр загружаться с постоянного тома, созданного на основе предоставленного образа. Взаимоисключающее с boot_volume.
boot_volume
строка
Имя или идентификатор тома, который нужно использовать в качестве тома для загрузки. Подразумевает boot_from_volume. Взаимоисключающее с image и boot_from_volume.

Псевдонимы: root_volume
ca_cert
строка
Путь к пакету сертификатов CA, который можно использовать для проверки запросов SSL API.

Псевдонимы: cacert
client_cert
строка
Путь к клиенту сертификату для использования в рамках SSL-транзакции.

Псевдонимы: cert
client_key
строка
Путь к ключу клиента для использования в рамках SSL-транзакции.

Псевдонимы: key
cloud
сырые данные
Именованное облако или конфигурация облака для работы. Если cloud — строка, она ссылается на именованную конфигурацию облака, как определено в файле OpenStack clouds.yaml. Предоставляет значения по умолчанию для auth и auth_type. Этот параметр не нужен, если указан auth или присутствуют переменные среды OpenStack OS_* . Если cloud — словарь, он содержит полную конфигурацию облака, как в разделе clouds.yaml.
config_drive
логическое значение
    Варианты:
  • нет ←
  • да
Включить или нет загрузку сервера с включенным config drive
delete_fip
логическое значение
    Варианты:
  • нет ←
  • да
Когда state отсутствует, и этот параметр имеет значение true, любой плавающий IP-адрес, связанный с экземпляром, будет удалён вместе с экземпляром.
flavor
строка
Имя или идентификатор флейвера, в котором должен быть создан новый экземпляр.
Ровно один из flavor и flavor_ram должен быть определён, когда state=present.
flavor_include
строка
Текст для фильтрации имён флейверов, например, в случае Rackspace, где есть несколько флейверов с одинаковым количеством ОЗУ. flavor_include - это фильтр положительного соответствия — он должен присутствовать в имени флейвера.
flavor_ram
целое число
Минимальное количество ОЗУ в МБ, которое должен иметь флейвер, в котором должен быть создан новый экземпляр.
Ровно один из flavor и flavor_ram должен быть определён, когда state=present.
floating_ip_pools
список / элементы=строка
Имя пула плавающих IP-адресов, из которого нужно выбрать плавающий IP-адрес
floating_ips
список / элементы=строка
Список действительных плавающих IP-адресов, которые существуют предварительно, для назначения этому узлу
image
строка
Имя или идентификатор базового образа для загрузки.
Требуется, когда boot_from_volume=true
image_exclude
строка
По умолчанию:
"(устарело)"
Текст для фильтрации имён образов, например, в случае HP, где есть несколько имён образов, совпадающих с общими идентификационными частями. image_exclude - это фильтр отрицательного соответствия - это текст, который не может присутствовать в имени образа.
interface
строка
    Варианты:
  • admin
  • internal
  • public ←
Тип URL конечной точки для извлечения из каталога услуг.

Псевдонимы: endpoint_type
key_name
строка
Имя пары ключей, используемой при создании экземпляра
meta
сырые данные
Список пар ключ-значение, которые должны быть предоставлены в качестве метаданных новому экземпляру, или строка, содержащая список пар ключ-значение. Пример: meta: "key1=value1,key2=value2"
name
строка / обязательно
Имя, которое нужно дать экземпляру. Также можно указать ID экземпляра вместо имени, если state — absent.
network
строка
Имя или ID сети, к которой нужно подключить этот экземпляр. Более простой вариант параметра nics, только один из network или nics должен быть предоставлен.
nics
список / элементы=сырые данные
Список сетей, к которым должен быть подключен интерфейс экземпляра. К сетям можно обратиться по net-id/net-name/port-id или port-name.
Также можно указать строку, содержащую список (net/port)-(id/name). Пример: nics: "net-id=uuid-1,port-name=myport" Только один из network или nics должен быть предоставлен.
tag
строка
«Тег» для конкретного порта, передаваемого через метаданные. Пример: tag: test_tag
region_name
строка
Имя региона.
reuse_ips
логическое значение
    Варианты:
  • нет
  • да ←
Если auto_ip имеет значение true, и этот параметр имеет значение true, код auto_ip попытается повторно использовать неназначенные плавающие IP-адреса в проекте перед созданием нового. Важно отметить, что сделать это одновременно невозможно, поэтому, если ваш сценарий предполагает одновременное создание серверов, настоятельно рекомендуется установить это значение в false и удалить плавающий IP-адрес, связанный с сервером, при удалении сервера с помощью delete_fip.
scheduler_hints
словарь
Произвольные пары ключ/значение для планировщика для пользовательского использования
security_groups
список / элементы=строка
По умолчанию:
["default"]
Имена групп безопасности, к которым должен быть добавлен экземпляр. Это может быть список YAML или строка, разделённая запятыми.
state
строка
    Варианты:
  • present ←
  • absent
Ресурс должен быть присутствующим или отсутствующим.
terminate_volume
логическое значение
    Варианты:
  • нет ←
  • да
Если yes, удалить том при удалении экземпляра (если загружен с тома)
timeout
целое число
По умолчанию:
180
Время ожидания модулем, пока экземпляр не перейдёт в активное состояние.
userdata
строка
Необработанные данные, доступные экземпляру

Псевдонимы: user_data
validate_certs
логическое значение
    Варианты:
  • нет ←
  • да
Необходимо ли проверять запросы SSL API.
До версии Ansible 2.3 это по умолчанию yes.

Псевдонимы: verify
volume_size
целое число
Размер создаваемого тома в ГБ, если загрузка с тома на основе образа.
volumes
список / элементы=строка
По умолчанию:
[]
Список имён или идентификаторов существующих томов, которые нужно подключить к экземпляру
wait
логическое значение
    Варианты:
  • нет
  • да ←
Нужно ли модулю ждать создания экземпляра.

Примечания

Примечание

  • Можно использовать стандартные переменные среды OpenStack, такие как OS_USERNAME, вместо явного указания значений.
  • Информация об авторизации управляется openstacksdk, что означает, что значения могут поступать из файла конфигурации yaml в /etc/ansible/openstack.yaml, /etc/openstack/clouds.yaml или ~/.config/openstack/clouds.yaml, затем из стандартных переменных среды, и, наконец, из явных параметров в пьесах. Дополнительную информацию можно найти по адресу https://docs.openstack.org/openstacksdk/

Примеры

- name: Create a new instance and attaches to a network and passes metadata to the instance
  openstack.cloud.server:
       state: present
       auth:
         auth_url: https://identity.example.com
         username: admin
         password: admin
         project_name: admin
       name: vm1
       image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
       key_name: ansible_key
       timeout: 200
       flavor: 4
       nics:
         - net-id: 34605f38-e52a-25d2-b6ec-754a13ffb723
         - net-name: another_network
       meta:
         hostname: test1
         group: uge_master

# Create a new instance in HP Cloud AE1 region availability zone az2 and
# automatically assigns a floating IP
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        state: present
        auth:
          auth_url: https://identity.example.com
          username: username
          password: Equality7-2521
          project_name: username-project1
        name: vm1
        region_name: region-b.geo-1
        availability_zone: az2
        image: 9302692b-b787-4b52-a3a6-daebb79cb498
        key_name: test
        timeout: 200
        flavor: 101
        security_groups: default
        auto_ip: yes

# Create a new instance in named cloud mordred availability zone az2
# and assigns a pre-known floating IP
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        state: present
        cloud: mordred
        name: vm1
        availability_zone: az2
        image: 9302692b-b787-4b52-a3a6-daebb79cb498
        key_name: test
        timeout: 200
        flavor: 101
        floating_ips:
          - 12.34.56.79

# Create a new instance with 4G of RAM on Ubuntu Trusty, ignoring
# deprecated images
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        name: vm1
        state: present
        cloud: mordred
        region_name: region-b.geo-1
        image: Ubuntu Server 14.04
        image_exclude: deprecated
        flavor_ram: 4096

# Create a new instance with 4G of RAM on Ubuntu Trusty on a Performance node
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        name: vm1
        cloud: rax-dfw
        state: present
        image: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)
        flavor_ram: 4096
        flavor_include: Performance

# Creates a new instance and attaches to multiple network
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance with a string
      openstack.cloud.server:
        auth:
           auth_url: https://identity.example.com
           username: admin
           password: admin
           project_name: admin
        name: vm1
        image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
        key_name: ansible_key
        timeout: 200
        flavor: 4
        nics: "net-id=4cb08b20-62fe-11e5-9d70-feff819cdc9f,net-id=542f0430-62fe-11e5-9d70-feff819cdc9f..."

- name: Creates a new instance and attaches to a network and passes metadata to the instance
  openstack.cloud.server:
       state: present
       auth:
         auth_url: https://identity.example.com
         username: admin
         password: admin
         project_name: admin
       name: vm1
       image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
       key_name: ansible_key
       timeout: 200
       flavor: 4
       nics:
         - net-id: 34605f38-e52a-25d2-b6ec-754a13ffb723
         - net-name: another_network
       meta: "hostname=test1,group=uge_master"

- name:  Creates a new instance and attaches to a specific network
  openstack.cloud.server:
    state: present
    auth:
      auth_url: https://identity.example.com
      username: admin
      password: admin
      project_name: admin
    name: vm1
    image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
    key_name: ansible_key
    timeout: 200
    flavor: 4
    network: another_network

# Create a new instance with 4G of RAM on a 75G Ubuntu Trusty volume
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        name: vm1
        state: present
        cloud: mordred
        region_name: ams01
        image: Ubuntu Server 14.04
        flavor_ram: 4096
        boot_from_volume: True
        volume_size: 75

# Creates a new instance with 2 volumes attached
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        name: vm1
        state: present
        cloud: mordred
        region_name: ams01
        image: Ubuntu Server 14.04
        flavor_ram: 4096
        volumes:
        - photos
        - music

# Creates a new instance with provisioning userdata using Cloud-Init
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        name: vm1
        state: present
        image: "Ubuntu Server 14.04"
        flavor: "P-1"
        network: "Production"
        userdata: |
          #cloud-config
          chpasswd:
            list: |
              ubuntu:{{ default_password }}
            expire: False
          packages:
            - ansible
          package_upgrade: true

# Creates a new instance with provisioning userdata using Bash Scripts
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        name: vm1
        state: present
        image: "Ubuntu Server 14.04"
        flavor: "P-1"
        network: "Production"
        userdata: |
          {%- raw -%}#!/bin/bash
          echo "  up ip route add 10.0.0.0/8 via {% endraw -%}{{ intra_router }}{%- raw -%}" >> /etc/network/interfaces.d/eth0.conf
          echo "  down ip route del 10.0.0.0/8" >> /etc/network/interfaces.d/eth0.conf
          ifdown eth0 && ifup eth0
          {% endraw %}

# Create a new instance with server group for (anti-)affinity
# server group ID is returned from openstack.cloud.server_group module.
- name: launch a compute instance
  hosts: localhost
  tasks:
    - name: launch an instance
      openstack.cloud.server:
        state: present
        name: vm1
        image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
        flavor: 4
        scheduler_hints:
          group: f5c8c61a-9230-400a-8ed2-3b023c190a7f

# Create an instance with "tags" for the nic
- name: Create instance with nics "tags"
  openstack.cloud.server:
    state: present
    auth:
        auth_url: https://identity.example.com
        username: admin
        password: admin
        project_name: admin
    name: vm1
    image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
    key_name: ansible_key
    flavor: 4
    nics:
      - port-name: net1_port1
        tag: test_tag
      - net-name: another_network

# Deletes an instance via its ID
- name: remove an instance
  hosts: localhost
  tasks:
    - name: remove an instance
      openstack.cloud.server:
        name: abcdef01-2345-6789-0abc-def0123456789
        state: absent

Авторы

  • Рабочая группа OpenStack Ansible SIG

© 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/openstack/cloud/os_server_module.html

Spec-Zone.ru

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