流浪汉,centos,dhclient的问题

时间:2015-03-08 15:04:07

标签: linux centos vagrant

我遇到问题,centos dhclient脚本会覆盖我的/etc/resolv.conf文件。

我正在使用带有流浪汉的centos7图像1.7.2

我有一个非常简单的设置,这是我的VagrantFile

config.vm.define "puppetmaster" do |pm|

    ## Map the local puppet configuration to the puppetmaster
    pm.vm.synced_folder "./puppetmaster", "/etc/puppet"



    pm.vm.provision "puppet" do |puppet|

        puppet.manifests_path = ["vm", "/etc/puppet/manifests"]
        puppet.manifest_file = "site.pp"

    end

    pm.vm.box = "puppetlabs/centos-7.0-64-puppet"
    pm.vm.network "private_network", ip: "192.168.2.2"

    ## Enable the GUI
    pm.vm.provider :virtualbox do |v|
            v.gui = true
            v.name = "mattlab-puppetmaster"
            v.customize ["modifyvm", :id, "--memory",2048]
            v.customize ["modifyvm", :id, "--cpus",4]
    end

end

正如您所看到的,我只配置了一个网络单一界面,并且它有一些静态设置。

我知道Vagrant还有一个内部接口,用于通信。这似乎是使用DHCP选择IP(虽然我不确定它来自何处)。

我知道有一个dhcp接口会触发dhclient脚本来覆盖resolv.conf。

由于这个盒子将是一个puppetmaster和DNS服务器,我需要找到一种方法来禁用vagrant dhcp接口

我的界面看起来像

[root@puppetmaster dhcp]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
    valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:19:cd:16 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
    valid_lft 81995sec preferred_lft 81995sec
    inet6 fe80::a00:27ff:fe19:cd16/64 scope link 
    valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:85:18:83 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.2/24 brd 192.168.2.255 scope global enp0s8
    valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe85:1883/64 scope link 
    valid_lft forever preferred_lft forever
  1. 仍允许我通过命令行与vagrant ssh
  2. 连接
  3. 允许vagrant使用我的静态192.168.2.2地址而不是dhcp地址。
  4. 这听起来有可能吗?

    非常感谢提前。

2 个答案:

答案 0 :(得分:1)

好的,回答了我自己的问题。

dhclient-script生成新的/etc/resolv.conf时,它会查找名为make_resolv_conf()的函数。

将以下内容放入/etc/dhcp/dhclient-enter-hooks并使其可执行,它将停止覆盖它。

make_resolv_conf() {
    # Do not overwrite /etc/resolv.conf.
    return 0
}

由于

马特

答案 1 :(得分:0)

我在Centos7下解决。希望对您有帮助。

ifcfg-eth0中(在我的情况下)设置为PEERDNS="yes"。更改为PEERDNS="no"不能解决问题。但是

PEERDNS="no"
export PEERDNS

ifup ifcfg-eth0

工作了!我怀疑这是dhclient-script或其调用者中的错误。