Azure
Ansible

Ansible の Azure モジュールについて

More than 1 year has passed since last update.

パラメータと使い方をメモしています。(version 2.0.0)
Azure も含めての利用方法はこちら Ansible で Azure 上にプロビジョニング!

Inventory

インベントリ(hosts)
127.0.0.1 ansible_connection=local

Playbook

プレイブック(playbook.yml)
---
- hosts: localhost
  gather_facts: no

  tasks:
  - name: Create Virtual Machine on Azure (for Windows)
    azure: 
      auto_updates: no  
      enable_winrm: yes
      endpoints: "3389" # 
      image: 'bd507d3a70934695bc2128e3e5a255ba__RightImage-Windows-2012R2-x64-v14.2'
      location: 'Japan West'
      management_cert_path: /home/vagrant/azure/manage.cer
      hostname: hogehoge
      name: hogehoge
      os_type: windows
      user: azureuser
      password: "Password_123"
      role_size: Basic_A2
      state: present
      storage_account:
      subscription_id:

Azure モジュール

Python Azure モジュール用意

Ansible で用意されている Azure モジュールは以下の環境でサポート。

  • Pyhon >= 2.6
  • Python azure module >= 0.8.0 (Ansible マニュアルは少し古い情報)

追加で Python の Azure モジュールをインストールしておく。

Ansible Azure モジュールパラメータ

以下は、必須および指定しておいたほうが良いパラメータをBoldとしている。

  • auto_update
    • 自動アップデートの有無
  • enable_winrm
    • winrm の有効化(これは基本的に yes 、デフォルトも yes)
  • endpoints
    • 外から仮想マシンへアクセス可能にするTCPポートを指定(カンマで複数可能、デフォルト
    • パブリックとプライベートで同じポート番号になる
  • hostname
    • /etc/hostname に書かれる、.cloudapp.net の name 部
  • image
    • 仮想マシンのイメージIDを指定(Azure CLI にて azure vm image list で確認可能)
  • location
    • 仮想マシンを稼働させるロケーション指定(Azure CLI にて azure vm location list で確認可能)
  • management_cert_path
    • 管理証明書のパスを指定(環境変数 AZURE_CERT_PATH で指定することも可能)
  • name
    • 仮想マシンと関連するクラウドサービスの名前を指定
  • os_type
    • OSタイプ windows or linux
  • password
    • Linux 仮想マシンのパスワード
  • reset_pass_atlogon
    • Windows 仮想マシンへ最初のログインの際に管理者バスワードをリセットするか否か
    • ResetPasswordOnFirstLogon パラメータは廃止されているため利用不可Fixed
  • role_size
  • ssh_cert_path
    • 仮想マシンにインストールするためのSSH公開鍵を含むX509証明書のパスを指定
  • state
    • 仮想マシンを作るのか消すか(デフォルトは present)
  • storage_account
    • Azure のストレージアカウント名
  • subscription_id
    • Azure のサブスクリプションID(環境変数 AZURE_SUBSCRIPTION_ID で指定することも可能)
  • user
    • Linux 仮想マシンのユーザ名
  • virtual_network_name
    • 仮想ネットワーク名
  • wait
    • Running 状態になるまでに待つか否か
  • wait_timeout
    • どのくらい待つか(秒、デフォルトは600)
  • wait_timeout_redirects
    • リダイレクトのためにどのくらい待つか(秒、デフォルトは300)

Ansible 実行

$ ansible-playbook -i hosts playbook.yml 

参考