远程主机上的ansible pull

远程主机上的ansible pull,ansible,ansible-pull,Ansible,Ansible Pull,我想在远程主机上运行playbook,playbook在github中。因此,我遵循了这一点,提出了回购协议 在repo中,我将hosts文件修改为我的服务器IP。运行时ansible pull veeru@carb0n:~/ansible-example$ ansible-pull -U https://github.com/veerendra2/ansible-pull-example -i hosts Starting Ansible Pull at 2019-06-26 16:26:30

我想在远程主机上运行playbook,playbook在github中。因此,我遵循了这一点,提出了回购协议

在repo中,我将
hosts
文件修改为我的服务器IP。运行时
ansible pull

veeru@carb0n:~/ansible-example$ ansible-pull -U https://github.com/veerendra2/ansible-pull-example -i hosts
Starting Ansible Pull at 2019-06-26 16:26:30
/usr/local/bin/ansible-pull -U https://github.com/veerendra2/ansible-pull-example -i hosts
 [WARNING]: Could not match supplied host pattern, ignoring: carb0n
ERROR! Specified hosts and/or --limit does not match any hosts
即使我指定了
-I hosts
参数,也不确定它为什么选择当前服务器名
carb0n

这是我的
主机
文件

[hydrogen]
10.250.30.11
local.yml

---
- hosts: all

  tasks:
  - name: install example application
    copy:
      src: ansible_test_app
      dest: /tmp/
      owner: root
      group: root
我已将
local.yml
更改为
hydrogen.yml
,但仍然得到相同的错误

即使我指定了-I hosts参数,也不确定它为什么选择当前服务器名carb0n

当然可以,因为ansiblepull设计用于与当前主机运行。如果您想在远程服务器上运行,那么您应该使用
ansible
ansible playbook
,然后您对主机列表和连接机制的说明将再次开始有意义


使用
ansible pull
是为不可能或极不希望连接到托管主机的情况而设计的。这可能是由于防火墙、安全策略或许多原因造成的。但是对于托管主机本身可以连接到什么,策略通常不那么严格,这就是为什么将配置拉到主机上会更容易。

谢谢您的回答。但是为什么清单
-i
有一个选项呢?直到看到您尝试使用它,我才知道有一个选项,但我的猜测是,您可以使用现有的动态清单机制来声明主机事实,因为清单做了几件事:组主机、定义连接机制、声明每主机事实,可能还有其他东西;当然,做所有这些事情都有非库存机制,但我想ansible希望变得灵活,即使冒着像你偶然发现的混淆组合的风险