【问题标题】:Problems with vagrant, centos, dhclientvagrant、centos、dhclient 的问题
【发布时间】:2015-05-09 18:38:33
【问题描述】:

我有一个问题,centos dhclient 脚本一直覆盖我的 /etc/resolv.conf 文件。

我正在使用带有 vagrant 1.7.2 的 centos7 图像

我有一个非常简单的设置,这是我的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. 允许 vagrant 使用我的静态 192.168.2.2 地址而不是 dhcp 地址。

这听起来可能吗?

非常感谢。

【问题讨论】:

    标签: linux centos vagrant


    【解决方案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
    }
    

    谢谢

    马特

    【讨论】:

      【解决方案2】:

      我在Centos7 中解决了。希望对你有帮助。

      ifcfg-eth0(在我的例子中)它被设置为PEERDNS="yes"。更改为PEERDNS="no" 并不能解决问题。但是

      PEERDNS="no"
      export PEERDNS
      
      ifup ifcfg-eth0
      

      确实有效!我怀疑这是 dhclient-script 或其调用者中的错误。

      【讨论】:

        猜你喜欢
        • 2015-09-24
        • 2015-10-17
        • 1970-01-01
        • 2014-03-28
        • 2014-06-05
        • 1970-01-01
        • 1970-01-01
        • 2014-06-16
        • 1970-01-01
        相关资源
        最近更新 更多