【问题标题】:Running an ansible playbook on localhost but referring to inventory's group_var在 localhost 上运行 ansible playbook 但引用库存的 group_var
【发布时间】:2019-01-08 05:59:46
【问题描述】:

我正在尝试在本地运行剧本,但我希望角色的 task/main.yml 文件中的所有 var 都引用特定清单文件中的 group_var。

不幸的是,playbook 无法访问 group_vars 目录,就好像无法识别角色中指定的变量一样。

运行的命令如下:

/usr/local/bin/ansible-playbook --connection=local /opt/ansible/playbooks/create.yml -i ./inventory-file

但是在inventory文件同级目录的/group_vars目录下找不到group_vars

fatal: [127.0.0.1]: FAILED! => {
    "msg": "The task includes an option with an undefined variable. The error was: 'admin_user_name' is undefined\n\nThe error appears to have been in '/opt/roles/create/tasks/main.yml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: create org\n  ^ here\n"
}

这是我的配置:

ansible-playbook 2.7.5
config file = /etc/ansible/ansible.cfg
configured module search path = ['/opt/ansible-modules']
  ansible python module location = /usr/local/lib/python3.6/dist-packages/ansible
executable location = /usr/local/bin/ansible-playbook
python version = 3.6.3 (default, Oct  3 2017, 21:45:48) [GCC 7.2.0]

感谢任何帮助。

谢谢, dom

【问题讨论】:

  • 您能否提供您的文件/目录结构以及库存主机文件的内容? group_vars 目录可以与 playbook 或库存文件位于同一目录中。由于您的连接是本地的,因此需要在清单文件中以“localhost”作为成员引用该组。

标签: ansible


【解决方案1】:

因此,理论上在清单中添加 localhost 会是一个很好的解决方案,但在我的特定情况下(通常用于大型部署)不是一个选项。

我还添加了--extra-vars "myvar.json",但也没有用。

事实证明(邪恶的细节......)通过命令行添加 var 文件的正确方法是:--extra-vars "@myvar.json"

在这里发布它是希望没有其他人为了找到这个解决方案而苦苦挣扎。

干杯, dom

【讨论】:

    【解决方案2】:

    根据错误,您的 ansible 无法读取 group_vars,请确保您的 group_vars 具有相同的名为 localhost 的文件夹。

    示例手册 主机是本地主机

    - hosts: localhost become: true roles: - { role: common, tags: [ 'common' ] } - { role: docker, tags: [ 'docker' ] }

    所以在 group_vars 中,它应该是 localhost 并且在 ma​​in.yml

    的那个文件夹文件中

    或者

    您可以在 group_vars 中创建一个名为 all 的文件夹,并创建一个名为 all.yml 的文件

    这应该可以解决问题

    【讨论】:

    • 是的,这是一个快速的解决方案,但遗憾的是无法扩展。
    • 没听懂,它如何与比例部分相关
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    相关资源
    最近更新 更多