Spec-Zone.ru › Ansible 2.11

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

Введение

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

Все модули 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.10/scenario_guides/guide_alicloud.html

Spec-Zone.ru

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