我刚刚发现了Ansible,这太棒了!我写了一些很酷的剧本来管理我服务器上的0关机部署,但是我浪费了相当多的时间来等待事情的发生,因为我有时不得不与糟糕的互联网连接一起工作。所以我想,我也许可以在boot2docker上运行Ansible,但是没有成功。在做了一些简单的研究之后,我意识到它太笨拙了,它永远不会像我真正的Ubuntu服务器那样运行。所以在这里,我试图让它与瓦格兰特一起工作。
我想要实现像笔记本电脑> Ansible > Vagrant 这样的东西;不想从Vagrant运行游戏手册!
VagrantFile
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.ssh.forward_agent = true
end流浪汉ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "/Users/cesco/Code/vagrant/.vagrant/machines/default/virtualbox/private_key"
IdentitiesOnly yes
LogLevel FATAL
ForwardAgent yes多亏了一些这样的问题,我才能做到这一点:
$ vagrant ssh-config > vagrant-ssh
$ ssh -F vagrant-ssh default
$ vagrant@vagrant-ubuntu-trusty-64:~$但是每次我试着在流浪汉的盒子上运行“Ansible ping”的时候,我都会得到localhost | FAILED => SSH Error: Permission denied (publickey,password).。
不确定库存
[staging]
vagrant@localhost不可调配置
[ssh_connection]
ssh_args = -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-o PasswordAuthentication=no \
-o IdentityFile=/Users/cesco/.vagrant.d/insecure_private_key \
-o IdentitiesOnly=yes \
-o LogLevel=FATAL \
-p 2222如何将ssh文件转换为不可选配置?它在命令行上也不工作!
ssh -vvv vagrant@localhost -p 2222 -i /Users/cesco/.vagrant.d/insecure_private_key -o IdentitiesOnly=yes -o LogLevel=FATAL -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null发布于 2016-01-07 20:38:36
要使用带有和经典的ssh连接的迷航器,首先要向vagrant文件中添加另一个私有IP。
config.vm.network "private_network", ip: "192.168.1.2"重新加载实例
vagrant reload然后您可以使用私钥通过ssh进行连接。
ssh -vvv vagrant@192.168.1.2 -p 2222 -i /Users/cesco/.vagrant.d/insecure_private_key 这是最好的办法。
发布于 2016-01-08 10:45:03
你误会了。迷航插件不从流浪者运行,而是从本地框将SSHs放入迷航器中。这是要走的路,因为这意味着只要进行一些小的更改,就可以将目标对准远程主机。
要使它正常工作,需要将类似的内容添加到Vagrantfile中:
config.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/vagrant.yml"
ansible.sudo = true
ansible.ask_vault_pass = true # comment out if you don't need
ansible.verbose = 'vv' # comment out if you don't want
ansible.groups = {
"tag_Role_myrole" => ["myrole"]
}
ansible.extra_vars = {
role: "myrole"
}
end
# Set the name of the VM.
config.vm.define "myrole" do |myrole|
luigi.vm.hostname = "myrole"
end使用以下内容创建/更新ansible.cfg文件:
hostfile = ../.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory创建一个包含以下内容的hosts库存文件:
localhost=127.0.0.1 ansible_connection=local现在,vagrant up将弹出并提供实例,或者运行vagrant provision来提供一个正在运行的流浪者。
要直接针对你的流浪汉运行游戏手册,请使用:
ansible-playbook -u vagrant --private-key=~/.vagrant.d/insecure_private_key yourplaybook.ymlhttps://stackoverflow.com/questions/34655854
复制相似问题