aliyuncliを触ったので、まとめてみる!
ローカル環境汚したくなかったので、vagrant上で実行することをおすすめします。
今回は、CentOS 7.xで実行しました。
ShellにAPIコマンドを組み込んでcronの定期実行でできたら便利かも?!
まずはvagrantを起動します。
### Vagrant起動
$ vagrant up
$ vagrant ssh
$ sudo -su root
Pythonがなければ、インストールしてくだされ。
### Pythonインストール
$ yum install wget -y
$ wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
$ tar -zxvf Python-2.7.8.tgz
$ cd Python-2.7.8
$ ./configure
$ make
$ sudo make install
### pipインストール
$ curl "https://bootstrap.pypa.io/get-pip.py" -o "pip-install.py"
$ sudo python pip-install.py
$ sudo pip install -U pip
環境ができたらaliyuncliを入れましょう。
### Aliyuncliのインストール
$ sudo pip install aliyuncli
### Aliyuncliのpython-sdkをpipインストール
$ pip install aliyun-python-sdk-ecs
$ pip install aliyun-python-sdk-rds
$ pip install aliyun-python-sdk-core
$ pip install aliyun-python-sdk-vpc
### 初期設定
$ aliyuncli configure
Aliyun Access Key ID [None]:'YOUR ACCESSKEY ID'
Aliyun Access Key Secret [None]:'YOUR ACCESSKEY SECRET'
ECSのAPIコマンドたち
jqは別途インストールくだされー。
### ECSのステータス表示
$ aliyuncli ecs DescribeInstanceStatus --RegionId ap-northeast-1
### インスタンスを停止
$ aliyuncli ecs StopInstance --InstanceId 'インスタンスID'
### インスタンスを起動
$ aliyuncli ecs StartInstance --InstanceId 'インスタンスID'
### 指定スペックでECSを作成
$ aliyuncli ecs CreateInstance \
--RegionId ap-northeast-1 \
--ImageId centos_7_04_64_20G_alibase_201701015.vhd \
--InstanceType ecs.t5-lc1m1.small \
--SecurityGroupId sg-6we786ynk0ds93pbkd2m \
--VSwitchId vsw-6webgivt4f1uz2ozkpg8a \
--InstanceChargeType PostPaid \
--Period 1 \
--AutoRenew True
-> ecsインスタンスをAPI経由で作成する
### optionでインスタンスをjson形式でoutputする
$ aliyuncli ecs DescribeInstances --output json --filter Instances.Instance[*].InstanceId
### インスタンス名から探す
$ aliyuncli ecs DescribeInstances --InstanceName 'インスタンス名'
### Tagを検索
$ aliyuncli ecs DescribeTags
### jqを使ってVpcIdだけをgrep
$ aliyuncli ecs DescribeVpcs | jq ' .Vpcs.Vpc[] | {"VpcId": .VpcId}'
### jqを使ってECSのRunningステータスを取得
$ aliyuncli ecs DescribeInstances | jq '.Instances.Instance[] | {"Status":.Status}'
### jqを使ってECSのGlobal_IpAddressを取得
$ aliyuncli ecs DescribeInstances | jq '.Instances.Instance[] | {"IpAddress":.EipAddress.IpAddress}'
### jqを使ってECSのインスタンスIDを一覧取得
$ aliyuncli ecs DescribeInstances | jq '.Instances.Instance[] | {"InstanceId":.InstanceId}'
### jqを使って0番目のECSインスタンスIDのプレーンテキストを取得
$ aliyuncli ecs DescribeInstances | jq -r '.Instances.Instance[].InstanceId'
### jqを使ってID/名前/Tag/Statusを一覧取得
$ aliyuncli ecs DescribeInstances | jq '.Instances.Instance[] | {"InstanceId":.InstanceId, "InstanceName":.InstanceName, "Tag":.Tags.Tag, "Status":.Status }'
### jqを使ってRunningStatusだけ抜き出す
$ aliyuncli ecs DescribeInstances | jq -r '.Instances.Instance[].Status'
- [option -rを使うことで、ダブルクオテーションを消せる、ない場合は"Running"となる]
### jqを使ってインスタンスIDとインスタンスStatusを取得
$ aliyuncli ecs DescribeInstances | jq -r '.Instances.Instance[] | .InstanceId, .Status'
### jqを使ってインタンスID指定でステータス表示
$ aliyuncli ecs DescribeInstanceAttribute --InstanceId i-6wegsekx7ff0vd35jzhu | jq -r '.Status'
### jqを使ってTagKeyのみを取得
$ aliyuncli ecs DescribeTags | jq -r '.Tags.Tag[].TagKey'
VPCのAPIコマンドたち
### 対象リージョンのVPC一覧を表示
$ aliyuncli vpc DescribeVpcs --RegionId ap-northeast-1
### VPCを作成する(何も指定しない場合、デフォルト値で作成)
$ aliyuncli vpc CreateVpc --RegionId ap-northeast-1
VPN-GWのAPIコマンド
### 対象リージョンのVPN=GW一覧を表示
$ aliyuncli vpc DescribeVpnGateways --RegionId ap-northeast-1
RDSのAPIコマンドたち
### RDSインスタンスの作成
$ aliyuncli rds CreateDBInstance --RegionID ap-northeast-1
### RDSインスタンスのリリース
$ aliyuncli rds DeleteDBInstance --RegionID ap-northeast-1
### RDSインスタンスの再起動
$ aliyuncli rds RestartDBInstance --RegionID ap-northeast-1
定期的にupdateしていきます!!
読んでくれてありがとうございました。