Руководство по услугам вычислений 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 создают экземпляры Alicloud ECS, диски, виртуальные частные облака, виртуальные коммутаторы, группы безопасности и другие ресурсы.
Вы можете использовать параметр 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.8/scenario_guides/guide_alicloud.html