Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ansible的剧本设置默认路径?_Ansible_Ansible Playbook - Fatal编程技术网

如何使用ansible的剧本设置默认路径?

如何使用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

我已经开始使用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; 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。在这里发现了相同的问题:此设置只是为查找角色/文件/的位置设置相对目录,除非它在当前的工作目录中,否则您必须始终指定剧本的完整路径。