Руководство по вычислительным сервисам 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