阿里云计算服务指南

简介

community.general 集合包含多个用于控制和管理阿里云计算服务 (Alicloud) 的模块。本指南介绍如何一起使用 Alicloud Ansible 模块。

所有 Alicloud 模块都需要 footmark - 使用 pip install footmark 在您的控制机器上安装它。

云模块(包括 Alicloud 模块)通常在您的本地机器(控制机器)上使用 connection: local 执行,而不是在您的主机中定义的远程机器上执行。

通常,您将对预配 Alicloud 资源的 playbook 使用以下模式

- hosts: localhost
  connection: local
  vars:
    - ...
  tasks:
    - ...

身份验证

您可以通过将阿里云身份验证凭据(访问密钥和密钥)作为环境变量传递或将它们存储在变量文件中来指定它们。

要将身份验证凭据作为环境变量传递

export ALICLOUD_ACCESS_KEY='Alicloud123'
export ALICLOUD_SECRET_KEY='AlicloudSecret123'

要将身份验证凭据存储在变量文件中,请使用 Ansible Vault 对其进行加密以确保安全,然后列出它们

---
alicloud_access_key: "--REMOVED--"
alicloud_secret_key: "--REMOVED--"

请注意,如果将凭据存储在变量文件中,则需要在每个 Alicloud 模块中引用它们。例如

- community.general.ali_instance:
    alicloud_access_key: "{{ alicloud_access_key }}"
    alicloud_secret_key: "{{ alicloud_secret_key }}"
    image_id: "..."

预配

Alicloud 模块创建阿里云 ECS 实例 (community.general.ali_instance) 并检索这些实例的信息 (community.general.ali_instance_info)。

您可以使用 count 参数来控制要创建或终止的资源数量。例如,如果您想要恰好 5 个标记为 NewECS 的实例,请将实例的 count 设置为 5,并将 count_tag 设置为 NewECS,如下所示示例 playbook 中的最后一个任务。如果没有带有 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

在上例 playbook 中,由任务中的 register 关键字定义的变量保存了创建的实例的数据。

每个 Alicloud 模块都提供各种参数选项。以上示例并非演示所有选项。有关更多详细信息和示例,请参阅各个模块。