首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >set_fact语法

set_fact语法
EN

Server Fault用户
提问于 2020-03-10 13:31:26
回答 1查看 383关注 0票数 0

我有我的可供选择的库存文件如下:

代码语言:javascript
复制
[dev_web:children]
dev_www
dev_auto

[dev_www]
web01_dev    ansible_host=web01-dev.company.com
web02_dev    ansible_host=web02-dev.company.com
web03_dev    ansible_host=web03-dev.company.com

[dev_auto]
auto_dev     ansible_host=auto-dev.company.com

"/deploys/patch.yml“为:

代码语言:javascript
复制
- name: patch
  hosts: "{{ configs_target | default('test_servers') }}"
  serial: 1
  vars:
    slack_token: 'slack-token'
    slack_channel: 'slack-channel'
  roles:
    - patch

主脚本文件“/部署/角色/修补程序/任务/main.yml”如下:

代码语言:javascript
复制
---
- name: Include vars of patch.yml
  include_vars:
    file: backend_vars.yml
    name: web_servers

- name: set needed facts
  set_fact:
    backend_name: "{{ [cache_mgmt][configs_target]['backend_name'] }}"

变量文件“/部署/角色/修补程序/vars/后端_vars.yml”为:

代码语言:javascript
复制
cache_mgmt:
  dev_web:
    backend_name: www_http_be
    backend_hosts: dev_www
  dit_web:
    backend_name: www_http_be
    backend_hosts: dit_www

我执行的run命令是:

脚本/部署/patch.yml -e‘{“configs_target”:“dev_web”}

当我运行剧本时,我希望变量的值是backend_name: www_http_be。但是,如果出现以下错误,就会失败。

代码语言:javascript
复制
TASK [patch : set needed facts] *****************************************************************************************
fatal: [web01_dev]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'list object' has no attribute 'dev_web'\n\nThe error appears to be in '/deploys/roles/patch/tasks/main.yml': line , column , but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: set needed facts\n  ^ here\n"}

我认为问题在于set_fact的语法。如果是这样的话,在这种情况下,正确的形式应该是什么?

EN

回答 1

Server Fault用户

发布于 2020-03-12 06:07:11

因为vars是从变量文件中调用的,所以我们还必须提到指定的名称。正确的语法是"{{ web_servers['cache_mgmt'][configs_target]['backend_name'] }}"

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1006351

复制
相关文章

相似问题

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