Spec-Zone.ru › Ansible 2.5

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

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

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

Описание

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

Требования

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

  • python >= 2.6
  • python >= 2.7
  • shade

Параметры

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

псевдонимы: auto_floating_ip, public_ip
availability_zone
Зона доступности, в которой необходимо создать сервер.
boot_from_volume По умолчанию:
нет
Должен ли инстанс загружаться с постоянного тома, созданного на основе предоставленного образа? Взаимоисключающий параметр с boot_volume.
boot_volume По умолчанию:
None
Имя или идентификатор тома, который необходимо использовать в качестве загрузочного тома. Подразумевает 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 По умолчанию:
нет
Включать или нет загрузку сервера с включённым config-драйвом
delete_fip
(добавлено в 2.2)
По умолчанию:
нет
Когда state отсутствует, а этот параметр равен true, любой выделенный IP-адрес, связанный с инстансом, будет удалён вместе с инстансом.
flavor По умолчанию:
1
Имя или идентификатор флейвера, в котором должен быть создан новый инстанс. Взаимоисключающий параметр с flavor_ram
flavor_include
Текст для фильтрации имён флейверов, в случае, например, Rackspace, где есть несколько флейверов с одинаковым объёмом оперативной памяти. flavor_include — это фильтр положительного соответствия — он должен присутствовать в имени флейвера.
flavor_ram По умолчанию:
1
Минимальный объём оперативной памяти в МБ, который должен иметь флейвер, в котором необходимо создать новый инстанс. Взаимоисключающий параметр с flavor.
floating_ip_pools По умолчанию:
None
Имя пула выделенных IP-адресов, из которого нужно выбрать выделенный IP-адрес
floating_ips По умолчанию:
None
Список допустимых выделенных IP-адресов, которые уже существуют, для назначения этому узлу
image
обязательно
Имя или идентификатор базового образа для загрузки.
image_exclude
Текст для фильтрации имён образов, например, для HP, где есть несколько имён образов, соответствующих общим идентификационным частям. image_exclude — это фильтр отрицательного соответствия — это текст, который не должен присутствовать в имени образа. По умолчанию "(deprecated)"
interface
(добавлено в 2.3)
    Варианты:
  • public ←
  • internal
  • admin
Тип URL-адреса конечной точки для получения из каталога сервисов.

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

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

Примечания

Примечание

  • Стандартные переменные окружения 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 %}

Статус

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

Автор

  • 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.5/modules/os_server_module.html

Spec-Zone.ru

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