![](/img/trans.png)
[英]Vagrant and Docker provider: a way to force proxy VM for Linux hosts?
[英]Provision Vagrant Linux VM with another Vagrant Linux VM running Ansible
我知道Ansible在Windows上運行有問題。 這就是為什么,我想避免將它用於我的主機。 我想配置一個在VirtualBox中運行的本地linux vm。
我想知道是否有人可以告訴我是否可能,使用vagrant在同一個盒子上調出兩個獨立的VM。 然后在其中一個VM上安裝Ansible,然后使用SSH登錄到該VM。 從那里,使用帶有Ansible的Linux VM作為主機,配置另一個通過Windows主機創建的Linux VM。 因此,這不是VM中的VM。 它只是使用vagrant在Windows上運行的兩個VM,然后通過SSH連接其中一個VM以使用Ansible來配置另一個VM。
腳步:
可以這樣做嗎? 對不起,如果這聽起來很混亂。
現在Vagrant 1.8.0中有一個新的Ansible本地配置器 ,您可以在您的場景中使用它。
特別是,請查看文檔的“提示和技巧”部分,有一個確切的解決方案(對我有用)。
下面是我的Vagrantfile這個場景(與文檔中的略有不同),它也解決了ssh權限和“可執行”庫存文件的潛在問題(如果你使用的是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
和庫存文件:
vm1 ansible_connection=local
vm2 ansible_ssh_host=172.17.177.21 ansible_ssh_private_key_file=/vagrant/.vagrant/machines/vm2/virtualbox/private_key
為了配置一個盒子你沒必要使用另一個盒子,在這個Windows場景中你可以簡單地編寫你的劇本,分享給你的客人並使用shell
配置用ansible-playbook
來點擊它。
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
$script = <<SCRIPT
sudo apt-get install -y software-properties-common
sudo apt-add-repository -y ppa:ansible/ansible
sudo apt-get update
sudo apt-get install -y ansible
ansible-playbook /home/vagrant/provisioning/playbook.yml
SCRIPT
config.vm.synced_folder "./provisioning", "/home/vagrant/provisioning"
config.vm.provision "shell", inline: $script
end
第一行將在您的盒子上獲得安全,然后它將定位您已分享到您的盒子的劇本並運行劇本。
這是一個例子,我曾經用這種方法來配置我工作的流浪盒,希望這個想法可以幫到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.