Spec-Zone.ru › Ansible 2.11

openstack.cloud.server – Создание/удаление вычислительных экземпляров из OpenStack

Примечание

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

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

Для использования в книге задач укажите: openstack.cloud.server.

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

Описание

  • Создание или удаление вычислительных экземпляров из OpenStack.

Требования

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

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_timeout
целое число
Сколько времени должна ждать сокет-слой перед истечением времени ожидания для API-запросов. Если этот параметр опущен, ничего не будет передано библиотеке requests.
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
строка
Имя или ID тома для использования в качестве тома загрузки. Подразумевает 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
логическое значение
    Варианты:
  • нет ←
  • да
Включить ли загрузку сервера с включенным диском конфигурации
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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/openstack/cloud/server_module.html

Spec-Zone.ru

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