首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ansible_facts上的未定义变量

ansible_facts上的未定义变量
EN

Stack Overflow用户
提问于 2022-10-08 15:06:09
回答 2查看 58关注 0票数 -1

我正试图等待服务开始,然后继续我的剧本。我正在使用下面的文档作为起点。不管我用什么服务来测试这一点,我总是收到相同的错误消息。我尝试在调试输出和相同输出中输入不同的知名服务。我已经打印出了整个ansible_facts.services,并验证了我想要运行的服务就在那里。我遗漏了什么?

https://sleeplessbeastie.eu/2022/01/12/how-to-wait-until-service-is-running-inside-ansible-playbook/

失败!'/Users/jolim/Documents/Ansible/roles/rke2/tasks/main.yml':{"msg":“任务包含一个带有未定义变量的选项。错误是:'dict对象‘没有属性’rke2-server‘\n\n该错误出现在’/Users/jolim/Documents/Ansible/roles/rke2/tasks/main.yml‘:行139,第7列中,但可能\n在文件的其他地方,这取决于具体的语法问题。\n\n错误行显示为:\n\n-名称:服务转储在这里\n”}

代码语言:javascript
复制
- name: "Wait until rke2-server service is running"
  ansible.builtin.service_facts:
  register: temp__service_facts
  # until: temp__service_facts.ansible_facts.services.rke2-server.state == 'running'
  # retries: 10
  # delay: 6

- name: services dump
  debug:
    msg:  "{{ temp__service_facts.ansible_facts.services['rke2-server'].state }}"

rke2-server所在的服务的输出是:

代码语言:javascript
复制
"rke2-agent.service": {
    "name": "rke2-agent.service",
    "source": "systemd",
    "state": "stopped",
    "status": "disabled"
},
"rke2-server.service": {
    "name": "rke2-server.service",
    "source": "systemd",
    "state": "running",
    "status": "enabled"
}, 
EN

回答 2

Stack Overflow用户

发布于 2022-10-08 15:18:06

当你写这个时:

代码语言:javascript
复制
msg:  "{{ temp__service_facts.ansible_facts.services[ssh] | to_nice_json }}"

您正在尝试使用名为temp__service_facts.ansible_facts.services的变量的值在ssh字典中查找值。没有这样的变量,所以您可以将'ssh定义为“error”。

若要引用文字字符串,请将其放在引号中:

代码语言:javascript
复制
msg:  "{{ temp__service_facts.ansible_facts.services['ssh'] | to_nice_json }}"

或者继续使用点表示法isntead:

代码语言:javascript
复制
msg:  "{{ temp__service_facts.ansible_facts.services.ssh | to_nice_json }}"

这两个语法是等价的。

票数 1
EN

Stack Overflow用户

发布于 2022-10-08 21:17:25

发现了问题。看来rke2服务器名为rke2-server.service,因此我必须使用(services['rke2-server.service'])才能使它工作。

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

https://stackoverflow.com/questions/73998058

复制
相关文章

相似问题

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