在ansible中获取值未定义的错误

时间:2017-10-12 06:53:44

标签: ansible

我有这个剧本

---
- 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用户的系统上运行它时,遇到此错误

  

"失败":是的,       " msg":"条件检查" output.rc == 1'失败。错误是:评估条件时出错(output.rc == 1):'输出'未定义\ n \ n错误似乎出现在' /user-check.yml' ;:第10行第5列,但可能在文件的其他位置,具体取决于确切的语法问题。\ n \ n违规行似乎是:\ n \ n任务:\ n - 名称:\"检查用户\" \ n ^ here \ n"

1 个答案:

答案 0 :(得分:0)

根据评论回答:

  

实际上我想检查用户是否存在,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注意不要尝试创建已存在的用户;如果没有用户,请不要尝试删除用户。