LoginSignup
5
4

More than 5 years have passed since last update.

How to call azure-cli from python script

Last updated at Posted at 2018-06-08

Overview

 Microsoft Azureを利用することになったので作ってみた。
WebUI操作は嫌だ。コマンド操作もあるがそのたびにターミナルを起動するのも面倒くさい。
というかCLIの利点が薄れまくる。

どうすれば良いか

  • REST APIをつかう
  • SDKを使ってアクセスする
  • azure-cli を呼び出す

採択した方法は3番目。
というのも、1も2も利用するためにはPermissionを定義しなければならず
がっつりとAzureを使う時に使用するだけでユーザ追加、みたいな操作だけを実行するには
重たすぎるからだ。

Environment

  • CentOS7
  • python3.4

Install azure-cli

azure-cliを使う以上、azure-cliをインストールしなければならない。
python2.7 ベースで良いならば azure-cli公式ドキュメントの通り
yum repoを取得してyum install してしまえば良い。

せっかくだからpython3.4 等を使いたいという場合は、
python3系で呼び出せるようにインストールする必要がある為、
以下のような形で入れる。

# pip3 install azure-cli

How to call azure-cli from python script

az コマンドは az.cli.core から get_default_cli をimportすれば良いようだ。
従って、実行には以下のようにpython scriptを書く。

# -*- coding: utf-8 -*-

import logging
from azure.cli.core import get_default_cli

# Login to Azure
LOGIN = [
    'login',
    '-u', '<username>',
    '-p', '<password>'
]
get_default_cli().invoke(LOGIN)

# Logout from Azure
LOGOUT = [
    'logout',
]
get_default_cli().invoke(LOGOUT)

ものすごくやっつけだが、標準的な実行としてはこれで良い。
これでログイン、ログアウトが可能
get_default_cli が az コマンドに相当するので
その後に繋がる引数をリストでinvokeとして渡してやれば良い。

なお、azはloginするとログイン情報を保持し続けてしまうので
必ずlogoutを最後に入れること。

後はReferenceを読んで実行可能なコマンドと
引数、オプションを参考に記載していけば良い。

くどいようだが、再びリンクを張っておく。
ここの Reference を展開すれば良い。

5
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
5
4