Azure 部署多个VM';s与ansible

Azure 部署多个VM';s与ansible,azure,ansible,azure-vm,Azure,Ansible,Azure Vm,我正在学习ansible在azure上创建Linux虚拟机,我在这个链接()中使用了这个示例剧本在azure上创建了一个虚拟机。如果我想用ansible playbook部署10个VM,我应该怎么做?请帮忙。提前谢谢 更新:我试过这样做,但脚本在创建两个公共IP地址后失败 -名称:创建Azure虚拟机 主机:本地主机 连接:本地 任务: -名称:创建资源组以容纳VM azure\u rm\u资源组: 名称:TestingResource 地点:伊斯图 -名称:创建虚拟网络 azure\u rm\

我正在学习ansible在azure上创建Linux虚拟机,我在这个链接()中使用了这个示例剧本在azure上创建了一个虚拟机。如果我想用ansible playbook部署10个VM,我应该怎么做?请帮忙。提前谢谢

更新:我试过这样做,但脚本在创建两个公共IP地址后失败

-名称:创建Azure虚拟机
主机:本地主机
连接:本地
任务:
-名称:创建资源组以容纳VM
azure\u rm\u资源组:
名称:TestingResource
地点:伊斯图
-名称:创建虚拟网络
azure\u rm\u虚拟网络:
资源组:TestingResource
名称:testingvnet
地址前缀:“10.0.0.0/16”
-名称:添加子网
azure\u rm\u子网:
资源组:TestingResource
名称:测试子网
地址前缀:“10.0.1.0/24”
虚拟网络:测试vnet
-名称:创建公共IP地址
azure\u rm\u公共地址:
资源组:TestingResource
分配方法:静态
名称:{{item}}#在此处更改
循环:
-测试公共IP2
-测试公共IP3
寄存器:输出ip地址
#-名称:将要创建的VM的转储公共IP
#调试:
#msg:“公共IP是{{output_IP_address.state.IP_address}}。”
-名称:创建允许SSH的网络安全组
azure\u rm\u安全组:
资源组:TestingResource
名称:TestingSecurityGroup
规则:
-姓名:SSH
协议:Tcp
目的地\端口\范围:22
访问:允许
优先权:1001
方向:入境
-名称:创建虚拟网络接口卡
azure\u rm\u网络接口:
资源组:TestingResource
名称:{{item}}#在此处更改
循环:
-测试镍
-测试镍
虚拟网络:测试vnet
子网:测试子网
public_ip_name:“{{item}}”#在此处更改
循环:
-测试公共IP2
-测试公共IP3
安全组:TestingSecurityGroup
-名称:创建虚拟机
azure\u rm\u虚拟机:
资源组:TestingResource
名称:“{item}}”#在此处更改VM名称
循环:
-测试资源2
-测试资源3
vm_尺寸:标准_B2s
管理员\用户名:admin
管理员密码:password@123 
ssh\u密码\u已启用:true
网络接口:“{item}}”#此处更改
循环:
-测试镍
-测试镍
图片:
报价:UbuntuServer
出版商:Canonical
sku:'18.04-LTS'
版本:最新

您可以使用loops函数通过ansible创建多个VM,如问题中所示,但您最好使用一个列表变量来循环,这样就不必每次都写入所有元素。这些变量还可以用于代码中多次使用的其他内容,如资源组名称、位置等。以下是一个例子:

- hosts: localhost
  vars:
    resource_group: myResourceGroup
    ...
  tasks:
  - name: Create resource group to hold VM
    azure_rm_resourcegroup:
      name: "{{ resource_group }}"
      location: eastus
  ...
以及循环的变量:

loop: "{{ var_list }}"

我发现terraform很容易在azure上部署多个VM,只需更改配置文件中的一个变量,这是我使用的配置文件()

请向我们展示您已经尝试过的内容您可以使用,请参阅Hi@NancyXiong,在示例git playbook文件中有类似以下名称的变量:“{resource_group}”,那么playbook从哪里获得资源组的名称呢?或者我必须替换这些{{}括号内的内容吗?嗨@toydarian,我包括了关于这个问题的剧本,我已经尝试过更新了吗?它能解决你的问题吗?