Ansible通过Ansible Pull找不到`template:validate =“stat%s”`中的文件

时间:2016-01-22 18:22:16

标签: ansible ansible-pull

通过Ansible Pull使用Ansible时,template指令的validate步骤无法找到%s指定的文件。

“{1}}

报告了”没有此类文件“错误
ansible-pull

有问题的TASK [ssh : place ssh config file] ********************************************* fatal: [localhost]: FAILED! => { "changed": true, "cmd": "sshd -t -f /home/nhooey/.ansible/tmp/ansible-tmp-1453485441.94-279324955743/source", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2 } 指令:

template

使用Ansible 1.9.4或2.0.0.2(Python 2.7的Pip)并且仅在使用Ansible Pull时才会发生这种情况。手动签出存储库后在本地运行- name: place ssh config file template: src: etc/ssh/sshd_config dest: /etc/ssh/sshd_config owner: root group: root mode: 0644 validate: 'sshd -t -f %s' 可以正常工作。

不幸的是,我无法使用我创建的示例存储库在重要案例中重现此错误。

无法通过简单的测试用例重现错误:

ansible-playbook

在上述简单测试用例中不会失败的Playbook:

$ virtualenv .venv && source .venv/bin/activate && pip install ansible
$ ansible-pull --directory /tmp/ansible-test \
    --url https://github.com/nhooey/ansible-pull-template-validate-bug.git playbook.yaml
Starting Ansible Pull at 2016-01-22 13:14:51
/Users/nhooey/git/github/nhooey/ansible-pull-template-validate-bug/.venv/bin/ansible-pull \
  --directory /tmp/ansible-test \
  --url https://github.com/nhooey/ansible-pull-template-validate-bug.git \
  playbook.yaml
localhost | SUCCESS => {
    "after": "07bb13992910e0efe30d071d5f5a2a2e88251045",
    "before": "07bb13992910e0efe30d071d5f5a2a2e88251045",
    "changed": false
}
 [WARNING]: provided hosts list is empty, only localhost is available

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [localhost]

TASK [Delete template file] ****************************************************
changed: [localhost]

TASK [Test template validation] ************************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=3    changed=2    unreachable=0    failed=0

--- - hosts: localhost tasks: - name: Delete template file file: path: /tmp/file state: absent - name: Test template validation template: src: file dest: /tmp/file validate: 'ls %s' 在Ansible中创建和删除临时文件的时间似乎存在问题。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

它说找不到sshd,因为它不在路径中。傻我......