Open iameru opened 7 months ago
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.
debian
debian.server.server-loggers.local
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.
vm[: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.
:hostname => "debian.server.server-loggers.local",
:hostname => "bla.debian.server.server-loggers.local",
bla
I have a bunch of VMs defined and a Vagrantfile like this:
the hostname ends up being
debian
in this case and notdebian.server.server-loggers.local
what it is supposed to be.Debug output
There is some debug Info I deemed interesting.
so it clearly catches the string from
vm[:hostname]
but does not use it for setting the hostname.Vagrant 2.4.0
switch
:hostname => "debian.server.server-loggers.local",
to:hostname => "bla.debian.server.server-loggers.local",
makes the hostname bebla
.