Welcome to the Linux Foundation Forum!

Boot Time Network Configuration

Hi,
I'm using an AWS EC2 CentOS 7.7.1908 (core) server for the LFS211 course. On the Boot Time Network Configuration, it says to test out nmcli and networkctl to see what is controlling the network devices.

Neither command was installed. After install NetworkManager and systemd-networkd, it verified that neither of those packages are controlling the devices.

How do I find out what is controlling those devices in AWS EC2 CentoOS 7?

Thanks,
Ryan

Comments

  • rahst12
    rahst12 Posts: 3

    The first line of my ifcfg-eth0:

    Created by cloud-init on instance boot automatically, do not edit.

  • lee42x
    lee42x Posts: 380

    Hello Ryan!
    There are a couple of items at work here, let's sort through them:

    "cloud-init" is a command/configuration/environment used by cloud providers (AWS) to prepare an image for use. It can set user id's, networking, ssh, etc ... all the customizations that are required to enable a generic operating system image to function in an environment. It is not unexpected to see some files created by cloud-init.

    "Neither systemd-networkd or NetworkManager are installed." In the historic versions of Linux distributions , the system initialization processing was controlled by "SYSV-init" scripts. One of these scripts is called "network" and its job was to initialize the network interfaces. These sysV-init scripts and network configuration were very different between distributions. It appears that ami-04a25c39dc7a8aebb, the CentOS7 image I selected to test with, indeed has the sysV-init "network" script for network configuration. This situation appears to be specific to AWS & CentOS7. I re-tested on AWS & RedHat8,"RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2 (ami-0b85d4ff00de6a225)" as there was no clear CentOS8 option, and NetworkManager is being used now. The normal install of CentOS7 and the Linux Foundation classroom VM's use NetworkManager. It is unclear if all of the AWS AMI's are using "sysV-init network" instead of "NetworkManager".

    "How to find out which environment is in control?" Since "nmcli" and "networkctl" were both missing, getting systemd to list all services with the word "network" seem like the next step:

    We can confirm that the service "network" was active. The command "systemctl status network.service" will provide additional information including the name of the program run "/etc/rc.d/init.d/network".

    I hope this helps, Lee

Categories

Upcoming Training