Spec-Zone.ru › Ansible

Руководство по вычислительным сервисам Alibaba Cloud

Введение

Коллекция community.general содержит несколько модулей для управления вычислительными сервисами Alibaba Cloud (Alicloud). В этом руководстве объясняется, как совместно использовать модули Ansible для Alicloud.

Для всех модулей Alicloud требуется footmark — установите его на управляющий компьютер с помощью pip install footmark.

Облачные модули, включая модули Alicloud, обычно выполняются на локальном компьютере (управляющем компьютере) с помощью connection: local, а не на удалённых компьютерах, указанных в ваших hosts.

Обычно для плейбуков, которые создают ресурсы Alicloud, используется следующий шаблон:

- hosts: localhost
  connection: local
  vars:
    ...
  tasks:
    - ...

Аутентификация

Вы можете указать учётные данные для аутентификации Alicloud (ключ доступа и секретный ключ), передав их в виде переменных окружения или сохранив в файле vars.

Чтобы передать учётные данные для аутентификации в виде переменных окружения:

export ALICLOUD_ACCESS_KEY='Alicloud123'
export ALICLOUD_SECRET_KEY='AlicloudSecret123'

Чтобы сохранить учётные данные для аутентификации в файле vars, зашифруйте их с помощью Ansible Vault, чтобы защитить их, а затем укажите их:

---
alicloud_access_key: "--REMOVED--"
alicloud_secret_key: "--REMOVED--"

Обратите внимание: если вы храните учётные данные в файле vars, на них нужно ссылаться в каждом модуле Alicloud. Например:

- community.general.ali_instance:
    alicloud_access_key: "{{ alicloud_access_key }}"
    alicloud_secret_key: "{{ alicloud_secret_key }}"
    image_id: "..."

Создание ресурсов

Модули Alicloud создают экземпляры ECS Alicloud (community.general.ali_instance) и получают сведения о них (community.general.ali_instance_info).

Вы можете использовать параметр count, чтобы управлять количеством создаваемых или завершаемых ресурсов. Например, если вам нужно ровно 5 экземпляров с тегом NewECS, задайте count экземпляров равным 5, а count_tag — NewECS, как показано в последней задаче приведённого ниже примера плейбука. Если экземпляров с тегом NewECS нет, задача создаст 5 новых экземпляров. Если есть 2 экземпляра с этим тегом, задача создаст ещё 3. Если есть 8 экземпляров с этим тегом, задача завершит 3 из них.

Если вы не укажете count_tag, задача создаст указанное в count количество экземпляров с заданным вами instance_name.

# alicloud_setup.yml

- hosts: localhost
  connection: local

  tasks:
    - name: Create a set of instances
      community.general.ali_instance:
        instance_type: ecs.n4.small
        image_id: "{{ ami_id }}"
        instance_name: "My-new-instance"
        instance_tags:
          Name: NewECS
          Version: 0.0.1
        count: 5
        count_tag:
          Name: NewECS
        allocate_public_ip: true
        max_bandwidth_out: 50
      register: create_instance

В приведённом выше примере плейбука сведения об экземплярах, созданных этим плейбуком, сохраняются в переменной, заданной ключевым словом register в задаче.

Каждый модуль Alicloud поддерживает различные параметры. В приведённом выше примере показаны не все доступные параметры. Дополнительные сведения и примеры см. в документации по каждому отдельному модулю.

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/docsite/guide_alicloud.html

Spec-Zone.ru

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