我所有的剧本都在/etc/ansible/剧本里,我想在pc上的任何地方执行它们
我尝试在playbook_dir中配置ansible.cfg变量
[defaults]
playbook_dir = /etc/ansible/playbooks/并尝试将ANSIBLE_PLAYBOOK_DIR变量放入~/..bashrc中。
export ANSIBLE_PLAYBOOK_DIR=/etc/ansible/playbooks/但在这两种情况下,我只得到了相同的错误:
nor@nor:~$ ansible-playbook test3.yaml
ERROR! the playbook: test3.yaml could not be found这是我的ansible版本:
ansible 2.9.7
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/nor/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.7/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.7.3 (default, Oct 7 2019, 12:56:13) [GCC 8.3.0]有人知道这个问题以及如何解决吗?
发布于 2020-05-12 21:17:20
正如其他人所说的,ANSIBLE_PLAYBOOK_DIR用于设置角色/、文件/等的相对目录,它并不十分有用。
如果我理解了op,这就是我如何实现与所有版本的ansible相似的结果.
PPWD=$PWD cd /my/playbook/dir && ansible-playbook my_playbook.yml; cd $PPWD解释过,
PPWD=$PWD是记住当前/当前/上一个工作目录,然后是cd /my/playbook/dir,如果成功,运行ansible-playbook my_playbook.yml (所有内容都是相对的);无论如何,始终更改回以前的工作目录。
发布于 2020-05-09 12:22:44
根据https://manpages.debian.org/testing/ansible/ansible-inventory.1.en.html的说法:
-剧本-dir 'BASEDIR‘ 因为这个工具不使用剧本,所以使用它作为一个次要的剧本,directory.This设置了许多特性的相对路径,包括角色/ group_vars/等等。
这意味着ANSIBLE_PLAYBOOK_DIR不被用作指定到您的剧本的绝对/相对路径的替代,但是它告诉剧本它应该在哪里查找角色、主机/组vars等等。
您想要达到的目标是在ansible方面没有解决方案,您需要相应地配置您的shell配置文件来实现这一点。在.bashrc文件中设置以下内容:
export playbooks_dir=/path/to/playbooks当您调用剧本时,请使用ansible-playbook $playbooks_dir/test3.yml
https://stackoverflow.com/questions/61677294
复制相似问题