如何使用ansible的剧本设置默认路径?
我已经开始使用ansible来配置我的虚拟机。但对于应用剧本,我使用完整的路径。如何设置ansible的默认剧本路径?这不是ansible的问题,更像bash 您可以将别名添加到如何使用ansible的剧本设置默认路径?,ansible,ansible-playbook,Ansible,Ansible Playbook,我已经开始使用ansible来配置我的虚拟机。但对于应用剧本,我使用完整的路径。如何设置ansible的默认剧本路径?这不是ansible的问题,更像bash 您可以将别名添加到.bash\u配置文件中,如下所示: alias ansible-pb=anspb anspb() { ANS_DIR=/home/foo/playbook; echo "Changing to $ANS_DIR and executing: ansible-playbook $@" (cd $ANS_DIR
.bash\u配置文件中,如下所示:
alias ansible-pb=anspb
anspb() {
ANS_DIR=/home/foo/playbook;
echo "Changing to $ANS_DIR and executing: ansible-playbook $@"
(cd $ANS_DIR; ansible-playbook $@)
}
然后只需调用ansible pb bar.yml
来调用一个子shell,该子shell将更改为ansu DIR
目录,并将所有参数传递给ansible playbook
。。。此功能已添加到ansible 2.9中
PLAYBOOK_DIR:
name: playbook dir override for non-playbook CLIs (ala --playbook-dir)
version_added: "2.9"
description:
- A number of non-playbook CLIs have a ``--playbook-dir`` argument; this sets the default value for it.
env: [{name: ANSIBLE_PLAYBOOK_DIR}]
ini: [{key: playbook_dir, section: defaults}]
type: path
请参阅:ansible playbook
与大多数其他工具一样,使用当前目录作为搜索路径。你的用例是什么?我在目录/home/foo/playbook
中有剧本。如果我在任何其他目录下,将ansible playbook bar.yml放入ansible,在/home/foo/playbook
中找到bar.yml
,并应用它。但这会更改当前目录。我不想改变它。但是,如果存储pwd
命令输出,并在执行ansible playbook
后返回,则可能工作正常。@Tutunak否,这使用子shell,因此cd
不会更改当前外壳的目录,那么我如何确切地使用此设置?在my/home/Ashark/.ansible.cfg中,我已经编写了playbook\u dir=/home/Ashark/Development/ansible/playbooks/
,但是ansible playbook在没有指定完整路径的情况下仍然找不到playbook。在这里发现了相同的问题:此设置只是为查找角色/文件/的位置设置相对目录,除非它在当前的工作目录中,否则您必须始终指定剧本的完整路径。