provisioning machines with cobbler gslug 20080913
TRANSCRIPT
![Page 1: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/1.jpg)
Voice · Data · Managed Services
.
Speakeasy Inc. – A Best Buy Company
![Page 2: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/2.jpg)
Provisioning machines with Cobbler
Garrett HoneycuttPresented at GSLUGSeptember 13th 2008
![Page 3: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/3.jpg)
What is Cobbler?
Cobbler is an integrated solution for provisioning OS's on Linux systems
RedHat (Fedora, RHEL) focusedWorks with SuSE and even Debian to a limited degreeCan be used to install images (windows, firmware, etc)
Can manage DHCP, TFTP, and now DNSMultiple interfaces
CLIWeb GUIXMLRPCPython API
![Page 4: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/4.jpg)
Why?
ScalabilityUsing a CD is time consumingPopping a CD into a machine into a machine to which you do not have physical access is problematic
RepeatabilityConsistently build identical machines
Get your own software repository runningAvoid describing the same thing in multiple places
Sure you could do this yourself by manually editing entries in the /tftpboot tree and dhcpd.conf – but that way lies madness
![Page 5: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/5.jpg)
Installation
Use EPELhttp://fedoraproject.org/wiki/EPEL
Source RPM'shttp://people.fedoraproject.org/~mdehaan/files/cobbler/
check out the source with GIT# git clone git://git.fedorahosted.org/cobbler
![Page 6: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/6.jpg)
Hierarchy
Distros
Profiles
Systems
![Page 7: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/7.jpg)
Hierarchy with options
Distroskernel & initrd locationsarchitecture (i386, x86_64, ia64)breed (RedHat based, Debian, SuSE)
Profileskickstart file locationkickstart metadata – variables you can pass to kickstartall of the above
SystemshostnameIP infoMACall of the above
![Page 8: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/8.jpg)
Repo's
Mirror an existing repo# cobbler repo add --mirror=http://mirrors.kernel.org/fedora/core/updates/6/i386/ --name=fc6i386updates# cobbler reposync
We will use this in our kickstart later
![Page 9: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/9.jpg)
Importing Distros
ISO# mount -o loop rhel5.iso /mnt# cobbler import –mirror=/mnt –name=rhel5
From DVD# cobbler import --mirror=/media/dvd –name=rhel5
rsync from a mirror# cobbler import --mirror=rsync://foo.org/path –name=rhel5
NFS – Does not mirror content# cobbler import --mirror=/path/nfsmount --name=filer --available-as=nfs://nfs.foo.org:/path
![Page 10: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/10.jpg)
Profiles
kernel optionsserial console=ttyS1,9600
kickstart metadata – variables you can use in your kickstart
uses Cheetah - a python powered template engineksmeta=eth_device='eth0' rhel_key='c0ffee' rhn_passwd='passwd' rhn_user='spkfoo'
![Page 11: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/11.jpg)
Kickstart config
Easy way to get a working kickstart configinstall by hand and check out /root/anaconda-ks.cfg
Show an example...
![Page 12: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/12.jpg)
Systems
HostnameMACIP InfoYum repo
Probably a bad idea – use profiles for thissystem specific kernel options and kickstart metadata
Probably a bad idea – use profiles for this
![Page 13: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/13.jpg)
Triggers
add, delete, install, syncpre/post for eachCan use the Cobbler API or any executable script/programSimple example:
/var/lib/cobbler/triggers/add/system/post/test.sh
#!/bin/bashecho "Hi, my name is $1 and I'm a newly added system"
![Page 14: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/14.jpg)
Example Trigger using API#!/usr/bin/python
import os
import sys
from cobbler import api
cobbler_api = api.BootAPI()
# this is the systemname, not the hostname, so be sure to use the FQDN in the systemname
machine = sys.argv[1]
# location of getcert.sh script
getcert_cmd = "/usr/local/sbin/getcert.sh"
# set return code to 0 by default
rc = 0
# build the command string
cmd = getcert_cmd + " " + machine
# log to cobbler's logs
cobbler_api.log("running - " + cmd)
# run the command and set the return code
rc = os.system(cmd)
# exit with return code
sys.exit(rc)
![Page 15: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/15.jpg)
/etc/cobbler
dhcp.templatesettings
Show examples...
![Page 16: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/16.jpg)
Logging
Syslog server built in25150/udp/var/log/cobbler/syslog/<hostname>
other places to look/var/log/cobbler/cobbler.log/var/log/cobbler/install.loghttp access logs
![Page 17: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/17.jpg)
demo time
WebUICLI/tftpboot/pxelinux.cfg/etc/dhcpd.conf/etc/cobbler
![Page 18: Provisioning Machines With Cobbler Gslug 20080913](https://reader036.vdocuments.net/reader036/viewer/2022082702/5554abdbb4c905fd608b5234/html5/thumbnails/18.jpg)
Thanks!
https://fedorahosted.org/cobbler - Official site - sourced throughout presentationGSLUG - http://gslug.org - Providing a forum to learn and share ideas about Linux