Spec-Zone.ru › Ansible 2.4

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

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

  • Описание
  • Требования (к хосту, на котором выполняется модуль)
  • Параметры
  • Примеры
  • Примечания
    • Статус

Описание

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

Требования (к хосту, на котором выполняется модуль)

  • python >= 2.6
  • python >= 2.7
  • python-novaclient
  • shade

Параметры

параметр обязательно значение по умолчанию выбор комментарии
api_timeout
нет None
Сколько времени должна ожидать сокет-слой перед истечением времени ожидания для вызовов API. Если это опущено, ничего не будет передано в библиотеку запросов.
auth
нет
Словарь, содержащий информацию об авторизации, необходимую для стратегии подключаемого модуля авторизации облака. Для стандартного подключаемого модуля password он будет содержать auth_url, username, password, project_name и любую информацию о доменах, если облако их поддерживает. Для других подключаемых модулей этот параметр должен содержать необходимые параметры подключаемого модуля авторизации. Этот параметр не нужен, если указано имя облака или присутствуют переменные окружения OpenStack OS_*.
auth_type
нет password
Имя подключаемого модуля авторизации для использования. Если облако использует что-то другое, кроме аутентификации по паролю, имя подключаемого модуля должно быть указано здесь, а содержимое параметра 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
нет None
Путь к пакету сертификатов CA, который может использоваться для проверки запросов API SSL.
cert
нет None
Путь к клиенту сертификат для использования в рамках транзакции SSL.
cloud
нет
Именованное облако, к которому выполнять операции. Обеспечивает значения по умолчанию для auth и auth_type. Этот параметр не нужен, если указан auth или присутствуют переменные окружения OpenStack OS_*.
config_drive
нет нет
Включить загрузку сервера с включенным config-диском
delete_fip
(добавлено в 2.2)
нет
Если state отсутствует и этот параметр имеет значение true, любой плавающий IP-адрес, связанный с экземпляром, будет удален вместе с экземпляром.
endpoint_type
нет public
  • public
  • internal
  • admin
Тип URL конечной точки для извлечения из каталога служб.
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 - это фильтр отрицательного соответствия - это текст, который не должен присутствовать в имени образа. По умолчанию "(устарело)"
key
нет None
Путь к ключу клиента для использования в рамках транзакции SSL.
key_name
нет None
Имя пары ключей, используемой при создании экземпляра
meta
нет None
Список пар ключ-значение, которые должны быть предоставлены в качестве метаданных новому экземпляру или строка, содержащая список пар ключ-значение. Пример: meta: "key1=value1,key2=value2"
name
да
Имя, которое должно быть задано экземпляру
network
нет None
Имя или идентификатор сети, к которой необходимо подключить этот экземпляр. Более простой вариант параметра nics, следует указать только один из network или nics.
nics
нет None
Список сетей, к которым должен быть подключен интерфейс экземпляра. Сети могут быть указаны по 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
(добавлено в 2.2)
нет True
Когда auto_ip имеет значение true и этот параметр имеет значение true, код auto_ip будет пытаться повторно использовать неназначенные плавающие IP-адреса в проекте перед созданием нового. Важно отметить, что сделать это одновременно невозможно, поэтому, если ваш сценарий предполагает одновременное создание серверов, настоятельно рекомендуется установить это значение в false и удалить плавающий IP-адрес, связанный с сервером, при удалении сервера с помощью delete_fip.
scheduler_hints
(добавлено в 2.1)
нет None
Произвольные пары ключ/значение для планировщика для пользовательского использования
security_groups
нет None
Имена групп безопасности, к которым следует добавить экземпляр. Это может быть список YAML или строка, разделенная запятыми.
state
нет present
  • present
  • absent
Ресурс должен быть present или absent.
terminate_volume
нет
Если true, удалить том при удалении экземпляра (если загружается с тома)
timeout
нет 180
Количество времени, которое модуль должен ожидать, пока экземпляр не перейдет в активное состояние.
userdata
нет None
Непрозрачный блок данных, доступный экземпляру
validate_certs
нет
Нужно ли проверять запросы API SSL. До версии 2.3 по умолчанию было True.
псевдонимы: verify
volume_size
нет
Размер тома для создания в ГБ, если загрузка с тома, основанного на изображении.
volumes
нет
Список существующих томов имен или идентификаторов для подключения к экземпляру
wait
нет да
Если модуль должен ожидать создания экземпляра.

Примеры

- name: Create a new instance and attaches to a network and passes metadata to the instance
  os_server:
       state: present
       auth:
         auth_url: https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/
         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://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/
          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://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/
           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://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/
         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://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0/
      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 %}

Примечания

Примечание

  • Можно использовать стандартные переменные окружения 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

Статус

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

Для получения помощи в разработке модулей, если вас это заинтересует, пожалуйста, прочитайте Справочная информация и вклад сообщества, Тестирование Ansible и Разработка модулей.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/os_server_module.html

Spec-Zone.ru

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