Spec-Zone.ru › Ansible 2.6

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

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

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

Описание

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

Требования

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

  • openstacksdk
  • python >= 2.7

Параметры

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

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

Псевдонимы: root_volume
cacert
Путь к пакету сертификатов CA, который может быть использован для проверки запросов SSL API.
cert
Путь к клиенту сертификата для использования в ходе транзакции SSL.
cloud
Наименованное облако или конфигурация облака для работы. Если cloud — строка, то она ссылается на конфигурацию облака, определенную в файле OpenStack clouds.yaml. Обеспечивает значения по умолчанию для auth и auth_type. Этот параметр не нужен, если указан auth или присутствуют переменные среды OpenStack OS_*.
Если cloud — словарь, то он содержит полную конфигурацию облака, как в разделе clouds.yaml.
config_drive
bool
    Варианты:
  • no ←
  • yes
Включить загрузку сервера с включённым конфигурационным диском
delete_fip
bool

(добавлено в 2.2)
    Варианты:
  • no ←
  • yes
Когда state отсутствует и этот параметр имеет значение true, любой плавающий IP-адрес, связанный с экземпляром, будет удален вместе с экземпляром.
flavor По умолчанию:
1
Имя или идентификатор флейвера, в котором должен быть создан новый экземпляр. Взаимоисключающий с flavor_ram
flavor_include
Текст для фильтрации имён флейверов, в случае, таких как Rackspace, где есть несколько флейверов с одинаковым объёмом оперативной памяти. flavor_include - это фильтр по точному совпадению - он должен присутствовать в имени флейвера.
flavor_ram По умолчанию:
1
Минимальный объем оперативной памяти в МБ, которым должен обладать флейвер, в котором необходимо создать новый экземпляр. Взаимоисключающий с flavor.
floating_ip_pools
Имя пула плавающих IP-адресов, из которого нужно выбрать плавающий IP-адрес.
floating_ips
Список допустимых существующих плавающих IP-адресов для назначения этому узлу.
image
обязательно
Имя или идентификатор базового образа для загрузки.
image_exclude
Текст для фильтрации имён образов, например, в случае HP, где есть несколько имен образов, совпадающих с общими идентифицирующими частями. image_exclude — фильтр по отрицательному совпадению — это текст, которого не должно быть в имени образа. По умолчанию "(устарело)"
interface
(добавлено в 2.3)
    Варианты:
  • public ←
  • internal
  • admin
Тип URL конечной точки для извлечения из каталога служб.

Псевдонимы: endpoint_type
key
Путь к ключу клиента для использования в ходе транзакции SSL.
key_name
Имя пары ключей, которое должно быть использовано при создании экземпляра.
meta
Список пар ключ-значение, которые должны быть предоставлены в качестве метаданных новому экземпляру или строка, содержащая список пар ключ-значение. Пример: meta: "key1=value1,key2=value2"
name
обязательно
Имя, которое должно быть присвоено экземпляру
network
Имя или идентификатор сети, к которой необходимо подключить этот экземпляр. Более простой вариант параметра 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 должен быть указан.
region_name
Имя региона.
reuse_ips
bool

(добавлено в 2.2)
    Варианты:
  • no
  • yes ←
Когда auto_ip имеет значение true и этот параметр имеет значение true, код auto_ip попытается повторно использовать неназначенные плавающие IP-адреса в проекте перед созданием нового. Важно отметить, что сделать это безопасно одновременно невозможно, поэтому если ваш сценарий предполагает одновременное создание серверов, рекомендуется установить это значение в false и удалить плавающий IP-адрес, связанный с сервером, когда сервер удаляется с помощью delete_fip.
scheduler_hints
(добавлено в 2.1)
Произвольные пары ключ/значение для планировщика для пользовательского использования
security_groups
Имена групп безопасности, к которым должен быть добавлен экземпляр. Может быть списком YAML или строкой, разделённой запятыми.
state
    Варианты:
  • present ←
  • absent
Должен ли ресурс присутствовать или отсутствовать.
terminate_volume
bool
    Варианты:
  • no ←
  • yes
Если yes, удалить том при удалении экземпляра (если загружается с тома)
timeout По умолчанию:
180
Время, которое модуль должен ждать, пока экземпляр не перейдет в активное состояние.
userdata
Непрозрачный блок данных, который становится доступным для экземпляра
verify
bool
    Варианты:
  • no
  • yes
Нужно ли проверять запросы API SSL. До версии 2.3 по умолчанию True.

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

Примечания

Примечание

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

Примеры

- name: Create a new instance and attaches to a network and passes metadata to the instance
  os_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
      os_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
      os_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
      os_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
      os_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
      os_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
  os_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
  os_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
      os_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
      os_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
      os_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
      os_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 %}

Статус

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

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

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

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

Автор

  • Monty Taylor (@emonty)

Подсказка

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

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

Spec-Zone.ru

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