引导打包程序创建的DigitalOcean映像时未设置主机名

时间:2016-01-14 00:11:01

标签: debian vagrant digital-ocean packer

我有一个非常简单的配置,可以从DigitalOcean的Debian 8图像生成图像:

{
  "builders": [
    {
      "type": "digitalocean",
      "image": "debian-8-x64",
      "region": "nyc3",
      "size": "512mb",
      "snapshot_name": "debian-8-x64-with-sudo-{{timestamp}}"
    }
  ],
  "provisioners": [
    {
      "type": "shell",
      "inline": [
        "apt-get update",
        "apt-get install -y sudo"
      ]
    }
  ]
}

当我启动实例时,运行hostname提供:

封隔器5694292c-AFBF-6df6-06e2-304624c76287

运行hostname -f会产生以下错误消息:

hostname: Name or service not known

但是,查看/etc/hosts/etc/hostname表示服务器应该具有我在Vagrantfile中指定的主机名:

macmini-test-ae179a2c3b6a274e1c024fa3aee47b99cb234f5967a7c50b4db47119f4e1fda5

如何修复hostname -f错误以使FQDN错误消失?我无法弄清楚packer-5694292c-afbf-6df6-06e2-304624c76287主机名在系统上的位置。我知道那是打包过程中使用的打包机,但我现在不确定它在系统中的位置。

2 个答案:

答案 0 :(得分:1)

Vagrant可能正在填充/ etc / hostname和/ etc / hosts文件,但有些东西需要运行hostname -s才能在框运行时实际设置它:

root@vagrant-ubuntu-trusty-64:~# echo coolhostyo > /etc/hostname
root@vagrant-ubuntu-trusty-64:~# hostname
vagrant-ubuntu-trusty-64
root@vagrant-ubuntu-trusty-64:~#

答案 1 :(得分:1)

我的主机名无效,因为它太长了。引用维基百科:

  

每个标签的长度必须介于1到63个字符之间

https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names