×
Community Blog How to Install and Configure Cobbler on ECS CentOS 7

How to Install and Configure Cobbler on ECS CentOS 7

In this tutorial, we will learn how to install and configure Cobbler on an Alibaba Cloud Elastic Compute Service (ECS) CentOS 7 server.

By Hitesh Jethva, Alibaba Cloud Community Blog author.

Introduction

Cobbler is a free and open source Linux installation server that can be used to automate the network installation environments from a central location. It allows you to install operating systems automatically on multiple systems simultaneously and also helps you to manage package updates, configuration management, manage DNS, DHCP and much more.

In this tutorial, we will learn how to install and configure Cobbler on an Alibaba Cloud Elastic Compute Service (ECS) CentOS 7 server.

Prerequisites

  • A fresh Alibaba Cloud instance with CentOS 7 installed.
  • A static IP address 192.168.0.104 is setup to your instance.
  • A root password is set up to your instance.

Create a new ECS instance and connect to your instance as the root user.

Once you are logged into your CentOS 7 instance, run the following command to update your base system with the latest available packages.

yum update -y

Before starting, you will need to disable Selinux on the server. You can do this by editing /etc/selinux/config file:

nano /etc/selinux/config

Make the following changes:

SELINUX=disabled

Save and close the file. Then, restart your server to apply the changes.

Install Cobbler

By default, Cobbler is not available in the CentOS 7 default repository. So you will need to add EPEL repository to your server. You can add it with the following command:

yum install epel-release -y

Once the repository has been installed, you can install Cobbler with other required packages by running the following command:

yum install cobbler cobbler-web dnsmasq syslinux pykickstart xinetd fence-agents debmirror dhcp bind

Once all the packages are installed, start cobblered tftp rsyncd and httpd services and enable them to start on boot time with the following command:

systemctl start cobblerd
systemctl start tftp
systemctl start rsyncd
systemctl start httpd
systemctl enable cobblerd
systemctl enable tftp
systemctl enable rsyncd
systemctl enable httpd

Check the status of cobblerd service with the following command:

systemctl status cobblerd

You can also check the status of tftp service with the following command:

systemctl status tftp

You will need to edit tftp configuration file and make some changes. You can do this with the following command:

nano /etc/xinetd.d/tftp

Make the following changes:

disable = 0

Save and close the file, when you are finished.

Configure Cobbler

Cobbler default configuration file located at /etc/cobbler/settings. Before configuring Cobbler, you will need to generate encrypt password. You can do this with the following command:

openssl passwd -1

You should see the following output:

Password: 
Verifying - Password: 
$1$k/LlL8M0$2V8s/Yx6n6lqnHwGPlrPo1

Next, open /etc/cobbler/settings file with the following command:

nano /etc/cobbler/settings

Make the following changes:

default_password_crypted: "$1$k/LlL8M0$2V8s/Yx6n6lqnHwGPlrPo1"
manage_dhcp: 1
manage_dns: 1
pxe_just_once: 1
next_server: 192.168.0.104
server: 192.168.0.104

Save and close the file, when you are finished. Then, open /etc/cobbler/dhcp.template file:

nano /etc/cobbler/dhcp.template

Make the following changes:

subnet 192.168.0.0 netmask 255.255.0.0 {
     option routers             192.168.0.104;
     option domain-name-servers 192.168.0.104;
     option subnet-mask         255.255.0.0;
     range dynamic-bootp        192.168.0.150 192.168.1.254;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;
     class "pxeclients" {
          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
          if option pxe-system-type = 00:02 {
                  filename "ia64/elilo.efi";
          } else if option pxe-system-type = 00:06 {
                  filename "grub/grub-x86.efi";
          } else if option pxe-system-type = 00:07 {
                  filename "grub/grub-x86_64.efi";
          } else if option pxe-system-type = 00:09 {
                  filename "grub/grub-x86_64.efi";
          } else {
                  filename "pxelinux.0";
          }
     }

}

Save and close the file. Then, open /etc/cobbler/dnsmasq.template file:

nano /etc/cobbler/dnsmasq.template

Make the following changes:

dhcp-range=192.168.0.150,192.168.0.254

Save and close the file. Then, download all the loaders with the following command:

cobbler get-loaders

You should see "TASK COMPLETE" in the output.

Open the debmirror.conf file:

nano /etc/debmirror.conf

Make the following changes:

#@dists="sid";
#@arches="i386";

Save and close the file. Then, restart Cobblerd and xinetd with the following command:

systemctl restart xinetd
systemctl restart cobblerd

Sync all the changes to Cobbler with the following command:

cobbler check
cobbler sync

You should see "TASK COMPLETE" in the output.

Import ISO files to Cobbler server

You will need to copy CentOS-7 ISO file to your server and mount it on /mnt/iso directory.

First, create a directory with the following command:

mkdir  /mnt/iso

Next, mount the ISO file to /mnt/iso with the following command:

mount -o loop CentOS-7-x86_64-Minimal-1503-01.iso /mnt/iso/

Import the ISO contents to Cobbler with the following command:

cobbler import --arch=x86_64 --path=/mnt/iso --name=CentOS7

Update the signature with the following command:

cobbler signature update

You should see "TASK COMPLETE" in the output.

Verify Cobbler Distro List

You can verify the Cobbler distro list with the following command:

cobbler distro list

You should see your distro in the following output:

CentOS7-x86_64

You can also see a detailed report of your distro with the following command:

cobbler distro report --name=CentOS7-x86_64

You should see the following output:

Name                           : CentOS7-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        : 
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/CentOS7-x86_64/images/pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/CentOS7-x86_64/images/pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/CentOS7-x86_64'}
Management Classes             : []
OS Version                     : rhel7
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

Create Kickstart File for CentOS-7

Create a kickstart file for CentOS-7. You can do it with the following command:

nano /var/lib/cobbler/kickstarts/CentOS7.ks

Add the following lines:

# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use HTTP installation media
url --url="http://192.168.0.104/cblr/links/CentOS7-x86_64/"

# Root password
rootpw --iscrypted $1$k/LlL8M0$2V8s/Yx6n6lqnHwGPlrPo1

# Network information
network --bootproto=dhcp --device=eth0 --onboot=on

# Reboot after installation
reboot

# System authorization information
auth useshadow passalgo=sha512

# Use graphical install
graphical

firstboot disable

# System keyboard
keyboard us

# System language
lang en_US

# SELinux configuration
selinux disabled

# Installation logging level
logging level=info

# System timezone
timezone Europe/Amsterdam

# System bootloader configuration
bootloader location=mbr

clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=500
part pv.01 --size=1 --grow
volgroup root_vg01 pv.01
logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow

%packages
@^minimal
@core
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end

Save and close the file. Then, sync the updated profile to the Cobbler with the following command:

cobbler profile edit --name=CentOS7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7.ks
cobbler sync

You should see "TASK COMPLETE" in the output.

Install CentOS-7 on Client from Cobbler Server

Cobbler is now installed and configured, it's time to install CentOS-7 on the client machine from Cobbler server.

To do so, start Client machine open BIOS and enable boot from network. Then, save the BIOS settings and restart your machine. Your machine is now booting from CentOS-7 ISO located at Cobbler server. You should see the following page:

1

Select CentOS7 and press Enter to start the installation as shown in the following page:

2

0 0 0
Share on

Hiteshjethva

38 posts | 4 followers

You may also like

Comments

Hiteshjethva

38 posts | 4 followers

Related Products