【发布时间】:2018-11-26 21:37:49
【问题描述】:
One of my Ansible roles 允许用户对目标主机执行一组测试,将影响降至最低,并删除测试的所有痕迹。
其中一个令人惊讶的难以确定的事情是运行 playbook 的主机上的绝对路径。为copy 解析文件似乎真的很复杂,Ansible 有一个尝试解析文件的优先级列表。
作为测试失败时发出的调试信息的一部分,我想指定文件在本地主机上的绝对路径和文件在远程主机上的绝对路径。远程主机很容易查询,但我似乎无法找到一种方法来确定本地主机上源文件的来源。
这是我的任务:
- copy: src={{ goss_file }} dest=/tmp/goss/ mode=0644
goss_file 由用户指定为角色变量。我想做的是在针对远程主机运行 Ansible 的本地计算机上确定 goss_file 的完整绝对路径。
有没有办法做到这一点?这将显着帮助我进行调试。
【问题讨论】:
-
用户是否从 playbook 目录运行 playbook,以便可以针对
{{ playbook_dir }}解析任何相对路径? -
如果用户像
../../../../myfiletocopy一样输入你想输出绝对路径?您可以在localhost上运行readlink命令并使用调试模块输出
标签: ansible