Ssh Ansible&;流浪发展环境

Ssh Ansible&;流浪发展环境,ssh,vagrant,ansible,Ssh,Vagrant,Ansible,我刚刚发现了Ansible,它很棒!我已经写了一些很酷的剧本来管理服务器上的docker部署,但是我浪费了很多时间等待事情的发生,因为我有时不得不处理糟糕的internet连接。所以我想,我也许可以在boot2docker上运行Ansible,但没有成功,在做了一点小研究之后,我意识到它太黑客了,而且它的行为永远不会像我的实际Ubuntu服务器那样。所以在这里我想让它和流浪汉一起工作 我想买一个像笔记本电脑Ansible流浪汉盒子之类的东西;我可不想从流浪汉盒子里拿剧本 流浪汉档案 流浪ssh配

我刚刚发现了Ansible,它很棒!我已经写了一些很酷的剧本来管理服务器上的docker部署,但是我浪费了很多时间等待事情的发生,因为我有时不得不处理糟糕的internet连接。所以我想,我也许可以在boot2docker上运行Ansible,但没有成功,在做了一点小研究之后,我意识到它太黑客了,而且它的行为永远不会像我的实际Ubuntu服务器那样。所以在这里我想让它和流浪汉一起工作

我想买一个像笔记本电脑Ansible流浪汉盒子之类的东西;我可不想从流浪汉盒子里拿剧本

流浪汉档案 流浪ssh配置 多亏了一些这样的问题,我才能够做到这一点:

$ vagrant ssh-config > vagrant-ssh
$ ssh -F vagrant-ssh default
$ vagrant@vagrant-ubuntu-trusty-64:~$
但是每次我尝试在vagrant框上运行Ansible ping时,我都会得到
localhost | FAILED=>SSH错误:权限被拒绝(公钥、密码)。

可转帐存货 Ansible配置 如何将ssh文件转换为ansible配置? 它在命令行上也不起作用

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

要使用vagrant和经典ssh连接,请首先将另一个私有IP添加到vagrant文件中

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 

这是最好的办法

你误解了。vagrant ansible插件不会从vagrant运行ansible,而是从您的本地框向vagrant运行SSHs。这是一种方法,因为这意味着只需进行一些小的更改,就可以将目标锁定在远程主机上

要使其正常工作,您需要将以下内容添加到您的文件中:

  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
创建一个
主机
清单文件,其中包含:

localhost=127.0.0.1  ansible_connection=local
现在,
vagrant up
将启动并设置实例,或者运行
vagrant provision
以(重新)设置正在运行的vagrant

要直接针对您的流浪使用运行剧本,请执行以下操作:

ansible-playbook -u vagrant --private-key=~/.vagrant.d/insecure_private_key yourplaybook.yml

对不起,我不确定我是否很清楚你们想要达到什么目标,但流浪汉的帮助有可能吗?通过这种方式,您可以在Vagrant文件中定义剧本,Vagrant负责连接到机器并运行它们。我读过这篇文章,但它实际上是从Vagrant框中运行剧本的。A想在盒子上运行剧本来模拟我的真实服务器。比如笔记本电脑>流浪者>Ansible>任何地方。我想要笔记本电脑>Ansible>Vagrant我会编辑这个问题,让事情变得更清楚。如果你最终有了一个工作配置,我认为最好是你把它作为答案发布在这里,并接受它,以供将来可能会研究这个问题的人使用;)Vagrant将来宾端口22映射到主机上的端口2222,在尝试使用专用网络ip进行ssh时,不需要设置端口,因为它是默认的22。我正在尝试,但密码不匹配。我能够使用
ssh正确地获得它vagrant@localhost-p 2222-o UserKnownHostsFile=/dev/null-i/Users/cesco/.vagrant.d/unsecure_private_key
关于连接端口,您是对的。但如果您仍然使用localhost,则永远不会成功连接。设置专用IP并使用该IP。如果您有私钥,则不需要密码。
  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
hostfile = ../.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
localhost=127.0.0.1  ansible_connection=local
ansible-playbook -u vagrant --private-key=~/.vagrant.d/insecure_private_key yourplaybook.yml