Help us understand the problem. What is going on with this article?

【備忘録】Alibaba Cloud_aliyuncliコマンド集

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していきます!!
読んでくれてありがとうございました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away