首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过向playbook提供变量来访问dict中的变量

通过向playbook提供变量来访问dict中的变量
EN

Stack Overflow用户
提问于 2019-01-31 20:52:26
回答 1查看 36关注 0票数 0

我有以下结论:

代码语言:javascript
复制
webpaket:
  "001":
    projekt: "Test"
    domain: "testdomain.de"
    subdomain: "test"
    fqdn: "test.testdomain.de"
    serveradmin: "webmaster@testdomain.de"
    ip: "*"
    ssl: "true"
    password: "somepass"
    vhost: ""
    symfony: "true"
    localdb: "true"
    clusterdb: "false"
    localdb_pgsql: "false"

这是实战手册:

代码语言:javascript
复制
---
# file: webpaket-remove.yml
- hosts: all
  vars:
    removeweb: "{{ webpaket[webid] }}"
  roles:
    - { role: webpaket-remove, stage: 'dev' }

这是我们的任务:

代码语言:javascript
复制
---
    - name: Delete Web-Directory for {{ webid }}
      file: path=/test/{{ item.value }} state=absent
      with_dict: "{{removeweb}}"

我想通过向ansible playbook提供一个参数来访问其中的一个变量,如下所示:

代码语言:javascript
复制
ansible-playbook -l testserver.de --check --diff webpaket-remove.yml --extra-vars "webid=001"

当我运行它时,我得到这样的输出:

代码语言:javascript
复制
ok: [testserver.de] => (item={'key': 'projekt', 'value': 'Test'})
ok: [testserver.de] => (item={'key': 'domain', 'value': 'testdomain.de'})

如何访问键值?

如果我使用item.value.projekt,我会得到:"The task includes an option with an undefined variable. The error was: 'projekt' is undefined

itemprojekt也不起作用,我在这里没有想法了:/

EN

回答 1

Stack Overflow用户

发布于 2019-02-01 00:32:48

removeweb不是一个目录。项目应直接解决

代码语言:javascript
复制
- file:
    path: "/test/{{ removeweb['projekt'] }}"
    state: absent
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54461062

复制
相关文章

相似问题

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