adambrassard.azure_virtualmachine

在 Azure 中创建/更新虚拟机

此角色用于在 Azure 中创建/更新虚拟机。

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:
  - name: # 唯一虚拟机名称
    size: # 示例:“Standard_D4s_v3” # 定义要创建的虚拟机的大小
    offer: # 示例:“RHEL” # 定义操作系统的特定版本及支持它的公司
    publisher: # 示例:“RedHat” # 发布镜像的公司名称
    sku_name: # 示例:“7-RAW” # 将使用的操作系统主要版本
    sku_version: # 示例:“latest” # 操作系统的特定版本
    os_type: # 示例:Windows, Linux
    managed_disk_type: # 管理磁盘的存储类型:Standard_LRS 或 Premium_LRS。如果未指定,磁盘将创建为 Standard_LRS
    os_disk_caching: # 操作系统磁盘缓存类型。默认设置为“ReadOnly”,也可以为“ReadWrite”。如果希望使用默认值,则无需定义。
    os_disk_size_gb: # 操作系统磁盘的大小,Windows 2012 最小要求 127,并且不允许更改为更小。如果希望使用默认值,则无需定义。
    vm_username: # 示例:“azureadmin”
    vm_password:  # 定义密码
    avset_name: # 如果需要,定义可用性集合,否则将被忽略
    nic_name: # 输入现有网络接口的名称
    pubip: # 如果需要公共 IP,则设置为静态或动态,默认值为禁用
    subnet_name: # 创建虚拟机的子网名称,每个虚拟机可以有多个不同的子网。虚拟机模块默认使用现有的第一个子网。

依赖项

如果您未定义网络接口名称,它将在资源组中创建一个,只要存在网络。
如果 NIC 之前已存在,您可以定义它的名称。

示例剧本

在一个剧本中创建多个虚拟机

---
- name: Azure 剧本创建多个虚拟机
  hosts: localhost

  pre_tasks:
    - name:  1 个资源组中创建多个虚拟机
      set_fact:
        # 默认必需变量
        resource_group: "MyRG"
        location: "canadacentral"

        # 多个虚拟机输入的虚拟机变量结构
        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

使用现有网络接口创建虚拟机

---
- name: Azure 剧本创建多个虚拟机
  hosts: localhost

  pre_tasks:
    - name: 使用现有网络接口和指定操作系统磁盘缓存类型创建虚拟机
      set_fact:
        # 默认必需变量
        resource_group: "MyRG"
        location: "canadacentral"

        # 虚拟机输入的虚拟机变量结构
        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
拥有者