首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在salt-cloud profile deploy上指定静态IP

在salt-cloud profile deploy上指定静态IP
EN

Stack Overflow用户
提问于 2016-07-17 20:09:47
回答 0查看 1.2K关注 0票数 1

我已经设置了一个新的salt主机,并尝试使用模板中的静态I(没有可用的dhcp )自动部署新虚拟机。

我可以通过定义了默认IP的云配置文件使用我的模板来部署虚拟机,但我找不到一种方法来覆盖IP地址,以便在部署时动态使用,我希望将主机名/ip传递到cli调用中,或者通过salt-api,这样我就可以从其他应用程序启动。

我尝试将IP作为动态的支柱数据传递到一个状态,这会配置虚拟机主机名ok,但无法看到如何将IP传递到配置文件中,因为配置文件conf不接受支柱变量。

代码语言:javascript
复制
salt-call state.apply vm-new pillar='{"hostname": "salt-test", "ip": "172.0.0.11"}'

vm-new.sls

代码语言:javascript
复制
{{ pillar['hostname'] }}:
  cloud.profile:
    - name: {{ pillar['hostname'] }}
    - profile: centos7

cloud.profiles.d/centos7.conf

代码语言:javascript
复制
...
  devices:
    network:
      Network adapter 1:
        name: 'VM Network'
        switch_type: standard
        ip: 172.0.0.90
        subnet_mask: 255.255.255.0
        gateway: [172.0.0.1]
...

然后,我尝试使用地图文件,但尝试传递柱数据似乎不起作用。

代码语言:javascript
复制
# salt-cloud -m cloud.maps.d/centos7.map pillar='{"hostname": 'salt-test', "ip": "172.0.0.11"}'
[ERROR   ] Rendering exception occurred: Jinja variable 'salt.utils.context.NamespacedDictWrapper object' has no attribute 'hostname'
[ERROR   ] Rendering map cloud.maps.d/centos7.map failed, render error:
Jinja variable 'salt.utils.context.NamespacedDictWrapper object' has no attribute 'hostname'
No nodes defined in this map

centos7.map

代码语言:javascript
复制
    centos7:
  - {{ pillar['hostname'] }}:
      devices:
        network:
          Network adapter 1:
            ip: {{ pillar['ip'] }}

我花了一段时间挖掘文档和github的问题,但有几个人试图做类似的事情,但在地图文件中硬编码的in解决了他们的问题,有没有可能做我想做的事情?对于下一步该往哪里看,有什么建议/建议吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38421034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档