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