概要
Alibaba Cloudを操作するAliyuncliの詳細については前の記事に書きましたが、何かやりたくコマンド実行したいときに、もう一回記事を読むのは面倒なので、aliyuncliのcheatsheetをメモします。
コマンドライン必要な情報をjq
で抽出します。
※ コマンドふう のように、この記事ではおわりません。便利コマンドが見つけたら、ぜひPRをください!
Aliyuncli
ECS
# ECS特定のVPCネットワークを参照
$ aliyuncli ecs DescribeVpcs | jq '.Vpcs.Vpc[] | {"VpcId": .VpcId, "router": .VRouterId, "switch": .VSwitchIds.VSwitchId, "CIDR": .CidrBlock }'
# SecurityGroup 一覧取得
$ aliyuncli ecs DescribeSecurityGroups | jq '.SecurityGroups.SecurityGroup[] | {"group name": .SecurityGroupName, "group id": .SecurityGroupId }'
# Linuxイメージ一覧を取得
$ aliyuncli ecs DescribeImages --RegionId ap-northeast-1 --PageSize 100 | jq '.Images.Image[] | select(.OSType=="linux") | [.ImageName, .ImageId]'
# インスタンス種類を取得
$ aliyuncli ecs DescribeInstanceTypes --RegionId ap-northeast-1 --PageSize 100 | jq '.InstanceTypes.InstanceType[] | select(.CpuCoreCount == 1) | select(.MemorySize == 1) | [.InstanceTypeId, .CpuCoreCount, .MemorySize, .InstanceTypeFamily]'
# インスタンス購入
aliyuncli ecs CreateInstance --ImageId centos_7_2_64_40G_base_20170222.vhd --InstanceType ecs.xn4.small --SecurityGroupId sg-6wecuztjlpbvb9aqzhnt --VSwitchId vsw-6we1b1uu6jhk37znanv5x
# インスタンス状態を確認
$ aliyuncli ecs DescribeInstanceStatus | jq '.InstanceStatuses.InstanceStatus[] | select(.InstanceId == "i-6we6caulmy9eoervabrg")'
# OR
$ aliyuncli ecs DescribeInstanceAttribute --InstanceId i-6we6caulmy9eoervabrg
# インスタンス名変更
$ aliyuncli ecs ModifyInstanceAttribute --InstanceId i-6webczsnsibebopgqk3n --InstanceName ha-test-api
# インスタンス起動・停止
$ aliyuncli ecs StartInstance --InstanceId i-6we6caulmy9eoervabrg
$ aliyuncli ecs StopInstance --InstanceId i-6we6caulmy9eoervabrg
# EIP 取得・リリース
$ aliyuncli ecs AllocateEipAddress --RegionId ap-northeast-1 --InternetChargeType PayByTraffic --Bandwidth 10
$ aliyuncli ecs ReleaseEipAddress --AllocationId eip-6wekxjhsorf3vxm7d9zbn
# AllocationId でEIPを検索
$ aliyuncli ecs DescribeEipAddresses | jq '.EipAddresses.EipAddress[] | select(.AllocationId == "eip-6wedmapsh7d2pfxvigwnx")'
# EIPの帯域幅の調整 / EIP bind
$ aliyuncli ecs ModifyEipAddressAttribute --AllocationId eip-6wedmapsh7d2pfxvigwnx --Bandwidth 5
$ aliyuncli ecs AssociateEipAddress --AllocationId eip-6wedmapsh7d2pfxvigwnx --InstanceId i-6webczsnsibebopgqk3n
# イメージを作成
$ aliyuncli ecs CreateImage --InstanceId i-6webczsnsibebopgqk3n --ImageName ha-test-api-image
$ イメージ参照
$ aliyuncli ecs DescribeImages | jq '.Images.Image[] | select(.ImageId == "m-6we3yk3g77us0seaycd6")'
$ aliyuncli ecs DescribeImages | jq '.Images.Image[] | select(.ImageName | contains("cicd"))'
RDS
# RDSインスタンス一覧を取得
$ aliyuncli rds DescribeDBInstances --PageSize 50
#
# aliyuncli rds CreateDBInstance --Engine MySQL --EngineVersion 5.6 --DBInstanceClass rds.mysql.t1.small --DBInstanceStorage 5 --DBInstanceNetType Internet --RegionId ap-northeast-1 --InstanceNetworkType VPC --VPCId vpc-6wex6nsnwomo9x5jmwzfv --VSwitchId vsw-6we1b1uu6jhk37znanv5x --SecurityIPList 0.0.0.0/0 --PayType Postpaid
SLB
# SLB作成
$ aliyuncli slb CreateLoadBalancer --LoadBalancerName cicd-demo-lb --InternetChargeType paybytraffic
# SLB属性の調査
$ aliyuncli slb DescribeLoadBalancerAttribute --LoadBalancerId lb-e9bb7ppqnr4oyxyw738i2
# BackendServersを追加
$ aliyuncli slb AddBackendServers --LoadBalancerId lb-e9bb7ppqnr4oyxyw738i2 --BackendServers "[{'ServerId': 'i-6web6xefml52lcl833eve', 'Weight': '100'}]"