首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible‘t Pull无法在“`template: validate="stat %s”“中找到文件

Ansible‘t Pull无法在“`template: validate="stat %s”“中找到文件
EN

Stack Overflow用户
提问于 2016-01-22 18:22:15
回答 1查看 638关注 0票数 0

template 指令的指令的步骤无法找到 %s**.**指定的文件

ansible-pull报告的“无此类文件”错误

代码语言:javascript
复制
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指令:

代码语言:javascript
复制
- 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 1.9.4或2.0.0.2 (Python2.7的Pip)中,并且只有在使用Ansible Pull时才会发生。手动签出存储库后,在本地运行ansible-playbook很好。

不幸的是,我无法用我创建的示例存储库在简单的情况下重现此错误。

未能用简单的测试用例再现错误:

代码语言:javascript
复制
$ 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

在上面简单的测试用例中不会失败的剧本:

代码语言:javascript
复制
---

- 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-pull在Ansible中创建和删除临时文件时,似乎在时间上可能会出现问题。

发生什么事了呢?

EN

回答 1

Stack Overflow用户

发布于 2016-01-24 15:44:48

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

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

https://stackoverflow.com/questions/34953459

复制
相关文章

相似问题

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