首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法访问本地主机旁边的主机

无法访问本地主机旁边的主机
EN

Stack Overflow用户
提问于 2017-03-11 03:57:35
回答 1查看 260关注 0票数 0

我是自学习ansible,并在下面的文件结构与我的定制ansible.cfg和库存文件:

代码语言:javascript
运行
复制
---ansible (Folder)   <---Working level
   ---ansible.cfg (Customized cfg)
   ---dev (Inventory File)
   ---playbooks (Folder) <--Issue level
      ---hostname.yml

ansible.cfg

代码语言:javascript
运行
复制
[defaults]
inventory=./dev

dev

代码语言:javascript
运行
复制
[loadbalancer]
lb01

[webserver]
app01
app02

[database]
db01

[control]
control ansible_connection=localansible

hostname.yml

代码语言:javascript
运行
复制
---
  - hosts: all
    tasks:
      - name: get server hostname
        command: hostname

我的问题是,当我在ansible-playbook playbooks/hostname.yml级别上运行ansible (Folder)时,一切正常。

代码语言:javascript
运行
复制
PLAY [all] *********************************************************************

TASK [setup] *******************************************************************
ok: [control]
ok: [app01]
ok: [db01]
ok: [lb01]
ok: [app02]

TASK [get server hostname] *****************************************************
changed: [db01]
changed: [app01]
changed: [app02]
changed: [lb01]
changed: [control]

PLAY RECAP *********************************************************************
app01                      : ok=2    changed=1    unreachable=0    failed=0   
app02                      : ok=2    changed=1    unreachable=0    failed=0   
control                    : ok=2    changed=1    unreachable=0    failed=0   
db01                       : ok=2    changed=1    unreachable=0    failed=0   
lb01                       : ok=2    changed=1    unreachable=0    failed=0

但是,当我进入剧本文件夹并运行ansible-playbook hostname.yml时,它会给我警告说

代码语言:javascript
运行
复制
[WARNING]: provided hosts list is empty, only localhost is available


PLAY RECAP *********************************************************************

有什么东西可以阻止剧本访问库存文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-11 04:20:24

Ansible在搜索配置文件ansible.cfg时不遍历父目录。如果要使用自定义配置文件,则需要将其放置在当前目录中,然后从该目录运行可执行文件,或定义指向该文件的环境变量ANSIBLE_CONFIG

在您的示例中:将目录更改为ansible并执行是正确的方法:

代码语言:javascript
运行
复制
ansible-playbook playbooks/hostname.yml

我不知道您从哪里得到的想法: Ansible将检查父目录中的配置文件-- 文档是明确的:

可以在配置文件中进行并使用更改,该配置文件将按以下顺序处理:

  • ANSIBLE_CONFIG (环境变量)
  • ansible.cfg (在当前目录中)
  • .ansible.cfg (在主目录中)
  • /etc/ansible/ansible.cfg
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42731172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档