Red Hat on Azure の基本~Red Hat on AzureでAzureのリソースを管理する方法 その1

1. はじめに

皆さん、こんにちは、日本マイクロソフト パートナービジネス推進本部でクラウドソリューションアーキテクトをやっている、森山です。前回は、AzureでRHELを構築する手順についてお伝えしました。今回は、Azureの操作をCLIで実現する方法について、お伝えしようと思います。

Azureは、Azure Resource Manager(前回からお伝えしているWebポータルのことで、ARM(あーむ)と略します。)とAzure Command Line Interface(CLI)の2つが用意されており、CLIに関しては、nodejsベースで開発されたバージョン1とpythonベースで開発されたバージョン2があります。 どちらもMITライセンスでかつMicrosoftのOSSとして公開されており、OSSに関する行動指針に同意いただけるのであれば、いつでもその開発に参加できます。もちろん、どちらのCLIも無償で提供されていますので、ご安心ください。 また、今後は、バージョン2.0を中心に開発を進めていく予定とアナウンスされていますが、実際のところ、Azure CLI1.0(xplat-cli)の開発が完了したわけではなく、今でもMITライセンスの元開発が進められています。

さらに クラウドリソースを好きな言語で扱える、SDKもご用意されていますので、皆様の状況に応じて他言語で用意されたSDKも鑑みて使っていただくのが良いかと思います。

 

2. 作業の省力化と学習コスト

この記事を読む前にAzureを試された方、もしくは、すでにAzureに触れた事のあるかたは、ご存知かと思いますが、 ARMはWebブラウザからAzureのあらゆるクラウドリソースに容易にアクセスできます。 また、初めて触った方でも直感的でわかりやすく、学習コストは、そこまで高くないと思います。 その反面、クリックにかかる時間や自動化をすすめる上でのオートメーションツールとの親和性が低くデメリットも見えてきます。

一般的に、大規模なデプロイメントや、リッチクライアントが無い環境においては、 ARMを使うよりもCLIを使うほうが、メリットが多く制約が少ないです。 また、今後ご紹介する、スケーラブルで迅速で継続的なデプロイメントを可能にする 自動化ツールや、Azureの機能との相性もすごく良いです。 そういう意味で、CI/CD(継続的インテグレーション/継続的デリバリー)を活用した、クラウドネイティブアプリケーションの デプロイメントにマッチすると考えています。

そういったことも踏まえて Azure CLI2.0をAzure上にデプロイされたRHELにAzure CLI 2.0 を導入し、Azureのリソース操作を行ってみます。

 

3. Azure CLIの種類とAzure CLI 2.0のインストール方法

Azure CLIは、別名でクロスプラットフォームCLIと呼ばれているとおり、 Pythonおよびpythonパッケージ管理コマンドのpipがインストールされている環境で依存関係をクリアすれば、 WindowsでもLinuxでもMacOSでも同様の操作でクラウドのリソースを扱えるようになります。(nodejsの場合node packeage manager)

※pipはあくまでPythonのパッケージを管理する補助的なツールですので必須というわけではありません。ご自身の環境に合わせたAzure CLIの運用の検討をおすすめします。

※また、該当CLIは日々テストを通し、テストをパスしたものがpypl(Pythonのモジュールを管理するリポジトリ)に挙げられ pipで使われます。ただし、すべての環境(ライブラリの依存関係など)でテストをしているわけではないので、環境によっては、エラーがでる場合があります。その場合は、Githubを通じて、Issueなどを上げていただくとよいかと存じます。

まず、最初の記事でご紹介して頂いた方法でデプロイしたRHELにログインしてください。 サーバを止めているかた、サーバを削除してしまったかたは、もう一度作ってください。

ログインしてください。

yumでpackage updateをします。

[username@redhatvm ~]$ sudo -i

[root@redhatvm ~]# yum -y update

読み込んだプラグイン:langpacks, product-id, search-disabled-repos

依存性の解決をしています

(略)

 

完了しました!

さらにpipをインストールしましょう。 ここでは、pip以外にもpython moduleのコンパイルで必要な開発パッケージおよびライブラリヘッダをインストールしています。

[root@redhatvm ~]# yum install -y rh-python35-python-pip rh-python35-python-devel openssl-devel libffi-devel python-devel && yum groupinstall -y "Development Tools"

インストールが終わりましたら、python3.5の実行を有効にするために下記のコマンドを 実行してください。SCLを有効化する方法です。

[username@redhatvm ~]$ source /opt/rh/rh-python35/enable

 

さらに、下記のコマンドを実行するとAzure CLI2.0のインストールが完了します。

[username@redhatvm ~]# pip install --user azure-cli

 

これでAzure CLI 2.0の準備は完了しました。 コマンドヘルプを表示してみましょう。

[username@redhatvm ~]$ az -h

こうすることでサブコマンドも参照できます。

続いてサブコマンドのヘルプも参照してみましょう。

[username@redhatvm ~]$ az vm -h

このようにヘルプを確認しながらコマンドを実行することで、サブコマンドで何ができるか確認できます。

まとめ

今回は、Azure上のRHEL 7.3を使ってAzure CLI 2.0をインストールして、コマンドの確認をしました。次回は、Azure CLIを使って、Azureのリソースのデプロイと自動化のためのBashスクリプティングについてお届けいたします。