8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

aliyuncli を使ってAlibaba Cloudを操作してみた

Last updated at Posted at 2017-04-13

概要

最近のいくつかのニュースの通り、中国でNo1シャアを持つAlibaba Cloudは日本に登場しました。UI画面では試す方も多いと思いますが、デベロッパーであればコマンドラインツールを使いたがるのでしょう。

Alibaba Cloudを操作するためのコマンドラインツールは aliyuncli というpython cliツールがあります。最新のバージョンは2.1.4のようです。現在このツールが対応しているAlibaba Cloudリソースは以下となっています。

Product SDK
BatchCompute aliyun-python-sdk-batchcompute
Bsn aliyun-python-sdk-bsn
Bss aliyun-python-sdk-bss
Cms aliyun-python-sdk-cms
Crm aliyun-python-sdk-crm
Drds aliyun-python-sdk-drds
Ecs aliyun-python-sdk-ecs
Ess aliyun-python-sdk-ess
Ft aliyun-python-sdk-ft
Ocs aliyun-python-sdk-ocs
Oms aliyun-python-sdk-oms
OssAdmin aliyun-python-sdk-ossadmin
Ram aliyun-python-sdk-ram
Ocs aliyun-python-sdk-ocs
Rds aliyun-python-sdk-rds
Risk aliyun-python-sdk-risk
R-kvstore aliyun-python-r-kvstore
Slb aliyun-python-sdk-slb
Ubsms aliyun-python-sdk-ubsms
Yundun aliyun-python-sdk-yundun

Aliyuncliコマンドラインを使って、Alibaba Cloudリソースを操作してみたいと思います。そして、日本リージョンに展開していないリソースを含むため、日本リージョンに使用可能なリソースだけ試します。

Dockerファイル

Aliyuncli は python コマンドラインツールなので、pythonパッケージをインストールしなければなりません。ちょっと試したいなら、 virtualenv などを使用してもよいでしょうが、最近dockerが流行っていそうなので、dockerで試したいと思います。

そして、DockerFileを準備しました

# cd #directory_have_this_file
# docker build .
# docker images 
# ...
# aliyun                latest              adb983972e8d        2 months ago        220 MB
# ...
# docker run -it aliyun /bin/bash
# aliyuncli configure
# ....
# aliyuncli ecs 
# ....

FROM centos
MAINTAINER Bui Hong Ha

LABEL Install python-pip
RUN curl 'https://bootstrap.pypa.io/get-pip.py' -o 'get-pip.py'
RUN python get-pip.py

LABEL Install aliyuncli
RUN pip install aliyuncli
RUN pip install aliyun-python-sdk-slb aliyun-python-sdk-ecs aliyun-python-sdk-rds aliyun-python-sdk-oss aliyun-python-sdk-r-kvstore

LABEL Installing jq
RUN curl -L https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 -o /bin/jq
RUN chmod +x /bin/jq

LABEL Setup Locale
RUN echo "export LANG=\"en_US.UTF-8\"" >> ~/.bashrc

コマンドを実行してみる

ステップ毎に書きたいと思います。

ステップ 1: Dockerイメージを作成する

DockerFileを基づいて、Docker imageを作ります。Docker fileを保存するところへ移動し、docker build でイメージを作成します。

$ cd docker-file-あるところ
$ ls
total 8
-rw-r--r--  1 user  staff   564B Oct 21 14:06 Dockerfile
$ docker build --tag aliyuncli .
Sending build context to Docker daemon  2.56 kB
Step 1/13 : FROM centos
latest: Pulling from library/centos
93857f76ae30: Pull complete
Digest: sha256:4eda692c08e0a065ae91d74e82fff4af3da307b4341ad61fa61771cc4659af60
Status: Downloaded newer image for centos:latest
 ---> a8493f5f50ff
Step 2/13 : MAINTAINER Bui Hong Ha
 ---> Running in ...
...

出来上がるまで5分ぐらいかかるので、その間にコーヒを入れていきます。

ステップ 2: コンテナを作成

ビルドが問題なく実行完了したら、イメージが出来上がります。docker imagesで以下のイメージが表示されたらOK!

$ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED              SIZE
aliyuncli             latest              2c78aa25abe5        About a minute ago   217 MB

これで、コンテナを起動します。コマンドラインツールを使いたいため、起動時に interactiveをつけて実行します。実行が成功したら、コンテナのコマンド入力に入ります。以下のとおりに表示したら、問題がなくインストール実行できてます

docker run -it aliyuncli /bin/bash
[root@30c2625926e7 /]#
[root@30c2625926e7 /]#
[root@30c2625926e7 /]# aliyuncli
usage: aliyuncli <command> <operation> [options and parameters]
<aliyuncli> the valid command as follows:

