vagrant设置重复的IP地址;Ansible把它们捡起来了?
我有以下vagrant设置重复的IP地址;Ansible把它们捡起来了?,vagrant,ansible,vagrantfile,Vagrant,Ansible,Vagrantfile,我有以下vagrant文件: # -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" NUM_HOSTS = 3 def hostname(id) "node#{id}" end Vagrant.configure(VAGRANTFILE_A
vagrant文件
:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
NUM_HOSTS = 3
def hostname(id)
"node#{id}"
end
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "chef/centos-7.0"
config.ssh.forward_agent = true
config.ssh.insert_key = false
config.vm.provider :virtualbox do |vb|
vb.gui = false
vb.memory = 512
vb.cpus = 1
end
config.vm.provision "ansible" do |ansible|
ansible.playbook = "vagrant_playbook.yml"
ansible.groups = {
"vagrant" => (1..NUM_HOSTS).collect { |id| hostname(id) }
}
end
NUM_HOSTS.times do |n|
id = n + 1
config.vm.define hostname(id), primary: id == 1 do |host|
host.vm.network :private_network, ip: "10.0.33.1#{id}"
end
end
end
这将在enp0s8
上分配专用地址。但是,它在enp0s3
:10.0.2.15
上分配重复的IP地址。不幸的是,Ansible似乎在Ansible\u default\u ipv4
中选择了重复的地址,而不是唯一的地址,因此在这些框上运行的服务无法正常工作。那么,有没有办法:
- 阻止流浪者分配重复IP?(如果有帮助,我正在使用virtualbox提供商)
- 更改ipv4使用的
ansible\u default\u接口
- 我没有想到要寻找的其他解决方案
{{ ansible_all_ipv4_addresses | last }}
如果保证目标框的ipv4地址始终按可预测的顺序排序,则可以正常工作。它可以正常工作,但风险很大:必须确保在所有环境中都有此功能。没有解决方案可以在vagrant中执行一个shell,该shell可以强制私有网络作为默认接口,但可以让internet连接正常工作?