Ansible 错误处理

Ansible 错误处理

伙计们需要一个错误帮助,需要在服务器上运行一个远程脚本,但我收到以下错误。

我的剧本

- hosts: broken
  strategy: debug
  become: yes
  remote_user: snehal

  gather_facts: false

  tasks:
    - name: check if file exists
      stat: path=/test/check_authkey
      register: authkey_exists

    - name: copying CEPLIVE script
      copy:
        src: /home/snehal/Final_build_files/check_authkey
        dest: /home/snehal/
      when: not authkey_exists.stat.exists

    - name: run  script
      command: /home/snehal/check_authkey.sh
      when: not authkey_exists.stat.exists

这个错误是什么意思?如何检查失败的原因?

PLAY [broken] ******************************************************************************************************************************************************

TASK [check if file exists] ****************************************************************************************************************************************
ok: [MOD009293]
ok: [MOD007479]

TASK [copying CEPLIVE script] **************************************************************************************************************************************
skipping: [MOD007479]
ok: [MOD009293]

TASK [run CEPLIVE script] ******************************************************************************************************************************************
skipping: [MOD007479]
fatal: [MOD009293]: FAILED! => {"changed": true, "cmd": ["/home/snehal/check_authkey.sh"], "delta": "0:00:00.033337", "end": "2019-01-22 17:33:05.279549", "failed": true, "rc": 1, "start": "2019-01-22 17:33:05.246212", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
        to retry, use: --limit @/home/snehal/ansible/ceplive.retry

PLAY RECAP *********************************************************************************************************************************************************
MOD007479                  : ok=1    changed=0    unreachable=0    failed=0
MOD009293                  : ok=2    changed=0    unreachable=0    failed=1

答案1

您的错误意味着您的脚本/home/snehal/Final_build_files/check_authkey正在运行并以 的值退出1。由于您没有共享该脚本。我不知道它为什么会以该值退出。

如果您/home/snehal/Final_build_files/check_authkey ; echo $?在远程手动运行会发生什么?

如果退出代码不是错误,您可以failed_when为该任务设置一个选项,其中包含描述什么是失败和什么不是失败的条件。

如果失败,您可能需要调试脚本。特别是查看引用环境的任何内容。您通过 ansible 获得的 shell 可能设置了不同的 PATH,或者设置了不同的其他变量。

相关内容