获得价值不确定的错误
问题描述:
我有这个剧本获得价值不确定的错误
---
- hosts: all
handlers:
- name: user-create
user: name=oracle state=present
tasks:
- name: "check user"
command: /usr/bin/id oracle
register: output
notify: user-create
when: output.rc == 1
但每当我在哪里oracle用户是不存在的,遇到了此问题
“失败”的系统上运行以下命令: true, “msg”:“条件检查'output.rc == 1'失败。错误是:评估条件时发生错误(output.rc == 1):'output'未定义\ n \ n错误似乎是已经在'/user-check.yml'中:第10行第5列,但可能在文件中的其他地方取决于确切的语法问题。\ n \ n违规l INE似乎是:\ n \ n任务:\ n - 名称:\ “检查用户\” \ n ^这里\ n”个
答
回答基于评论:
其实我wanto检查如果用户存在,ID存在删除并重新创建用户
正确的方法做,在Ansible是:
---
- hosts: all
tasks:
- name: ensure user 'oracle' does not exist
user: name=oracle state=absent
- name: ensure user 'oracle' exists
user: name=oracle state=present
而这一切。
Ansible注意不要尝试创建一个用户,如果它已经存在;而不是试图删除一个用户,如果没有。
当任务执行前评估**语句时**,**任务执行后**输出变量填充**。你的目标是什么? –
Hello Konstantin, 我的目标是检查oracle用户是否存在,删除它并重新创建用户。这就是为什么我注册的输出,然后如果rc是1,通知处理程序.Ps指导我如何实现相同的 – achak01
您的要求是不幂等,它会删除/创建用户每个剧本运行。这是不好的模式。看看@ techraf的答案。如果你想总是重新创建用户,只需要添加'state = absent'任务。 –