Vagrant + Chef + Hostname

3

我刚开始使用Vagrant和Chef。我正在尝试使用Chef更改Vagrant镜像的主机名。但是,当我执行vagrant ssh命令时,却没有看到主机名发生改变。

我错过了什么?

这是我的Cheffile

site "http://community.opscode.com/api/v1"

cookbook 'apt'
cookbook 'build-essential'
cookbook 'hostname'

这是我的Vagrant文件

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # Use Ubuntu 14.04 Trusty Tahr 64-bit as our operating system
  config.vm.box = "ubuntu/trusty64"

  # Configurate the virtual machine to use 2GB of RAM
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end

  # Forward the Rails server default port to the host
  # config.vm.network :forwarded_port, guest: 3000, host: 3000

  # Use Chef Solo to provision our virtual machine
  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = ["cookbooks", "site-cookbooks"]

    chef.add_recipe "apt"
    chef.add_recipe "hostname"

    # Install Ruby 2.1.2 and Bundler
    # Set an empty root password for MySQL to make things simple
    chef.json = {
      hostname: {
        set_fqdn: 'Olympus'
      }
    }
  end
end

你执行了 vagrant provision 命令吗? - sethvargo
1个回答

2

根据文档的定义,您应该在节点级别设置属性,而不是在node['hostname']中设置。

在您的情况下,它将是

chef.json = {
  set_fqdn: 'Olympus'
}

您可以在主机名文档中找到更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接