adambrassard.azure_virtualmachine

AzureでのVMの作成/更新

この役割は、AzureでVMを作成または更新します。

https://docs.ansible.com/ansible/latest/modules/azure_rm_virtualmachine_module.html

要件

Azure_rmモジュールが必要です
ansible >=2.8
Ansible 2.13.1でテスト済み

GalaxyからAzureコレクションをインストールする:

ansible-galaxy collection install azure.azcollection

コレクションからPythonの依存パッケージをインストールする

sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt

ユーザー定義の役割変数

#デフォルトの必須変数:
resource_group:
location:

# VM情報
vm:
  - name: # 一意のVM名
    size: # 例: "Standard_D4s_v3" # 作成するVMのサイズを定義
    offer: # 例: "RHEL" # OSとその提供会社を指定
    publisher: # 例: "RedHat" # イメージを公開した会社名
    sku_name: # 例: "7-RAW" # 使用されるOSの主なバージョン
    sku_version: # 例: "latest" # OSの特定のバージョン
    os_type: # 例: Windows, Linux
    managed_disk_type: # マネージドディスクのストレージタイプ: Standard_LRSまたはPremium_LRS。指定しない場合、ディスクはStandard_LRSで作成されます
    os_disk_caching: # OSディスクキャッシュのタイプ。デフォルトで'ReadOnly'に設定され、"ReadWrite"にもできます。デフォルトを望む場合は定義する必要はありません。
    os_disk_size_gb: # OSが載るディスクのサイズ。Windows 2012は最小127を必要とし、それ以下には設定できません。デフォルトを望む場合は定義する必要はありません。
    vm_username: # 例: "azureadmin"
    vm_password:  # パスワードを定義
    avset_name: # 必要であれば可用性セットを定義。そうでなければ無視されます
    nic_name: # 既存のNICの名前を入力
    pubip: # 公開IPを設定する場合は静的または動的に設定。デフォルトは無効です
    subnet_name: # VMを作成するためのサブネットの名前。複数存在でき、各VMごとに異なることもあります。VMモジュールは最初の既存サブネットがデフォルトです。

依存関係

ネットワークインターフェイス名を定義しない場合、リソースグループにネットワークがある限り、新しいものが作成されます。
(NICが既に存在している場合は、その名前を定義できます。)

例プレイブック

1つのプレイブックで複数のVMを作成

---
- name: Azureプレイブックで複数のVMを作成
  hosts: localhost

  pre_tasks:
    - name: 1つのリソースグループで複数のVMを作成
      set_fact:
        #デフォルトの必須変数
        resource_group: "MyRG"
        location: "canadacentral"

        #複数のVM入力のためのVM変数構造
        vm:
          - name: NewVM
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            managed_disk_type: Standard_LRS
            os_disk_size_gb: 150
            vm_username: "TempAdmin"
            vm_password:  "YouShouldntUseClearTextPasswords@!"
            avset_name: "myavset4"
            pubip: "static"

          - name: SecondGreatVm
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            managed_disk_type: Premium_LRS
            os_disk_size_gb: 200
            vm_username: "TempAdmin"
            vm_password:  "YouShouldntUseClearTextPasswords@!"
            avset_name: "myavset4"

          - name: MyThirdVM
            size: "Standard_DS2_v2"
            offer: "WindowsServer"
            publisher: "MicrosoftWindowsServer"
            sku_name: "2019-Datacenter"
            sku_version: "latest"
            os_type: "Windows"
            managed_disk_type: StandardSSD_LRS
            os_disk_size_gb: 200
            vm_username: "TempAdmin"
            vm_password:  "YouShouldntUseClearTextPasswords@!"
            avset_name: "windowsAVset"

  connection: local
  roles:
    - azure-virtualmachine

既存のNICを使用してVMを作成

---
- name: Azureプレイブックで複数のVMを作成
  hosts: localhost

  pre_tasks:
    - name: 既存のNICを使用してVMを作成し、OSディスクキャッシングタイプを指定
      set_fact:
        #デフォルトの必須変数
        resource_group: "MyRG"
        location: "canadacentral"

        #VM入力のためのVM変数構造
        vm:
          - name: NewVM
            size: "Standard_D4s_v3"
            offer: "RHEL"
            publisher: "RedHat"
            sku_name: "7-RAW"
            sku_version: "latest"
            os_type: Linux
            os_disk_caching: "ReadOnly"
            managed_disk_type: Standard_LRS
            os_disk_size_gb: 150
            vm_username: "TempAdmin"
            vm_password:  "YouShouldntUseClearTextPasswords@!"
            avset_name: "myavset4"
            nic_name: "oldnic2019"
  connection: local
  roles:
    - azure-virtualmachine

ライセンス

MIT

著者情報

Adam Brassard: IRCでAbrass

プロジェクトについて

A role to create multiple VMs in Azure

インストール
ansible-galaxy install adambrassard.azure_virtualmachine
ライセンス
mit
ダウンロード
88
所有者