To run very easily aliyun-cli commands on Alibaba Cloud, I show you how to use the Docker image I created. This image is public on Hub Docker (devopstestlab/aliyun-cli).
This image embeds too:
docker-aliyun-cli git:(master) ✗ docker run devopstestlab/aliyun-cli serverless --version
The output is:
Framework Core: 2.3.0
Plugin: 4.0.4
SDK: 2.3.2
Components: 3.1.5
docker run devopstestlab/aliyun-cli node --version
The output:
v14.11.0
One of the main topics is the credentials. There are several ways to use them. I chose an approach useful to run several commands in a not interactive way and to run commands from a CI/CD as GitLab.
You can check the Docker image is available and download it:
docker pull devopstestlab/aliyun-cli
The output is:
Using default tag: latest
latest: Pulling from devopstestlab/aliyun-cli
Digest: sha256:6e0478ce0d3b59beda06071ca0c4fc18675eb64e31df04ab0eabea2872718be0
Status: Downloaded newer image for devopstestlab/aliyun-cli:latest
docker.io/devopstestlab/aliyun-cli:latest
Now, talk about the credentials.
The first step is to create a credentials file:
docker run -v $PWD/data:/root/.aliyun cli aliyun configure set --profile akProfile --mode AK --region eu-central-1 --access-key-id <ACCESS_KEY_ID> --access-key-secret <ACCESS_KEY_SECRET>
Please insert the credentials <ACCESS_KEY_ID> and the <ACCESS_KEY_SECRET> provided by Alibaba Cloud console when you create an user with a programmatic access.
A credentials file is created in the ./data/config.json file:
ls -l ./data/config.json
The output is:
-rw------- 1 bruno staff 754 26 sep 08:57 ./data/config.json
The second step is to execute aliyun-cli commands by providing the credentials file. For example:
docker run -v $PWD/data:/root/.aliyun:ro cli aliyun ecs DescribeRegions
The output is:
{"RequestId":"3627EE31-D2F7-411A-89B7-122965DF5FD1","Regions":{"Region":[{"RegionId":"cn-qingdao","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华北 1"},{"RegionId":"cn-beijing","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华北 2"},{"RegionId":"cn-zhangjiakou","RegionEndpoint":"ecs.cn-zhangjiakou.aliyuncs.com","LocalName":"华北 3"},{"RegionId":"cn-huhehaote","RegionEndpoint":"ecs.cn-huhehaote.aliyuncs.com","LocalName":"华北 5"},{"RegionId":"cn-wulanchabu","RegionEndpoint":"ecs.cn-wulanchabu.aliyuncs.com","LocalName":"华北6(乌兰察布)"},{"RegionId":"cn-hangzhou","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华东 1"},{"RegionId":"cn-shanghai","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华东 2"},{"RegionId":"cn-shenzhen","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华南 1"},{"RegionId":"cn-heyuan","RegionEndpoint":"ecs.cn-heyuan.aliyuncs.com","LocalName":"华南2(河源)"},{"RegionId":"cn-chengdu","RegionEndpoint":"ecs.cn-chengdu.aliyuncs.com","LocalName":"西南1(成都)"},{"RegionId":"cn-hongkong","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"香港"},{"RegionId":"ap-northeast-1","RegionEndpoint":"ecs.ap-northeast-1.aliyuncs.com","LocalName":"亚太东北 1 (东京)"},{"RegionId":"ap-southeast-1","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"亚太东南 1 (新加坡)"},{"RegionId":"ap-southeast-2","RegionEndpoint":"ecs.ap-southeast-2.aliyuncs.com","LocalName":"亚太东南 2 (悉尼)"},{"RegionId":"ap-southeast-3","RegionEndpoint":"ecs.ap-southeast-3.aliyuncs.com","LocalName":"亚太东南 3 (吉隆坡)"},{"RegionId":"ap-southeast-5","RegionEndpoint":"ecs.ap-southeast-5.aliyuncs.com","LocalName":"亚太东南 5 (雅加达)"},{"RegionId":"ap-south-1","RegionEndpoint":"ecs.ap-south-1.aliyuncs.com","LocalName":"亚太南部 1 (孟买)"},{"RegionId":"us-east-1","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"美国东部 1 (弗吉尼亚)"},{"RegionId":"us-west-1","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"美国西部 1 (硅谷)"},{"RegionId":"eu-west-1","RegionEndpoint":"ecs.eu-west-1.aliyuncs.com","LocalName":"英国 (伦敦)"},{"RegionId":"me-east-1","RegionEndpoint":"ecs.me-east-1.aliyuncs.com","LocalName":"中东东部 1 (迪拜)"},{"RegionId":"eu-central-1","RegionEndpoint":"ecs.eu-central-1.aliyuncs.com","LocalName":"欧洲中部 1 (法兰克福)"}]}}
Now, you can easily create a credentials file you can store in a secure location to create it each time you need. Then you can run several commands or use aliyun-cli to create an infrastructure from a CD as GitLab or anything else.
The source code of the Docker image is here:
Bruno Delb
8 posts | 1 followers
FollowAlibaba Clouder - October 29, 2018
Yagr - July 8, 2020
Alibaba Clouder - August 19, 2019
roura356a - December 5, 2019
Alibaba Clouder - August 12, 2021
Alibaba Clouder - June 11, 2020
8 posts | 1 followers
Follow
Alibaba Cloud Academy
Alibaba Cloud provides beginners and programmers with online course about cloud computing and big data certification including machine learning, Devops, big data analysis and networking.
Learn MoreMore Posts by Bruno Delb