gpt4 book ai didi

linux - 使用另一个运行 Ansible 的 Vagrant Linux VM 来配置 Vagrant Linux VM

转载 作者:IT王子 更新时间:2023-10-29 01:05:33 25 4
gpt4 key购买 nike

我知道 Ansible 在 Windows 上运行有问题。这就是为什么,我想避免将它用于我的主机。我想提供一个在 VirtualBox 中运行的本地 linux 虚拟机。

我想知道是否有人可以告诉我是否可以使用 vagrant 在同一个盒子上启动两个独立的虚拟机。然后在其中一个虚拟机上安装 Ansible,然后使用 SSH 登录到该虚拟机。从那里,使用带有 Ansible 的 Linux VM 作为主机,供应另一个通过 Windows 主机创建的 Linux VM。所以,这不是虚拟机中的虚拟机。它只是两个使用 vagrant 在 Windows 上运行的虚拟机,然后通过 SSH 连接到其中一个虚拟机以使用 Ansible 来配置另一个虚拟机。

步骤:

  1. Vagrant VM 1 并安装 Ansible
  2. Vangrant 虚拟机 2
  3. SSH 到虚拟机 1
  4. 使用 Ansible 使用 VM 1 配置 VM 2。

可以吗?对不起,如果这听起来令人困惑。

最佳答案

现在有一个 new Ansible local provisionerVagrant 1.8.0 ,您可以在场景中使用它。

特别是,查看文档的“提示和技巧”部分,有一个确切的解决方案(对我有用)。

下面是我针对这种情况的 Vagrantfile(与文档中的略有不同),它还解决了 ssh 权限和“可执行” list 文件(如果您使用的是 Cygwin)的潜在问题:

Vagrant.configure(2) do |config|
config.vm.synced_folder "./", "/vagrant",
owner: "vagrant",
mount_options: ["dmode=775,fmode=600"]

config.vm.define "vm2" do |machine|
machine.vm.box = "box-cutter/ubuntu1404-desktop"
machine.vm.network "private_network", ip: "172.17.177.21"
end

config.vm.define 'vm1' do |machine|
machine.vm.box = "ubuntu/trusty64"
machine.vm.network "private_network", ip: "172.17.177.11"

machine.vm.provision :ansible_local do |ansible|
ansible.provisioning_path = "/vagrant"
ansible.playbook = "provisioning/playbook.yml"
ansible.limit = "vm2"
ansible.inventory_path = "inventory"
ansible.verbose = "vvv"
ansible.install = true
end
end
end

和 list 文件:

vm1 ansible_connection=local
vm2 ansible_ssh_host=172.17.177.21 ansible_ssh_private_key_file=/vagrant/.vagrant/machines/vm2/virtualbox/private_key

关于linux - 使用另一个运行 Ansible 的 Vagrant Linux VM 来配置 Vagrant Linux VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33416134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com