.




                                      Voice · Data · Managed Services
Speakeasy Inc. – A Best Buy Company
Provisioning machines with
Cobbler

         Garrett Honeycutt
         Presented at GSLUG
         September 13th 2008
What is Cobbler?

Cobbler is an integrated solution for provisioning OS's on
Linux systems
 RedHat (Fedora, RHEL) focused
...
Why?

Scalability
 Using a CD is time consuming
 Popping a CD into a machine into a machine to which you do not
 have phys...
Installation

Use EPEL
 http://fedoraproject.org/wiki/EPEL
Source RPM's
 http://people.fedoraproject.org/~mdehaan/files/co...
Hierarchy

Distros

 Profiles

   Systems
Hierarchy with options

Distros
 kernel & initrd locations
 architecture (i386, x86_64, ia64)
 breed (RedHat based, Debian...
Repo's

Mirror an existing repo
 # cobbler repo add --
 mirror=http://mirrors.kernel.org/fedora/core/updates/6/i386/ --
 n...
Importing Distros

ISO
 # mount -o loop rhel5.iso /mnt
 # cobbler import –mirror=/mnt –name=rhel5
From DVD
 # cobbler impo...
Profiles

kernel options
 serial console=ttyS1,9600
kickstart metadata – variables you can use in your
kickstart
 uses Che...
Kickstart config

Easy way to get a working kickstart config
 install by hand and check out /root/anaconda-ks.cfg

Show an...
Systems

Hostname
MAC
IP Info
Yum repo
 Probably a bad idea – use profiles for this
system specific kernel options and kic...
Triggers

  add, delete, install, sync
  pre/post for each
  Can use the Cobbler API or any executable
  script/program
  ...
Example Trigger using API
#!/usr/bin/python
import os
import sys
from cobbler import api
cobbler_api = api.BootAPI()
# thi...
/etc/cobbler

dhcp.template
settings

Show examples...
Logging

Syslog server built in
 25150/udp
 /var/log/cobbler/syslog/<hostname>
other places to look
 /var/log/cobbler/cobb...
demo time

WebUI
CLI
/tftpboot/pxelinux.cfg
/etc/dhcpd.conf
/etc/cobbler
Thanks!

https://fedorahosted.org/cobbler - Official site - sourced
throughout presentation
GSLUG - http://gslug.org - Pro...
Upcoming SlideShare
Loading in …5
×

Provisioning Machines With Cobbler Gslug 20080913

1,731
-1

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,731
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Provisioning Machines With Cobbler Gslug 20080913

  1. 1. . Voice · Data · Managed Services Speakeasy Inc. – A Best Buy Company
  2. 2. Provisioning machines with Cobbler Garrett Honeycutt Presented at GSLUG September 13th 2008
  3. 3. What is Cobbler? Cobbler is an integrated solution for provisioning OS's on Linux systems RedHat (Fedora, RHEL) focused Works with SuSE and even Debian to a limited degree Can be used to install images (windows, firmware, etc) Can manage DHCP, TFTP, and now DNS Multiple interfaces CLI Web GUI XMLRPC Python API
  4. 4. Why? Scalability Using a CD is time consuming Popping a CD into a machine into a machine to which you do not have physical access is problematic Repeatability Consistently build identical machines Get your own software repository running Avoid 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
  5. 5. Installation Use EPEL http://fedoraproject.org/wiki/EPEL Source RPM's http://people.fedoraproject.org/~mdehaan/files/cobbler/ check out the source with GIT # git clone git://git.fedorahosted.org/cobbler
  6. 6. Hierarchy Distros Profiles Systems
  7. 7. Hierarchy with options Distros kernel & initrd locations architecture (i386, x86_64, ia64) breed (RedHat based, Debian, SuSE) Profiles kickstart file location kickstart metadata – variables you can pass to kickstart all of the above Systems hostname IP info MAC all of the above
  8. 8. 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
  9. 9. 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
  10. 10. Profiles kernel options serial console=ttyS1,9600 kickstart metadata – variables you can use in your kickstart uses Cheetah - a python powered template engine ksmeta=eth_device='eth0' rhel_key='c0ffee' rhn_passwd='passwd' rhn_user='spkfoo'
  11. 11. Kickstart config Easy way to get a working kickstart config install by hand and check out /root/anaconda-ks.cfg Show an example...
  12. 12. Systems Hostname MAC IP Info Yum repo Probably a bad idea – use profiles for this system specific kernel options and kickstart metadata Probably a bad idea – use profiles for this
  13. 13. Triggers add, delete, install, sync pre/post for each Can use the Cobbler API or any executable script/program Simple example: /var/lib/cobbler/triggers/add/system/post/test.sh #!/bin/bash echo "Hi, my name is $1 and I'm a newly added system"
  14. 14. 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)
  15. 15. /etc/cobbler dhcp.template settings Show examples...
  16. 16. Logging Syslog server built in 25150/udp /var/log/cobbler/syslog/<hostname> other places to look /var/log/cobbler/cobbler.log /var/log/cobbler/install.log http access logs
  17. 17. demo time WebUI CLI /tftpboot/pxelinux.cfg /etc/dhcpd.conf /etc/cobbler
  18. 18. Thanks! https://fedorahosted.org/cobbler - Official site - sourced throughout presentation GSLUG - http://gslug.org - Providing a forum to learn and share ideas about Linux

×