我尝试使用ansible-pull和sync模块将文件从远程服务器同步到本地服务器。我使用ansible-pull失败,并显示“正在跳过:没有主机匹配”,但是当我将剧本文件复制到本地服务器并作为ansible-playbook运行时,它可以工作。
我的主机设置
localhost ansible_connection=local
[sync_server]
sync_1 ansible_host=11.22.33.44
剧本文件
---
- name: Sync Test
hosts: sync_server
tasks:
- name: Start Sync
synchronize:
mode: pull
src: /home/sourcefiles
dest: /home/syncfiles/
答案 0 :(得分:0)
没有更多细节(值得注意的是,您实际上正在执行的命令,或者至少是一个没有实际VCS存储库的经过修改的版本),看来您可能没有使用主机/清单文件来调用您的剧本指定,否则您的库存可能无法正确解析。
您可以运行ansible-inventory --graph
来查看已通过此清单“检测到”的主机的列表。您还应该检查ansible-config dump | grep DEFAULT_HOST_LIST
,以查看是否要指定库存路径。
如果问题所在是 ,则应尝试以下操作之一:
[defaults]
inventory = hosts
ansible-pull
开关(可以缩写为--inventory
)-i
,后跟清单文件的路径,例如:ansible-pull --inventory hosts --url http://example.org/my/vcs.git playbook.yml