【发布时间】:2017-09-06 14:36:21
【问题描述】:
我有the following Ansible role,它只是执行以下操作:
- 创建一个临时目录。
- 将服务器测试工具 Goss 下载到该临时目录中。
- 为测试上传一个主要的 Goss YAML 文件。
- 为其他包含的测试上传其他目录。
这是我使用它的几个地方:
具体来说,这些 playbook 会上传与 playbook 相邻的名为 goss.yml 的本地文件,以及与 playbook 相邻的目录 goss.d。
不幸的是,最近 Ansible 逻辑似乎发生了变化,导致我的测试无法按预期工作。我的角色附带一个默认的goss.yml,似乎当我在我的剧本中设置goss_file: goss.yml 时,它会上传degoss/files/goss.yml,而不是与我的剧本相邻的Goss 文件。
如果我将文件名传递给角色,有没有办法指定 Ansible 应在剧本或当前工作目录的上下文中查找文件?
不再起作用的实际角色逻辑是这样的:
# deploy test files including the main and additional test files
- name: deploy test files
copy: src={{ item }} dest={{ degoss_test_root }} mode=0644 directory_mode=0755 setype=user_tmp_t
with_items: "{{ [goss_file] + goss_addtl_files + goss_addtl_dirs }}"
changed_when: degoss_changed_when
我使用的是 Ansible 2.3.2.0,我可以跨发行版(即 CentOS 7、Ubuntu 14.04 和 Ubuntu 16.04)重现这一点。
【问题讨论】:
-
在文件名前加上
./? -
试过这个没用。
标签: ansible