The Ansible Alibaba Cloud collection includes a variety of Ansible content to help automate the management of Alibaba Cloud instances. This collection is maintained by the Alibaba Cloud team.
Python version compatibility
This collection requires Python 3.6 or greater.
Installing this collection
You can install the Alibaba Cloud collection with the Ansible Galaxy CLI:
create a requirements.txt file with the following:
You can either call modules by their Fully Qualified Collection Namespace (FQCN), such as alibaba.alicloud.ali_vpc, or you can call modules by their short name if you list the alibaba.alicloud collection in the playbook’s collections keyword:
---
- name: Using module alibaba.alicloud.ali_vpc
hosts: localhost
remote_user: root
vars:
name: "ansible-testacc-ali_vpc-module"
vpc_cidr: "172.16.0.0/12"
vpc_description: "Create a new VPC resource via Ansible example alicloud-ecs-vpc."
roles:
- vpc
tasks:
- name: Create a new vpc with user_cidrs
alibaba.alicloud.ali_vpc:
cidr_block: '{{ vpc_cidr }}'
vpc_name: '{{ name }}-user_cidrs'
description: '{{ vpc_description }}'
user_cidrs:
- 172.16.100.0/24
- 172.16.101.0/24
plugins/modules
There are several files in the module directory, and these files describe some function that can operate alicloud products.
ali_instance.py: Create, Start, Stop, Restart or Terminate an Instance in ECS. Add or Remove Instance to/from a Security Group
ali_disk.py: Create, Attach, Detach or Delete a disk in ECS
ali_security_group.py: Create or Delete a Security Group
ali_vpc.py: Create or Delete a Vpc.
ali_vswitch.py: Create or Delete a VSwitch.
ali_route_entry.py: Create or Delete a route entry.
ali_slb_lb.py: Create or Delete a Load balancer.
ali_slb_listener.py: Create or Delete a listener for one Load balancer.
ali_slb_server.py: Add or Remove backend server to/from Load balancer.
ali_ess_group.py: Create or Delete a scaling group.
ali_ess_configuration.py: Create or Delete a scaling configuration.
ali_ess_instance.py: Add or Remove ECS instnaces in a specified scaling group.
ali_ess_task.py: Create or Delete a scheduled task for scaling activity.
ali_ess_rule.py: Create or Delete a scaling rule.
ali_eni.py: Create or Delete a network interface.
ali_bucket.py: Create or Delete an OSS bucket.
ali_bucket_object.py: Upload or Download an object to/from an OSS bucket.
lib/ansible/module_utils
In the module utils directory, the file alicloud_ecs.py identifies and gains playbook params, and provides this params to modules/*.py. In addition, this file implements connection between ansible and Alicloud API via footmark.
examples
There are some playbooks to create some alicloud resource or build infrastructure architecture.
Execute playbook
Input your alicloud access key in the playbook or set environment variable:ALICLOUD_ACCESS_KEY and ALICLOUD_SECRET_KEY).
Alibaba Cloud Collection
The Ansible Alibaba Cloud collection includes a variety of Ansible content to help automate the management of Alibaba Cloud instances. This collection is maintained by the Alibaba Cloud team.
Python version compatibility
This collection requires Python 3.6 or greater.
Installing this collection
You can install the Alibaba Cloud collection with the Ansible Galaxy CLI:
requirements.txtfile with the following:requirements.txtfile:Using this collection
You can either call modules by their Fully Qualified Collection Namespace (FQCN), such as
alibaba.alicloud.ali_vpc, or you can call modules by their short name if you list thealibaba.alicloudcollection in the playbook’scollectionskeyword:plugins/modules
There are several files in the module directory, and these files describe some function that can operate alicloud products.
ali_instance.py: Create, Start, Stop, Restart or Terminate an Instance in ECS. Add or Remove Instance to/from a Security Groupali_disk.py: Create, Attach, Detach or Delete a disk in ECSali_security_group.py: Create or Delete a Security Groupali_vpc.py: Create or Delete a Vpc.ali_vswitch.py: Create or Delete a VSwitch.ali_route_entry.py: Create or Delete a route entry.ali_slb_lb.py: Create or Delete a Load balancer.ali_slb_listener.py: Create or Delete a listener for one Load balancer.ali_slb_server.py: Add or Remove backend server to/from Load balancer.ali_ess_group.py: Create or Delete a scaling group.ali_ess_configuration.py: Create or Delete a scaling configuration.ali_ess_instance.py: Add or Remove ECS instnaces in a specified scaling group.ali_ess_task.py: Create or Delete a scheduled task for scaling activity.ali_ess_rule.py: Create or Delete a scaling rule.ali_eni.py: Create or Delete a network interface.ali_bucket.py: Create or Delete an OSS bucket.ali_bucket_object.py: Upload or Download an object to/from an OSS bucket.lib/ansible/module_utils
In the module utils directory, the file alicloud_ecs.py identifies and gains playbook params, and provides this params to modules/*.py. In addition, this file implements connection between ansible and Alicloud API via footmark.
examples
There are some playbooks to create some alicloud resource or build infrastructure architecture.
Execute playbook
Input your alicloud access key in the playbook or set environment variable:
ALICLOUD_ACCESS_KEYandALICLOUD_SECRET_KEY).Input others resource params in the playbook.
execute ansible-playbook command as follows:
Build
update the next version in galaxy.yml
build the next version collection:
$ ansible-galaxy collection build
login in https://galaxy.ansible.com/ui/namespaces/alibaba/ and upload the collection
Refrence
Ansible Document: https://docs.ansible.com/ansible/latest/
Ansible Alicloud: Docs Details