Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 基于预定义清单创建OpenStack实例_Ansible_Openstack - Fatal编程技术网

Ansible 基于预定义清单创建OpenStack实例

Ansible 基于预定义清单创建OpenStack实例,ansible,openstack,Ansible,Openstack,我有一个Ansible脚本,可以创建OpenStack实例。每个istances都有相同的配置,唯一不同的是实例名称和实例ip(用作分配给此实例的浮动ip)。为了创建一个新实例,我在命令行中提供了这些变量 ansible剧本\ -i inventory.yml\ 角色/公共/任务/openstack-create.yml\ --额外vars“实例_ip=106.120.137.228实例_名称=dc云测试” 现在,我想基于清单创建这些实例: 实例名称应为主机别名 应从ansible\u ho

我有一个Ansible脚本,可以创建OpenStack实例。每个istances都有相同的配置,唯一不同的是
实例名称
实例ip
(用作分配给此实例的浮动ip)。为了创建一个新实例,我在命令行中提供了这些变量

ansible剧本\
-i inventory.yml\
角色/公共/任务/openstack-create.yml\
--额外vars“实例_ip=106.120.137.228实例_名称=dc云测试”
现在,我想基于清单创建这些实例:

  • 实例名称
    应为主机别名
  • 应从
    ansible\u host
    变量读取
    instance\u ip
我怎样才能做到这一点

这是我的Playbook:

-名称:创建新实例
主机:本地主机
变量:
实例启动卷:“{{instance\u name}}-boot-vol”
实例数据卷:“{{instance\u name}}-数据卷”
任务:
-名称:启动实例
openstack.cloud.server:
国家:现在
名称:dc云测试
启动卷:“{{instance\u boot\u vol}”
卷:“{{instance\u data\u vol}}”
终止卷:是
口味:nlp.pda
密钥\u名称:“{{openstack\u密钥对}”
安全组:默认值
浮动ip:“{{instance_ip}}”
验证证书:否

您的库存应该是这样的:

[mygroup]
dc云测试ansible_主机=127.0.0.1
你的剧本应该是这样的:

name:创建新实例
主机:本地主机
变量:
实例_boot_vol:“{{inventory_hostname}}-boot vol”
实例_data_vol:“{{inventory_hostname}}-数据卷”
任务:
-名称:启动实例
openstack.cloud.server:
国家:现在
名称:dc云测试
启动卷:“{{instance\u boot\u vol}”
卷:“{{instance\u data\u vol}}”
终止卷:是
口味:nlp.pda
密钥\u名称:“{{openstack\u密钥对}”
安全组:默认值
浮动IP:“{{ansible\u host}”

您应该检查:并且:我会更改openstack云服务器名称,仅当别名与服务器名称相同时才使用别名*我不知道您想要的确切结果。听起来我很喜欢。我从这里开始,最后在属于选定主机组的主机上循环:`-include_tasks:openstack-create.yml循环:“{groups['openstack']}”`