# CoreOS baremetal server installation
Jan 16, 2017 2 minute readCoreOS is a lightweight Linux distribution designed specifically to run containers. Unfortunately its installation on baremetal servers is not as streamlined as other Linux distributions. These are the steps I took to install CoreOS on a couple of physical machines.
Prerequisites
-
Generate a
cloud-config.yml
filecat > cloud-config.yaml <<EOL #cloud-config ssh-authorized-keys: - `cat id_rsa.pub` EOL
This
cloud-config.yaml
can be reused to provision multiple computers -
Copy the
cloud-config.yaml
file to a flash drive
Additionalcloud-config.yaml
help
Prepare the installation
-
Connect the computer to the LAN
-
Boot up from the CD
-
Wait until a command prompt appears
More information on the CoreOS installation to disk
Copy the cloud-config.yaml
into the server
-
Plug in the flash drive with the
cloud-config.yaml
-
List the physical disks
lsblk
-
Determine what is the first partition of the USB drive. In this example we’ll use
/dev/sdb1
where/dev/sdb
is the physical device -
Copy the
cloud-config.yaml
sudo su - root mkdir ~/flash mount -o ro /dev/sdb1 ~/flash cp ~/flash/cloud-config.yaml ~/ umount /dev/sdb1 rm -Rf ~/flash
-
Unplug the flash drive
Run the installation
coreos-install -d /dev/sda -c ~/cloud-config.yaml
reboot
At this point the server should boot up using DHCP. Its console will display its IP
and MAC
address.
Remote into the server
ssh
into the box using your private RSA key
ssh -i id_rsa [email protected]
Success!
BONUS: Configure the network to use a static IP
-
List the Network Interfaces
ifconfig
-
Determine the name of the Ethernet Adapter. In this example we’ll use
eno1
-
Execute the following commands using the appropriate values for your network
sudo su - root cat > /etc/systemd/network/static.network <<EOL [Match] Name=eno1 [Network] Address=192.168.1.10/24 Gateway=192.168.1.1 DNS=8.8.8.8 EOL reboot
At this point the server should boot up using the new IP
.