Cluster Installation CentOS 7.4 Network Problems

Home » CentOS » Cluster Installation CentOS 7.4 Network Problems
CentOS No Comments

Hi there,

after using Foreman successful on our clusters for more than a year. I’d like to reinstall a 90 node cluster with CentOS 7.4. It’s now running on CentOS 7.3 . I’m not able to just update to 7.4 because of zfsonlinux dependencies and well – some nodes died and had to bare metal install them.

So I was able to install these nodes successfully by pxe-booting and using a regular CentOS mirror with foreman and kickstart. After the final reboot the nodes got no network connection at all and puppet wasn’t able to pull of course. After logging in locally and restart NetworkManager the connection came up – sometimes on the first try sometimes on the second try. I never discovered such behavior with CentOS 7.3 or 7.2.

Network properties:

DHCP, MTU 9000

DHCP-Server not Foreman managed, on different network

TFTP-Server Foreman managed, on different network

I’ve read one thread on stackexchange which describes a simular problem using a kickstart installation and dhcp network configuration on CentOS 7.4

Does any body of you discovered similar problems?

This is what my provisioning template / kickstart template looks like:

install url –url
lang en_US.UTF-8
selinux –enforcing keyboard de skipx

network –bootproto dhcp –hostname
–device=somemacaddress rootpw –iscrypted foo firewall –service=ssh authconfig –useshadow –passalgo=SHA256 –kickstart timezone –utc Europe/Berlin services –disabled gpm,sendmail,cups,pcmcia,isdn,rawdevices,hpoj,bluetooth,openibd,avahi-daemon,avahi-dnsconfd,hidd,hplip,pcscd

bootloader –location=mbr –append=”nofb quiet splash=quiet”

zerombr clearpart –initlabel –all ignoredisk –only-use=sda part biosboot –size 1 –fstype=biosboot –asprimary part / –fstype=xfs –size=20480 –asprimary –ondisk=sda part swap –size=131072 –ondisk=sda part /var/log –fstype=xfs –size=10240 –ondisk=sda part /home –fstype=xfs –size=10240 –grow –ondisk=sda

text reboot

%packages yum dhclient ntp wget
@Core redhat-lsb-core

%post –nochroot exec < /dev/tty3 > /dev/tty3
#changing to VT 3 so that we can see whats going on….
/usr/bin/chvt 3
cp -va /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
/usr/bin/chvt 1
) 2>&1 | tee /mnt/sysimage/root/install.postnochroot.log
%post logger “Starting anaconda postinstall”
exec < /dev/tty3 > /dev/tty3
#changing to VT 3 so that we can see whats going on….
/usr/bin/chvt 3

#update local time echo “updating system time”
/usr/sbin/ntpdate -sub
/usr/sbin/hwclock –systohc

# Yum proxy echo ‘proxy =’ >> /etc/yum.conf

rpm -Uvh –httpproxy –httpport 3128

# update all the base packages from the updates repository if [ -f /usr/bin/dnf ]; then
dnf -y update else
yum -t -y update fi

# SSH keys setup snippet for Remote Execution plugin
# Parameters:
# remote_execution_ssh_keys: public keys to be put in ~/.ssh/authorized_keys
# remote_execution_ssh_user: user for which remote_execution_ssh_keys will be
# authorized
# remote_execution_create_user: create user if it not already existing
# remote_execution_effective_user_method: method to switch from SSH user to
# effective user
# This template sets up SSH keys in any host so that as long as your public
# SSH key is in remote_execution_ssh_keys, you can SSH into a host. This only
# works in combination with Remote Execution plugin.

# The Remote Execution plugin queries smart proxies to build the
# remote_execution_ssh_keys array which is then made available to this template
# via the host’s parameters. There is currently no way of supplying this
# parameter manually.
# See for details.

rpm -Uvh –httpproxy –httpport 3128

if [ -f /usr/bin/dnf ]; then
dnf -y install puppet-agent else
yum -t -y install puppet-agent fi

cat > /etc/puppetlabs/puppet/puppet.conf << EOF [main] vardir = /opt/puppetlabs/puppet/cache logdir = /var/log/puppetlabs/puppet rundir = /var/run/puppetlabs ssldir = /etc/puppetlabs/puppet/ssl [agent] pluginsync = true report = true ignoreschedules = true ca_server = certname = environment = production server = EOF puppet_unit=puppet /usr/bin/systemctl list-unit-files | grep -q puppetagent && puppet_unit=puppetagent /usr/bin/systemctl enable ${puppet_unit} /sbin/chkconfig --level 345 puppet on # export a custom fact called 'is_installer' to allow detection of the installer environment in Puppet modules export FACTER_is_installer=true # passing a non-existent tag like "no_such_tag" to the puppet agent only initializes the node /opt/puppetlabs/bin/puppet agent --config /etc/puppetlabs/puppet/puppet.conf --onetime --tags no_such_tag --server --no-daemonize sync # Inform the build system that we are done. echo "Informing Foreman that we are built" wget -q -O /dev/null --no-check-certificate ) 2>&1 | tee /root/ exit 0


Thanks in advance for your suggestions.



Vadim Bulst

Universit├Ąt Leipzig / URZ
04109 Leipzig, Augustusplatz 10

phone: +49-341-97-33380