Spec-Zone.ru › Ansible 2.9

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

Spec-Zone.ru

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