【发布时间】:2017-06-28 12:02:18
【问题描述】:
出于测试目的,我配置了 vagrant/virtualbox/ansible 的组合。
版本 >> Ansible : 2.3.1.0 |流浪者:1.9.5。
运行时:
vagrant provision
输出状态:
web1: Running provisioner: ansible...
web1: Running ansible-playbook...
PLAY [Install Apache]
**********************************************************
skipping: no hosts matched
PLAY RECAP
****************************************************************
配置文件下方:
流浪文件:
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.define "web1"
config.vm.network "private_network", type: "dhcp"
config.vm.network "forwarded_port", guest: 8040, host: 8090
config.vm.provider "virtualbox" do |vb|
vb.memory = "256"
config.vm.provision "ansible" do |ansible|
ansible.playbook = "provisioning/playbook.yml"
end
end
end
剧本:
---
- name: Install Apache
hosts: testclients
become_user: root
roles:
- apache
Andible 库存(/etc/ansible/hosts):
[testclients]
testclient3
检查成功
ansible -m ping testclients
testclient3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
奇怪的是,如果我将运行剧本本身(ansible-playbook playbook.yml),它会起作用,相反在 vagrant 内部它不会并返回“没有匹配的主机”。 任何帮助将不胜感激。
【问题讨论】:
-
你有自己的清单文件,但你没有指示 vagrant 使用它,在 ansible 块中添加 inventory_path 属性以及要使用的文件的路径
-
好的,感谢您的评论。我在 Vagrantfile 中添加了这两行: ansible.inventory_path = "provisioning/hosts" ansible.limit = "all" 。尝试重新运行 playbook 时,出现错误:TASK [Gathering Facts] ************************************ ************************ 致命:[testclient3]:无法访问! => {"changed": false, "msg": "无法通过 ssh 连接到主机:警告:将 'testclient3,192.168.111.111' (ECDSA) 永久添加到已知主机列表中。\r\n权限被拒绝 ( publickey,gssapi-keyex,gssapi-with-mic,password)。\r\n", "unreachable": true}
标签: vagrant