阿里云计算服务指南
简介
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
关键字定义的变量中保存了由此 playbook 创建的实例的数据。
每个 Alicloud 模块都提供各种参数选项。并非所有选项都在上述示例中进行了演示。有关更多详细信息和示例,请参阅各个模块。