LoginSignup
8
7

More than 5 years have passed since last update.

Ansible+AzureでVM作成

Last updated at Posted at 2015-05-12

azureもansibleのazureモジュールもあんまりドキュメント無くて結構はまったので誰かの参考になればと思いメモ

環境

  • OSX 10.10
  • python 2.7
  • ansible 1.9

前提条件

  • 管理証明書作成済み、Webコンソールからアップロード済み
  • VMのSSHログイン用鍵ペアは作成済み

手順

azure操作用パッケージをインストール

sudo pip install azure

azure認証情報を環境変数にセット

サブスクリプションIDと、管理証明書の場所を環境変数に指定する。

export AZURE_SUBSCRIPTION_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export AZURE_CERT_PATH=~/.ssh/manage.pem

この証明書をmacで作ろうとしてめっちゃハマった。
色んなサイト見たけど結局公式のここの手順で作成したpem使ったら通った。

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
openssl x509 -inform pem -in mycert.pem -outform der -out mycert.cer

コンソールにアップロードするのはcer、クライアントで使うのはpemなので注意。

VM作成用playbookの作成

VM作成用のplaybookとインベントリファイルを作成する。

create_vm.yml
- hosts: 127.0.0.1
  connection: local
  tasks:
    - name: create new virtual machine
      local_action:
        module: azure
        name: sample-vm
        role_size: Small
        image: 0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.6-x64-v14.2.1
        location: 'Japan West'
        user: admin
        state: present
        ssh_cert_path: ~/.ssh/sample.pem
        storage_account: storage_account_name
        password: s@mple1234
        wait: yes
127.0.0.1

Playbookの実行

ansible-playbook -i hosts create_vm.yml

結構遅いので進捗気になる方は-vvvとか付けて。

インスタンスへのアクセス

混んでなければ多分デプロイから3〜5分くらいでインスタンスにアクセス出来るようになる。
特に何も設定しなければport22のアクセスが許可されているはずなので、

ssh admin@sample-vm.cloudapp.net -i ~/.ssh/sample.pem

とかやればアクセス出来る。

備考

VMの名前

cloudapp.net内でユニークである必要がある。
重複しててもエラーメッセージが出ず、最後のVM確認でNot Foundエラーになるので地味に分かりづらい。

証明書

VM用証明書も管理証明書作成と同じように作ってpemを指定する。

パスワード

ansible公式には必須じゃないと書いてあるけど、新規インスタンス作成時はpasswordが無いとエラーになる。
6-72文字で記号と数字(?)を含める必要あり。

ストレージ作成

今のところストレージの自動作成オプションは無さそうなので、手作業で作ったものを使うか、nodeのazureパッケージかなんか使って自動化する必要がありそう。

ストレージのロケーション

ストレージのlocationとインスタンスのlocationをあわせる必要がある。

参考

ansible公式ドキュメント
http://docs.ansible.com/azure_module.html

ansibleのazureモジュール
https://github.com/ansible/ansible-modules-core/blob/9d25d88b9a993d628afdd69a06793debca37c5d1/cloud/azure/azure.py

Microsoft公式
http://azure.microsoft.com/ja-jp/documentation/articles/cloud-services-python-how-to-use-service-management/

8
7
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
7