How to Install and Configure Cobbler on CentOS 7.x

Channel: Linux
Abstract: [[email protected] ~]# Step[[email protected] ~]# cobbler distro report --name=CentOS7-x86_64

Cobbler is a free and open source Linux provisioning server, it is used for unattended or automatic os installation on multiple systems simultaneously  over the network. Cobbler server makes use of services like DHCP, TFTP and DNS. In Cobbler OS installation is based on the Kickstart file and to start installation on clients or systems, one has to boot the systems via network or pxe and rest of things will be taken care by cobbler server.

In this article we will demonstrate how to install and configure Cobbler Server on CentOS 7.x

Refer the Following Steps for Cobbler Installation : Step:1 Enable the epel repository by running the following yum command
[[email protected] ~]# yum install epel-release
Step:2 Install Cobbler and its dependent packages

Run the following command from the terminal to install cobbler and its dependent packages.

[[email protected] ~]# yum install cobbler cobbler-web dnsmasq syslinux pykickstart xinetd -y
Step:3 Start the Cobbler and Web Server (httpd) Service

Execute the following systemctl commands to start and enable Cobbler and httpd service

[[email protected] ~]# systemctl start cobblerd ; systemctl enable cobblerd
[[email protected] ~]# systemctl start httpd ; systemctl enable httpd

In case SELinux is enable then set it in Permissive mode

[[email protected] ~]# setenforce 0

To make the SELinux in permissive mode permanently , set the following parameter in ‘/etc/sysconfig/selinux

SELINUX=permissive

In Case OS firewall is running then set the following firewall rules.

[[email protected] ~]# firewall-cmd --add-port=80/tcp --permanent
success
[[email protected] ~]# firewall-cmd --add-port=443/tcp --permanent
success
[[email protected] ~]# firewall-cmd --add-service=dhcp --permanent
success
[[email protected] ~]# firewall-cmd --add-port=69/tcp --permanent
success
[[email protected] ~]# firewall-cmd --add-port=69/udp --permanent
success
[[email protected] ~]# firewall-cmd --add-port=4011/udp --permanent
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#
Step:4 Access Cobbler Web Interface

As installation is completed so try to  Access the Cobbler from your web browser.

https://<IP-Address-or-Hostname-Cobbler-Server>/cobbler_web/

In my case IP address of Cobbler Server is 「172.168.10.5」, default User Name is ‘cobbler‘ and  password is ‘cobbler

Cobbler Installation part is completed and now configure it.

Refer the following Steps for Cobbler Configuration: Step:5 Edit the file /etc/cobbler/settings

Let’s generate the encrypted root password

[[email protected] ~]# openssl passwd -1
Password:
Verifying - Password:
$1$j9/aR8Et$uovwBsGM.cLGcwR.Nf7Qq0
 [[email protected] ~]#

Update this encrypted string in settings file ‘/etc/cobbler/settings‘ under the parameter ‘default_password_crypted‘ and also enable Cobbler’s DHCP, DNS,PXE and TFTP feature by changing the parameter  value from 0 to 1.

Specify the ip address of your TFTP server in ‘next_server’ parameter and Cobbler’s Server ip address in ‘server’ parameter.

[[email protected] ~]# vi /etc/cobbler/settings
-------------------------------------------------------
default_password_crypted: "$1$j9/aR8Et$uovwBsGM.cLGcwR.Nf7Qq0"
manage_dhcp: 1
manage_dns: 1
pxe_just_once: 1
next_server: 172.168.10.5
server: 172.168.10.5
--------------------------------------------------------
Step:6 Update ‘/etc/cobbler/dhcp.template’ and  ‘/etc/cobbler/dnsmasq.template’ file

Edit the file ‘/etc/cobbler/dhcp.template’ and update subnet for the dhcp server as per your setup

[[email protected] ~]# vi /etc/cobbler/dhcp.template 
-----------------------------------------------
subnet 172.168.10.0  netmask 255.255.255.0 {
     option routers             172.168.10.5;
     option domain-name-servers 172.168.10.5;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        172.168.10.80 172.168.10.140;
     default-lease-time         21700;
     max-lease-time             43100;
     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 {
                  filename "pxelinux.0";
          }
     } 
}
--------------------------------------------

Update the IP address range for pxe clients in the file ‘/etc/cobbler/dnsmasq.template’

[[email protected] ~]# vi /etc/cobbler/dnsmasq.template
dhcp-range=172.168.10.80,172.168.10.140

Restart the Cobbler and xinetd service and sync these changes to cobbler.

[[email protected] ~]# systemctl restart cobblerd
[[email protected] ~]# systemctl restart xinetd ; systemctl enable xinetd
[[email protected] ~]# cobbler check ; cobbler sync

Mount the ISO file and import its contents to cobbler.

Download or copy the ISO file of CentOS 7 and run the beneath commands to import  ISO to Cobbler

[[email protected] ~]# mkdir  /mnt/iso
[[email protected] ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso  /mnt/iso/
[[email protected] ~]# cobbler import --arch=x86_64 --path=/mnt/iso --name=CentOS7

Similarly you can import ISO files of other Linux flavors. In case if you are getting signature errors while importing, then run the below command to resolve the issue

[[email protected] ~]# cobbler signature update
Step:7 Verify the Distro list from command line and Cobbler Web Interface

Run the below command from the terminal to View the Distros list

[[email protected] ~]# cobbler distro list
   CentOS7-x86_64
[[email protected] ~]#

We can also view the distros list from Cobbler Web interface as well.

Login to the interface go to the Configuration Tab –> click on Distros

Distro report can be viewed from the command using below cobbler command:

[[email protected] ~]# cobbler distro report --name=CentOS7-x86_64
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://@@[email protected]@/cblr/links/CentOS7-x86_64'}
Management Classes             : []
OS Version                     : rhel7
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}
[[email protected] ~]#
Step:8 Create Kickstart File for CentOS 7

Let’s create a kickstart file for CentOS 7 with a name ‘CentOS7.ks‘, Default location of kickstart files is ‘/var/lib/cobbler/kickstarts

[[email protected] ~]# vi /var/lib/cobbler/kickstarts/CentOS7.ks

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use HTTP installation media
url --url="http://172.168.10.5/cblr/links/CentOS7-x86_64/"

# Root password
rootpw --iscrypted $1$j9/aR8Et$uovwBsGM.cLGcwR.Nf7Qq0

# 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

[[email protected] ~]#

Final step is to sync the updated profile to cobbler server using below cobbler command:

[[email protected] ~]# cobbler profile edit --name=CentOS7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7.ks
[[email protected] ~]# cobbler sync

Basic Configuration is completed now and boot the systems with pxe or network and do the installation testing.

Step:9 Boot the Clients with PXE

Boot the system with pxe on which you want to perform automatic os installation

 

Select the OS as CentOS7 and press enter.

Wow we can see that unattended OS installation has started.

That’s all , hope you have enjoyed installation and configuration steps of Cobbler ?

Ref From: linuxtechi

Related articles