How to Install and Configure Cobbler on CentOS 7.x

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

[root@cloudworld ~]# 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.

[root@cloudworld ~]# 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

[root@cloudworld ~]# systemctl start cobblerd ; systemctl enable cobblerd
[root@cloudworld ~]# systemctl start httpd ; systemctl enable httpd

In case SELinux is enable then set it in Permissive mode

[root@cloudworld ~]# setenforce 0

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


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

[root@cloudworld ~]# firewall-cmd --add-port=80/tcp --permanent
[root@cloudworld ~]# firewall-cmd --add-port=443/tcp --permanent
[root@cloudworld ~]# firewall-cmd --add-service=dhcp --permanent
[root@cloudworld ~]# firewall-cmd --add-port=69/tcp --permanent
[root@cloudworld ~]# firewall-cmd --add-port=69/udp --permanent
[root@cloudworld ~]# firewall-cmd --add-port=4011/udp --permanent
[root@cloudworld ~]# firewall-cmd --reload
[root@cloudworld ~]#

Step:4 Access Cobbler Web Interface

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


In my case IP address of Cobbler Server is “”, 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

[root@cloudworld ~]# openssl passwd -1
Verifying - Password:
 [root@cloudworld ~]#

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.

[root@cloudworld ~]# vi /etc/cobbler/settings
default_password_crypted: "$1$j9/aR8Et$uovwBsGM.cLGcwR.Nf7Qq0"
manage_dhcp: 1
manage_dns: 1
pxe_just_once: 1

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

[root@cloudworld ~]# vi /etc/cobbler/dhcp.template 
subnet  netmask {
     option routers   ;
     option domain-name-servers;
     option subnet-mask;
     range dynamic-bootp;
     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’

[root@cloudworld ~]# vi /etc/cobbler/dnsmasq.template

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

[root@cloudworld ~]# systemctl restart cobblerd
[root@cloudworld ~]# systemctl restart xinetd ; systemctl enable xinetd
[root@cloudworld ~]# 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

[root@cloudworld ~]# mkdir  /mnt/iso
[root@cloudworld ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso  /mnt/iso/
[root@cloudworld ~]# 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

[root@cloudworld ~]# 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

[root@cloudworld ~]# cobbler distro list
[root@cloudworld ~]#

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:

[root@cloudworld ~]# 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://@@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                 : {}
[root@cloudworld ~]#

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

[root@cloudworld ~]# vi /var/lib/cobbler/kickstarts/CentOS7.ks

#platform=x86, AMD64, or Intel EM64T
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
# Use HTTP installation media
url --url=""

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

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

# Reboot after installation

# System authorization information
auth useshadow passalgo=sha512

# Use graphical install

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


%addon com_redhat_kdump --disable --reserve-mb='auto'

[root@cloudworld ~]#

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

[root@cloudworld ~]# cobbler profile edit --name=CentOS7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7.ks
[root@cloudworld ~]# 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 🙂

3 thoughts on “How to Install and Configure Cobbler on CentOS 7.x”

  1. you need to enable /etc/cobbler/modules.conf
    #module = manage_bind
    module = manage_dnsmasq

    #module = manage_isc
    module = manage_dnsmasq


Leave a Comment