vagrant
vagrant copied to clipboard
hostname does not get set correctly, seperated by dot
I have a bunch of VMs defined and a Vagrantfile like this:
# -*- mode: ruby -*-
# vi: set ft=ruby :
local_vms = [
{
:name => "logger-server-debian",
:hostname => "debian.server.server-loggers.local",
:box => "generic/debian12",
:ip => "192.168.47.22",
},
# imagine more config like this
]
Vagrant.configure("2") do |config|
config.vm.provider "libvirt" do |v|
v.memory = 1024
v.cpus = 1
end
local_vms.each do |vm|
config.vm.define vm[:name] do |v|
v.vm.hostname = vm[:hostname]
v.vm.box = vm[:box]
v.vm.network "private_network", ip: vm[:ip]
end
end
end
the hostname ends up being debian
in this case and not debian.server.server-loggers.local
what it is supposed to be.
Debug output
There is some debug Info I deemed interesting.
INFO ssh: Execute: # Set the hostname
echo 'debian' > /etc/hostname
# Update mailname
echo 'debian.server.server-loggers.local' > /etc/mailname
so it clearly catches the string from vm[:hostname]
but does not use it for setting the hostname.
INFO interface: info: Setting hostname...
INFO interface: info: ==> logger-server-debian: Setting hostname...
==> logger-server-debian: Setting hostname...
DEBUG ssh: Checking whether SSH is ready...
DEBUG ssh: Re-using SSH connection.
INFO ssh: SSH is ready!
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: (sudo=false)
DEBUG ssh: stderr: 41e57d38-b4f7-4e46-9c38-13873d338b86-vagrant-ssh
DEBUG ssh: Exit status: 0
DEBUG guest: Searching for cap: change_host_name
DEBUG guest: Checking in: debian
DEBUG guest: Found cap: change_host_name in debian
INFO guest: Execute capability: change_host_name [#<Vagrant::Machine: logger-server-debian (VagrantPlugins::ProviderLibvirt::Provider)>, "debian.server.server-loggers.local"] (debian)
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: hostname -f | grep '^debian.server.server-loggers.local$' (sudo=false)
DEBUG ssh: stderr: 41e57d38-b4f7-4e46-9c38-13873d338b86-vagrant-ssh
DEBUG ssh: Exit status: 1
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: grep -w 'debian.server.server-loggers.local' /etc/hosts || {
for i in 1 2 3 4 5; do
grep -w "127.0.${i}.1" /etc/hosts || {
echo "127.0.${i}.1 debian.server.server-loggers.local debian" >> /etc/hosts
break
}
done
}
(sudo=true)
DEBUG ssh: stderr: 41e57d38-b4f7-4e46-9c38-13873d338b86-vagrant-ssh
DEBUG ssh: Exit status: 0
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: # Set the hostname
echo 'debian' > /etc/hostname
# Update mailname
echo 'debian.server.server-loggers.local' > /etc/mailname
(sudo=true)
DEBUG ssh: stderr: 41e57d38-b4f7-4e46-9c38-13873d338b86-vagrant-ssh
DEBUG ssh: Exit status: 0
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: command -v hostnamectl && hostnamectl (sudo=false)
DEBUG ssh: stderr: 41e57d38-b4f7-4e46-9c38-13873d338b86-vagrant-ssh
DEBUG ssh: Exit status: 0
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: hostnamectl set-hostname 'debian' (sudo=true)
DEBUG ssh: stderr: 41e57d38-b4f7-4e46-9c38-13873d338b86-vagrant-ssh
Vagrant 2.4.0
switch :hostname => "debian.server.server-loggers.local",
to :hostname => "bla.debian.server.server-loggers.local",
makes the hostname be bla
.