阿里云计算服务指南
简介
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 模块都提供各种参数选项。以上示例并非演示所有选项。有关更多详细信息和示例,请参阅各个模块。