ecs                                      	| oss
r-kvstore                                	| rds
slb

ステップ 3: Alibabaアカウントアクセスキー設定

アクセスキーを取得するところは、ログイン直後のホームメニューの「AccessKeys」メニューになります。

image

「AccessKeys」をクリックすると、アクセスキーを取得する画面へ移動し、以下のような画面が表示されます。「AccessKeyの管理続ける」ボタンを押しますと、アクセスキーとsecretsを取得できます

image

この画面で、アクセスキーの①とアクセスキーの秘密鍵をコピーできます。

image

①、②をコピーし、コマンドラインを戻って、以下のどおりにconfigureを行います

[root@30c2625926e7 /]# aliyuncli configure
Aliyun Access Key ID [None]: ①でコピーしたアクセスキー
Aliyun Access Key Secret [None]: ②でコピーしたアクセスキーの鍵
Default Region Id [None]: ap-northeast-1
Default output format [None]:

日本リージョンのIDは 【ap-northease-1】となります。デフォルトリージョンをNoneにする場合は【cn-hangzhou】となります。
Apiの出力結果は【None】にする場合、テーブルと表示されます。出力形式はテーブルとJson形式とサポートされます。

ステップ 4: ひたすらコマンドラインを試す

準備はステップ3までに終わったら完了します。次に、いくつかのコマンドラインを試したいと思います

1. ECSインスタンスを取得する

いくつかのECS情報を抽出する

$ aliyuncli ecs DescribeInstances | jq ".Instances.Instance[] | {name: .InstanceName, region: .RegionId, family: .InstanceTypeFamily, cpu: .Cpu, memory: .Memory}"

{
  "name": "instance1",
  "region": "ap-northeast-1",
  "family": "ecs.n4",
  "cpu": 1,
  "memory": 2048
}
{
  "name": "instance2",
  "region": "ap-northeast-1",
  "family": "ecs.n4",
  "cpu": 2,
  "memory": 2048
}
...
2. ECSインスタンスを停止する

コマンドラインでECSインスタンスを停止してみます

$ aliyuncli ecs StopInstance --InstanceId i-6wehmzs9b5uv14a1mmud
{
    "RequestId": "9A05F358-56A8-4D8E-B5AD-37D2F3CB215D"
}

上記のコマンドを実行すると、コンソール画面UI側で暫く待つと「停止済み」の状態に遷移します。
image

3. ECSインスタンスを起動する

2で停止したインスタンスを起動してみます。

$ aliyuncli ecs StartInstance --InstanceId i-6wehmzs9b5uv14a1mmud
{
    "RequestId": "99FD381B-EE3C-4DC1-B619-56671822986D"
}

image

コマンドを実行し暫く待つと、インスタンスの状態が「実行中」となります。

4. OSSをaliyuncli操作してみる

準備ステップで設定した configureはアクセスキーの準備だけです。aliyuncliを使ってOSS操作したい場合、別途でaliyuncli oss Config を実行し設定しないといけません。

$ aliyuncli oss Config --host oss-ap-northeast-1.aliyuncs.com --accessid [AccessId] --accesskey [AccessKey]
Your configuration is saved into /root/.aliyuncli/osscredentials .

OSS設定が完了すれば、aliyun oss で実行可能なコマンドを参照できます。

[root@30c2625926e7 /]# aliyuncli oss GetAllBuckets
unsupported command : GetAllBuckets
The valid command as follows::
    GetAllBucket
    CreateBucket              oss://bucket --acl [acl]
    DeleteBucket              oss://bucket
    DeleteWholeBucket         oss://bucket
    GetBucketLocation         oss://bucket
    PutBucketCors             oss://bucket localfile
    GetBucketCors             oss://bucket
    DeleteBucketCors          oss://bucket
...

Bucketを取得してみます

[root@30c2625926e7 /]# aliyuncli oss GetAllBucket
CreateTime           BucketLocation       BucketName
2017-01-24 07:59:13  oss-ap-northeast-1   testbucket111
2017-04-07 07:37:47  oss-cn-qingdao       testbucket222

Bucket Number is: 2
1.551(s) elapsed

結論

Alibaba CloudはGUIコンソール画面だけではなく、充実なCLIツールをサポートしています。Dockerを使うと、簡単にAliyuncli 実行できる環境が作れて試すことができます。Aliyuncliを使えば、いくつかのクラウドリソースの操作を自動化できます。

いくつかの簡単なコマンドを紹介しました。より詳細なコマンドを試したい人はドキュメントを参照できます。後は実際にコマンドを試して打って結果を見るのは大事ですね。

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?