Руководство по услугам вычислений Alibaba Cloud
Введение
Ansible содержит несколько модулей для управления и администрирования услуг вычислений Alibaba Cloud (Alicloud). Это руководство объясняет, как использовать модули Alicloud Ansible вместе.
Все модули Alicloud требуют footmark — установите его на вашей управляющей машине с помощью pip install footmark.
Модули облачных ресурсов, включая модули Alicloud, выполняются на вашей локальной машине (управляющей машине) с помощью connection: local, а не на удалённых машинах, определённых в ваших хостах.
Обычно вы будете использовать следующий шаблон для задач, которые создают ресурсы Alicloud:
- hosts: localhost
connection: local
vars:
- ...
tasks:
- ...
Аутентификация
Вы можете указать свои учетные данные аутентификации Alicloud (ключ доступа и секретный ключ), передав их как переменные окружения или сохранив их в файле vars.
Чтобы передать учетные данные аутентификации как переменные окружения:
export ALICLOUD_ACCESS_KEY='Alicloud123' export ALICLOUD_SECRET_KEY='AlicloudSecret123'
Чтобы сохранить учетные данные аутентификации в файле vars_file, зашифруйте их с помощью Ansible Vault для обеспечения безопасности, а затем перечислите их:
--- alicloud_access_key: "--REMOVED--" alicloud_secret_key: "--REMOVED--"
Обратите внимание, что если вы сохраняете свои учетные данные в файле vars_file, вам необходимо ссылаться на них в каждом модуле Alicloud. Например:
- ali_instance:
alicloud_access_key: "{{alicloud_access_key}}"
alicloud_secret_key: "{{alicloud_secret_key}}"
image_id: "..."
Развёртывание
Модули Alicloud создают экземпляры ECS, диски, виртуальные частные облака, виртуальные коммутаторы, группы безопасности и другие ресурсы Alicloud.
Вы можете использовать параметр 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 VPC
ali_vpc:
cidr_block: '{{ cidr_block }}'
vpc_name: new_vpc
register: created_vpc
- name: Create VSwitch
ali_vswitch:
alicloud_zone: '{{ alicloud_zone }}'
cidr_block: '{{ vsw_cidr }}'
vswitch_name: new_vswitch
vpc_id: '{{ created_vpc.vpc.id }}'
register: created_vsw
- name: Create security group
ali_security_group:
name: new_group
vpc_id: '{{ created_vpc.vpc.id }}'
rules:
- proto: tcp
port_range: 22/22
cidr_ip: 0.0.0.0/0
priority: 1
rules_egress:
- proto: tcp
port_range: 80/80
cidr_ip: 192.168.0.54/32
priority: 1
register: created_group
- name: Create a set of instances
ali_instance:
security_groups: '{{ created_group.group_id }}'
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
vswitch_id: '{{ created_vsw.vswitch.id}}'
register: create_instance
В приведённом выше примере плейбука данные о vpc, vswitch, группе и экземплярах, созданных этим плейбуком, сохраняются в переменных, определённых ключевым словом «register» в каждой задаче.
Каждый модуль Alicloud предлагает множество параметров. Не все параметры показаны в приведённом примере. Для получения дополнительных сведений и примеров см. каждый отдельный модуль.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/scenario_guides/guide_alicloud.html