1COBBLER(1) cobbler COBBLER(1)
2
3
4
6 cobbler is a provisioning and update server. It supports deployments
7 via PXE (network booting), virtualization (Xen or QEMU/KVM), and
8 re-installs of existing Linux systems. The latter two features are
9 enabled by usage of 'koan' on the remote system. Update server fea‐
10 tures include yum mirroring and integration of those mirrors with kick‐
11 start. Cobbler has a command line interface, Web UI, and extensive
12 Python and XMLRPC APIs for integration with external scripts and appli‐
13 cations.
14
16 cobbler command [subcommand] [--arg1=value1] [--arg2=value2]
17
19 Cobbler manages provisioning using a tiered concept of Distributions,
20 Profiles, Systems, and Repositories.
21
22 Distributions contain information about what kernel and initrd are
23 used, plus metadata (required kernel parameters, etc).
24
25 Profiles associate a Distribution with a kickstart file and optionally
26 customize the metadata further.
27
28 Systems associate a MAC, IP, and/or hostname with a profile and option‐
29 ally customize the metadata further.
30
31 Repositories contain yum mirror information. Using cobbler to mirror
32 repositories is an optional feature, though provisioning and package
33 management share a lot in common.
34
35 The main advantage of cobbler is that it glues together a lot of dis‐
36 joint technologies and concepts and abstracts the user from the need to
37 understand them. It allows the systems administrator to concentrate
38 on what he needs to do, and not how it is done.
39
40 This manpage will focus on the cobbler command line tool for use in
41 configuring cobbler. There is also mention of the Cobbler WebUI which
42 is usable for day-to-day operation of Cobbler once installed/config‐
43 ured. Docs on the API and XMLRPC components are available online at
44 http://cobbler.et.redhat.com and the companion Wiki:
45 https://hosted.fedoraproject.org/projects/cobbler/.
46
47 Most users will be interested in the Web UI and should set it up,
48 though the command line is needed for initial configuration -- in par‐
49 ticular "cobbler check" and "cobbler import".
50
52 For help in building kickstarts, try using the "system-config-kick‐
53 start" tool, or install a new system and look at the /root/ana‐
54 conda-ks.cfg file left over from the installer. General kickstart
55 questions can also be asked at kickstart-list@redhat.com. Cobbler
56 ships some kickstart templates in /etc/cobbler that may also prove
57 helpful.
58
59 Also see the aforementioned webpages for additional documentation, user
60 contributed tips, and so on.
61
63 SETUP
64
65 After installing, run "cobbler check" to verify that cobbler's ecosys‐
66 tem is configured correctly. Cobbler check will direct you on how to
67 modify it's config files using a text editor.
68
69 Any problems detected should be corrected, with the potential exception
70 of DHCP related warnings where you will need to use your judgement as
71 to whether they apply to your environment. Run "cobbler sync" after
72 making any changes to the configuration files to ensure those changes
73 are applied to the environment.
74
75 It is especially important that the server name field be accurate in
76 /etc/cobbler/settings, without this field being correct, kickstart
77 trees will not be found, and automated installtions will fail.
78
79 For PXE, if DHCP is to be run from the cobbler server, the dhcp config‐
80 uration file should be changed as suggested by "cobbler check". If
81 DHCP is not run locally, the "next-server" field on the DHCP server
82 should at minimum point to the cobbler server's IP and the filename
83 should be set to "pxelinux.0". Alternatively, cobbler can also gener‐
84 ate your dhcp configuration file if you want to run dhcp locally --
85 this is covered in a later section. If you don't already have a DHCP
86 setup managed by some other tool, allowing cobbler to manage DHCP will
87 prove to be useful as it can manage DHCP reservations and other data.
88 If you already have a DHCP setup, moving an existing setup to be man‐
89 aged from within cobbler is relatively painless -- though usage of the
90 DHCP management feature is entirely optional. If you are not inter‐
91 ested in network booting via PXE and just want to use koan to install
92 virtual systems or replace existing ones, DHCP configuration can be
93 totally ignored. Koan also has a live CD (see koan's manpage) capabil‐
94 ity that can be used to simulate PXE environments.
95
96 ADDING A DISTRIBUTION
97
98 This first step towards configurating what you want to provision is to
99 add a distribution to cobbler's configuration.
100
101 If there is an rsync mirror, DVD, NFS, or filesystem tree available
102 that you would rather import instead, skip down to the documentation
103 about the "import" command. It's really a lot easier, and it only
104 requires waiting for the mirror content to be copied and/or scanned.
105 Imported mirrors also save time during install since they don't have to
106 hit external install sources.
107
108 If you want to be explicit with distribution definition, however,
109 here's how it works:
110
111 cobbler distro add --name=string --kernel=path --initrd=path
112 [--kopts=string] [--ksmeta=string] [--arch=x86⎪x86_64⎪ia64]
113 [--breed=redhat⎪debian⎪suse]
114
115 name
116 a string identifying the distribution, this should be something
117 like "rhel4".
118
119 kernel
120 An absolute filesystem path to a kernel image
121
122 initrd
123 An absolute filesystem path to a initrd image
124
125 kopts
126 Sets kernel command-line arguments that the distro, and pro‐
127 files/systems dependant on it, will use.
128
129 Example: --kopts="foo=bar baz=3 asdf"
130
131 arch
132 Sets the architecture for the PXE bootloader
133
134 The default setting ('standard') will use pxelinux. Set to 'ia64'
135 to use elilo.
136
137 'x86' and 'x86_64' effectively do the same thing as standard.
138
139 ksmeta
140 This is an advanced feature that sets kickstart variables to sub‐
141 stitute, thus enabling kickstart files to be treated as templates.
142 Templates are powered using Cheetah and are described further along
143 in this manpage as well as on the Cobbler Wiki.
144
145 Example: --ksmeta="foo=bar baz=3 asdf"
146
147 See the section on "Kickstart Templating" for further information.
148
149 breed
150 Controls how kernel arguments for automatic installation are to be
151 treated. Defaults to "redhat", which is a suitable value for
152 Fedora and Centos as well. It means anything redhat based.
153
154 There is limited experimental support for specifying "debian" or
155 "suse", which treats the kickstart file as a different format and
156 changes the kernel arguments appropriately. Support for other
157 types of distributions is possible in the future.
158
159 The file used for the answer file, regardless of the breed setting,
160 is the value used for --kickstart when creating the profile.
161
162 owners
163 Users with small sites and a limited number of admins can probably
164 ignore this option. All cobbler objects (distros, profiles, sys‐
165 tems, and repos) can take a --owners parameter to specify what cob‐
166 bler users can edit particular objects. This only applies to the
167 Cobbler WebUI and XMLRPC interface, not the "cobbler" command line
168 tool run from the shell. Furthermore, this is only respected by
169 the "authz_ownership" module which must be enabled in /etc/cob‐
170 bler/modules.conf. The value for --owners is a comma seperated
171 list of users and groups as specified in /etc/cobbler/users.conf.
172 For more information see the users.conf file as well as the Cobbler
173 Wiki. In the default Cobbler configuration, this value is com‐
174 pletely ignored, as is users.conf.
175
176 ADDING A PROFILE
177
178 A profile associates a distribution to additional specialized options,
179 such as a kickstart automation file. Profiles are the core unit of
180 provisioning and at least one profile must exist for every distribution
181 to be provisioned. A profile might represent, for instance, a web
182 server or desktop configuration. In this way, profiles define a role
183 to be performed.
184
185 cobbler profile add --name=string --distro=string [--kickstart=path]
186 [--kopts=string] [--ksmeta=string] [--virt-file-size=gigabytes]
187 [--virt-ram=megabytes] [--virt-type=string] [--virt-cpus=integer]
188 [--virt-path=string] [--virt-bridge=string] [--server-override]
189
190 Arguments are as listed for distributions, save for the removal of
191 "arch" and "breed", and with the additions listed below:
192
193 name
194 A descriptive name. This could be something like "rhel4webservers"
195 or "fc6desktops".
196
197 distro
198 The name of a previously defined cobbler distribution
199
200 kickstart
201 Local filesystem path to a kickstart file. http:// URLs (even
202 CGI's) are also accepted, but a local file path is recommended, so
203 that the kickstart templating engine can be taken advantage of.
204
205 If this parameter is not provided, the kickstart file will default
206 to /etc/cobbler/default.ks. This file is initially blank, meaning
207 default kickstarts are not automated "out of the box". Admins can
208 change the default.ks if they desire..
209
210 When using kickstart files, they can be placed anywhere on the
211 filesystem, but the recommended path is /var/lib/cobbler/kick‐
212 starts.
213
214 virt-file-size
215 (Virt-only) How large the disk image should be in Gigabytes. The
216 default is "5". This can be a comma seperated list (ex: "5,6,7")
217 to allow for multiple disks of different sizes depending on what is
218 given to --virt-path.
219
220 virt-ram
221 (Virt-only) How many megabytes of RAM to consume. The default is
222 512 MB.
223
224 virt-type
225 (Virt-only) Koan can install images using either Xen paravirt
226 ("xenpv") or QEMU/KVM ("qemu"). Choose one or the other strings to
227 specify, or values will default to attempting to find a compatible
228 installation type on the client system ("auto"). See the "koan"
229 manpage for more documentation. The default virt-type can be con‐
230 figured in the cobbler settings file such that this parameter does
231 not have to be provided.
232
233 virt-cpus
234 (Virt-only) How many virtual CPUs should koan give the virtual
235 machine? The default is 1.
236
237 virt-path
238 (Virt-only) Where to store the virtual image on the host system.
239 Except for advanced cases, this parameter can usually be omitted.
240 For disk images, the value is usually an absolute path to an exist‐
241 ing directory with an optional file name component. There is sup‐
242 port for specifying partitions "/dev/sda4" or volume groups "Vol‐
243 Group00", etc.
244
245 For multiple disks, seperate the values with commas such as "Vol‐
246 Group00,VolGroup00" or "/dev/sda4,/dev/sda5". Both those examples
247 would create two disks for the VM.
248
249 virt-bridge
250 (Virt-only) This specifies the default bridge to use for all sys‐
251 tems defined under this profile. If not specified, it will assume
252 the default value in the cobbler settings file, which as shipped in
253 the RPM is 'xenbr0'. If using KVM, this is most likely not cor‐
254 rect. You may want to override this setting in the system object.
255 Bridge settings are important as they define how outside networking
256 will reach the guest. For more information on bridge setup, see
257 the Cobbler Wiki, where there is a section describing koan usage.
258
259 repos
260 This is a space delimited list of all the repos (created with "cob‐
261 bler repo add" and updated with "cobbler reposync") that this pro‐
262 file can make use of during kickstart installation. For example,
263 an example might be --repos="fc6i386updates fc6i386extras" if the
264 profile wants to access these two mirrors that are already mirrored
265 on the cobbler server.
266
267 inherit
268 This is an advanced feature.
269
270 Profiles may inherit from other profiles in lieu of specifing
271 --distro. Inherited profiles will override any settings specified
272 in their parent, with the exception of --ksmeta (templating) and
273 --kopts (kernel options), which will be blended together.
274
275 Example: If profile A has --kopts="x=7 y=2", B inherits from A,
276 and B has --kopts="x=9 z=2", the actual kernel options that will be
277 used for B are "x=9 y=2 z=2".
278
279 Example: If profile B has --virt-ram=256 and A has --virt-ram of
280 512, profile B will use the value 256. Example: If profile A has
281 a --virt-file-size of 5 and B does not specify a size, B will use
282 the value from A.
283
284 server-override
285 This parameter should be useful only in select circumstances. If
286 machines are on a subnet that cannot access the cobbler server
287 using the name/IP as configured in the cobbler settings file, use
288 this parameter to override that server name. See also --dhcp-tag
289 for configuring the next server and DHCP informmation of the system
290 if you are also using Cobbler to help manage your DHCP configura‐
291 tion.
292
293 ADDING A SYSTEM
294
295 System records map a piece of hardware (or a virtual machine) with the
296 cobbler profile to be assigned to run on it. This may be thought of as
297 chosing a role for a specific system.
298
299 Note that if provisioning via koan and PXE menus alone, it is not
300 required to create system records, though they are useful when system
301 specific customizations are required. One such customization would be
302 defining the MAC address. If there is a specific role inteded for a
303 given machine, system records should be created for it.
304
305 cobbler system add --name=string --profile=string [--mac=macaddress]
306 [--ip=ipaddress] [--hostname=hostname] [--kopts=string]
307 [--ksmeta=string] [--kickstart=path] [--netboot-enabled=Y/N]
308 [--server-override=string]
309
310 Adds a cobbler System to the configuration. Arguments are specified as
311 per "profile add" with the following changes:
312
313 name
314 The system name works like the name option for other commands.
315
316 If the name looks like a MAC address or an IP, the name will
317 implicitly be used for either --mac or --ip of the first interface,
318 respectively. However, it's usually better to give a descriptive
319 name.
320
321 A system created with name "default" has special semantics. If a
322 default system object exists, it sets all undefined systems to PXE
323 to a specific profile. Without a "default" system name created,
324 PXE will fall through to local boot for unconfigured systems.
325
326 mac Specifying a mac address via --mac allows the system object to boot
327 via PXE. If the name of the cobbler system already looks like a
328 mac address, this is inferred from the system name and does not
329 need to be specified.
330
331 MAC addresses have the format AA:BB:CC:DD:EE:FF.
332
333 ip If cobbler is configured to generate a DHCP configuratition (see
334 advanced section), use this setting to define a specific IP for
335 this system in DHCP. Leaving off this parameter will result in no
336 DHCP management for this particular system.
337
338 Example: --ip=192.168.1.50
339
340 Note for Itanium users: this setting is always required for IA64
341 regardless of whether DHCP management is enabled.
342
343 If DHCP management is disabled, setting this parameter may still be
344 useful for record keeping, and it is also available in all kick‐
345 start templates, so it can be easily used for static IP configura‐
346 tion within kickstarts.
347
348 hostname
349 If using the DHCP configuration feature (see advanced section) with
350 dnsmasq, use this to define a hostname for the system to recieve
351 from DNS. If not using DHCP management or not using dnsmasq, this
352 field is treated as a descriptive comment and is basically ignored
353 other than being made available in templates.
354
355 Example: --hostname=mycomputer.example.com
356
357 --gateway and --subnet
358 If you are using static IP configurations, you may find it useful
359 to store gateway and subnet information inside of cobbler. These
360 variables are not used internally by cobbler, but are made avail‐
361 able in cobbler templates, which are described later in this docu‐
362 ment and on the Wiki. For DHCP configurations, these parameters
363 should be left blank.
364
365 --virt-bridge
366 (Virt-only) While --virt-bridge is present in the profile object
367 (see above), here it works on an interface by interface basis.
368 For instance it would be possible to have --virt-bridge0=xenbr0 and
369 --virt-bridge1=xenbr1. If not specified in cobbler for each inter‐
370 face, koan will use the value as specified in the profile for each
371 interface, which may not always be what is intended, but will be
372 sufficient in most cases.
373
374 --kickstart
375 While it is recommended that the --kickstart parameter is only used
376 within for the "profile add" command, there are scenarios when an
377 install base switching to cobbler may have kickstarts created on a
378 per-system basis (one kickstart for each system, nothing shared)
379 and may not want to immediately make use of the cobbler templating
380 system. This allows specifing a kickstart for use on a per-system
381 basis. Creation of a parent profile is still required. If the
382 kickstart is a filesystem location, it will still be treated as a
383 cobbler template.
384
385 --netboot-enabled
386 If set false, the system will be provisionable through koan but not
387 through standard PXE. This will allow the system to fall back to
388 default PXE boot behavior without deleting the cobbler system
389 object. The default value allows PXE.
390
391 --dhcp-tag
392 If you are setting up a PXE environment with multiple subnets/gate‐
393 ways, and are using cobbler to manage a DHCP configuration, you
394 will probably want this option.
395
396 By default, the dhcp tag for all systems is "default" and means
397 that in the DHCP template files the systems will expand out where
398 $insert_cobbler_systems_definitions is found in the DHCP template.
399 However, you may want certain systems to expand out in other places
400 in the file. Setting --dhcp-tag=subnet2 for instance, will cause
401 that system to expand out where $insert_cobbler_system_defini‐
402 tions_subnet2 is found, allowing you to insert directives to spec‐
403 ify different subnets (or other parameters) before the DHCP config‐
404 uration entries for those particular systems.
405
406 This is described further on the Cobbler Wiki.
407
408 --interface
409 By default flags like --ip, --mac, --dhcp-tag, --gateway, --subnet,
410 and --virt-bridge operation on the first network interface defined
411 for a system. Additional interfaces can be specified (0 through 7)
412 for use with the edit command.
413
414 Example:
415
416 cobbler system edit --name=foo --ip=192.168.1.50
417 --mac=AA:BB:CC:DD:EE:A0 cobbler system edit --name=foo --inter‐
418 face=2 --ip=192.168.1.51 --mac=AA:BB:CC:DD:EE:A1 cobbler system
419 report foo
420
421 NOTE: Additional interfaces can presently only be deleted via the
422 web interface.
423
424 ADDING A REPOSITORY TO MIRROR
425
426 Repository mirroring allows cobbler to mirror not only install trees
427 ("cobbler import" does this for you) but also optional packages, 3rd
428 party content, and even updates. Mirroring all of this content
429 locally on your network will result in faster, more up-to-date instal‐
430 lations and faster updates. If you are only provisioning a home setup,
431 this will probably be overkill, though it can be very useful for larger
432 setups (labs, datacenters, etc).
433
434 cobbler repo add --mirror=url --name=string [--rpmlist=list] [--cre‐
435 atrepo-flags=string] [--keep-updated=Y/N] [--priority=number]
436 [--arch=string] [--mirror-locally=Y/N]
437
438 mirror
439 The addresss of the yum mirror. This can be an rsync:// URL,
440 an ssh location, or a http:// or ftp:// mirror location.
441 Filesystem paths also work.
442
443 The mirror address should specify an exact repository to mirror
444 -- just one architecture and just one distribution. If you
445 have a seperate repo to mirror for a different arch, add that
446 repo seperately.
447
448 Here's an example of what looks like a good URL:
449
450 rsync://yourmirror.example.com/fedora-linux-core/updates/6/i386
451 (for rsync protocol) http://mirrors.ker‐
452 nel.org/fedora/extras/6/i386/ (for http://) user@yourmir‐
453 ror.example.com/fedora-linux-core/updates/6/i386 (for SSH)
454
455 Experimental support is also provided for mirroring RHN content
456 when you need a fast local mirror. The mirror syntax for this
457 is --mirror=rhn://channel-name and you must have entitlements
458 for this to work. This requires the cobbler server to be
459 installed on RHEL5 or later. You will also need a version of
460 yum-utils equal or greater to 1.0.4.
461
462 Additionally, if you are running yum 3.2.4 or later, you can
463 also automatically tell cobbler to mirror any yum repository
464 that the boot server itself is configured to use. This command
465 is "cobbler repo auto-add" and is also somewhat experimental.
466
467 name
468 This name is used as the save location for the mirror. If the
469 mirror represented, say, Fedora Core 6 i386 updates, a good
470 name would be "fc6i386updates". Again, be specific.
471
472 This name corresponds with values given to the --repos parame‐
473 ter of "cobbler profile add". If a profile has a --repos value
474 that matches the name given here, that repo can be automati‐
475 cally set up during provisioning (when supported) and installed
476 systems will also use the boot server as a mirror (unless
477 "yum_post_install_mirror" is disabled in the settings file).
478 By default the provisioning server will act as a mirror to sys‐
479 tems it installs, which may not be desirable for laptop config‐
480 urations, etc.
481
482 Distros that can make use of yum repositories during kickstart
483 include FC6 and later, RHEL 5 and later, and derivative distri‐
484 butions.
485
486 See the documentation on "cobbler profile add" for more infor‐
487 mation.
488
489 rpm-list
490 By specifying a space-delimited list of package names for
491 --rpm-list, one can decide to mirror only a part of a repo (the
492 list of packages given, plus dependencies). This may be help‐
493 ful in conserving time/space/bandwidth. For instance, when
494 mirroring FC6 Extras, it may be desired to mirror just cobbler
495 and koan, and skip all of the game packages. To do this, use
496 --rpm-list="cobbler koan".
497
498 This option only works for http:// and ftp:// repositories (as
499 it is powered by yumdownloader). It will be ignored for other
500 mirror types, such as local paths and rsync:// mirrors.
501
502 createrepo-flags
503 Specifies optional flags to feed into the createrepo tool,
504 which is called when "cobbler reposync" is run for the given
505 repository. The defaults are '-c cache'.
506
507 keep-updated
508 Specifies that the named repository should not be updated dur‐
509 ing a normal "cobbler reposync". The repo may still be
510 updated by name. See "cobbler reposync" below.
511
512 mirror-locally
513 When true, specifies that this yum repo is to be referenced
514 directly via kickstarts and not mirrored locally on the cobbler
515 server. Only http:// and ftp:// mirror urls are supported when
516 using --mirror-locally=1.
517
518 priority
519 Specifies the priority of the repository (the lower the number,
520 the higher the priority), which applies to installed machines
521 using the repositories that also have the yum priorities plugin
522 installed. The default priority for the plugin is 99, as is
523 that of all cobbler mirrored repositories.
524
525 arch
526 Specifies what architecture the repository should use. By
527 default the current system arch (of the server) is used, which
528 may not be desirable. Using this to override the default arch
529 allows mirroring of source repositories (using --arch=src).
530
531 yumopts
532 Sets values for additional yum options that the repo should use
533 on installed systems. For instance if a yum plugin takes a
534 certain parameter "alpha" and "beta", use something like
535 --yumopts="alpha=2 beta=3".
536
537 DISPLAYING CONFIGURATION ENTRIES
538
539 The following commands are usable regardless of how you are using
540 cobbler. "report" gives detailed configuration info. "list" just
541 lists the names of items in the configuration. Run these commands
542 to check how you have cobbler configured.
543
544 cobbler report
545
546 cobbler distro⎪profile⎪system⎪repo report [object-name]
547
548 cobbler list
549
550 Alternatively, you could look at the configuration files in
551 /var/lib/cobbler to see the same information.
552
553 DELETING CONFIGURATION ENTRIES
554
555 If you want to remove a specific object, use the remove command
556 with the name that was used to add it.
557
558 cobbler distro remove --name=string
559
560 cobbler profile remove --name=string
561
562 cobbler system remove --name=string
563
564 cobbler repo remove --name=string
565
566 EDITING
567
568 If you want to change a particular setting without doing an "add"
569 again, use the "edit" command, using the same name you gave when
570 you added the item. Anything supplied in the parameter list will
571 overwrite the settings in the existing object, preserving settings
572 not mentioned.
573
574 cobbler distro⎪profile⎪system⎪repo edit --name=string [parame‐
575 terlist]
576
577 COPYING
578
579 Objects can also be copied:
580
581 cobbler distro⎪profile⎪system⎪repo copy --name=oldname --new‐
582 name=newname
583
584 RENAMING
585
586 Objects can also be renamed, as long as other objects don't refer‐
587 ence them.
588
589 cobbler distro⎪profile⎪system⎪repo rename --name=oldname --new‐
590 name=newname
591
592 REPLICATING
593
594 Cobbler can replicate distro and profile data from a master cobbler
595 server.
596
597 cobbler replicate --master=cobbler.example.org
598
599 This will bring over all distro data for which it can find data in
600 /var/www/cobbler/ks_mirror can be found. It will also bring over
601 any default profiles for those distros. A default cobbler master
602 can be set in the settings file. Tree data must still be rsync'd
603 (or otherwise mirrored) manually.
604
605 REBUILDING CONFIGURATIONS
606
607 cobbler sync
608
609 Cobbler sync is used to repair or rebuild the contents /tftpboot or
610 /var/www/cobbler when something has changed behind the scenes. It
611 brings the filesystem up to date with the configuration as under‐
612 stood by cobbler.
613
614 Sync should be run whenever files in /var/lib/cobbler are manually
615 edited (which is not recommended except for the settings file) or
616 when making changes to kickstart files. In practice, this should
617 not happen often, though running sync too many times does not cause
618 any adverse effects.
619
620 If using cobbler to manage a DHCP and/or DNS server (see the
621 advanced section of this manpage), sync does need to be run after
622 systems are added to regenerate and reload the DHCP/DNS configura‐
623 tion.
624
626 IMPORT WORKFLOW
627
628 This example shows how to create a provisioning infrastructure from a
629 distribution mirror or DVD ISO. Then a default PXE configuration is
630 created, so that by default systems will PXE boot into a fully auto‐
631 mated install process for that distribution.
632
633 You can use a network rsync mirror, a mounted DVD location, or a tree
634 you have available via a network filesystem.
635
636 Import knows how to autodetect the architecture of what is being
637 imported, though to make sure things are named correctly, it's always a
638 good idea to specify --arch. For instance, if you import a distribu‐
639 tion named "fedora8" from an ISO, and it's an x86_64 ISO, specify
640 --arch=x86_64 and the distro will be named "fedora8-x86_64" automati‐
641 cally, and the right architecture field will also be set on the distri‐
642 bution object. If you are batch importing an entire mirror (containing
643 multiple distributions and arches), you don't have to do this, as cob‐
644 bler will set the names for things based on the paths it finds.
645
646 cobbler check
647
648 cobbler import --path=rsync://yourfavoritemirror.com/foo --name=rhel5
649 --arch=x86
650
651 # OR
652
653 cobbler import --path=/mnt/dvd --name=rhel5 --arch=x86_64
654
655 # OR (using an eternal NAS box without mirroring)
656
657 cobbler import --path=/path/where/filer/is/mounted --name=anyname
658 --available-as=nfs://nfs.example.org:/where/mounted/
659
660 # wait for mirror to rsync...
661
662 cobbler report
663
664 cobbler system add --name=default --profile=name_of_a_profile1
665
666 cobbler system add --name=AA:BB:CC:DD:EE:FF --profile=name_of_a_pro‐
667 file2
668
669 cobbler sync
670
671 NORMAL WORKFLOW
672
673 The following example uses a local kernel and initrd file (already
674 downloaded), and shows how profiles would be created using two differ‐
675 ent kickstarts -- one for a web server configuration and one for a
676 database server. Then, a machine is assigned to each profile.
677
678 cobbler check
679
680 cobbler distro add --name=rhel4u3 --kernel=/dir1/vmlinuz --ini‐
681 trd=/dir1/initrd.img
682
683 cobbler distro add --name=fc5 --kernel=/dir2/vmlinuz --ini‐
684 trd=/dir2/initrd.img
685
686 cobbler profile add --name=fc5webservers --distro=fc5-i386 --kick‐
687 start=/dir4/kick.ks --kopts="some‐
688 thing_to_make_my_gfx_card_work=42,some_other_parameter=foo"
689
690 cobbler profile add --name=rhel4u3dbservers --distro=rhel4u3 --kick‐
691 start=/dir5/kick.ks
692
693 cobbler system add --name=AA:BB:CC:DD:EE:FF --profile=fc5-webservers
694
695 cobbler system add --name=AA:BB:CC:DD:EE:FE --profile=rhel4u3-dbservers
696
697 cobbler report
698
699 REPOSITORY MIRRORING WORKFLOW
700
701 The following example shows how to set up a repo mirror for two reposi‐
702 tories, and create a profile that will auto install those repository
703 configurations on provisioned systems using that profile.
704
705 cobbler check
706
707 # set up your cobbler distros here.
708
709 cobbler repo add --mirror=http://mirrors.ker‐
710 nel.org/fedora/core/updates/6/i386/ --name=fc6i386updates
711
712 cobbler repo add --mirror=http://mirrors.ker‐
713 nel.org/fedora/extras/6/i386/ --name=fc6i386extras
714
715 cobbler reposync
716
717 cobbler profile add --name=p1 --distro=existing_distro_name --kick‐
718 start=/etc/cobbler/kickstart_fc6.ks --repos="fc6i386updates
719 fc6i386extras"
720
721 VIRTUALIZATION
722
723 For Virt, be sure the distro uses the correct kernel (if paravirt) and
724 follow similar steps as above, adding additional parameters as desired:
725
726 cobbler distro add --name=fc7virt [options...]
727
728 Specify reasonable values for the Virt image size (in GB) and RAM
729 requirements (in MB):
730
731 cobbler profile add --name=virtwebservers --distro=fc7virt --kick‐
732 start=path --virt-file-size=10 --virt-ram=512 [...]
733
734 Define systems if desired. koan can also provision based on the pro‐
735 file name.
736
737 cobbler system add --name=AA:BB:CC:DD:EE:FE --profile=virtwebservers
738 [...]
739
740 If you have just installed cobbler, be sure that the "cobblerd" service
741 is running and that port 25151 is unblocked.
742
743 See the manpage for koan for the client side steps.
744
746 PXE MENUS
747
748 Cobbler will automatically generate PXE menus for all profiles it has
749 defined. Running "cobbler sync" is required to generate and update
750 these menus.
751
752 To access the menus, type "menu" at the "boot:" prompt while a system
753 is PXE booting. If nothing is typed, the network boot will default to
754 a local boot. If "menu" is typed, the user can then choose and provi‐
755 sion any cobbler profile the system knows about.
756
757 If the association between a system (MAC address) and a profile is
758 already known, it may be more useful to just use "system add" commands
759 and declare that relationship in cobbler; however many use cases will
760 prefer having a PXE system, especially when provisioning is done at the
761 same time as installing new physical machines.
762
763 If this behavior is not desired, run "cobbler system add --name=default
764 --profile=plugh" to default all PXE booting machines to get a new copy
765 of the profile "plugh". To go back to the menu system, run "cobbler
766 system remove --name=default" and then "cobbler sync" to regenerate the
767 menus.
768
769 When using PXE menu deployment exclusively, it is not neccessary to
770 make cobbler system records, although the two can easily be mixed.
771
772 Additionally, note that all files generated for the pxe menu configura‐
773 tions are templatable, so if you wish to change the color scheme or
774 equivalent, see the files in /etc/cobbler.
775
776 KICKSTART TEMPLATING
777
778 The --ksmeta options above require more explanation.
779
780 If and only if --kickstart options reference filesystem URLs, --ksmeta
781 allows for templating of the kickstart files to achieve advanced func‐
782 tions. If the --ksmeta option for a profile read --ksmeta="foo=7
783 bar=llama", anywhere in the kickstart file where the string "$bar"
784 appeared would be replaced with the string "llama".
785
786 To apply these changes, "cobbler sync" must be run to generate custom
787 kickstarts for each profile/system.
788
789 For NFS and HTTP kickstart URLs, the "--ksmeta" options will have no
790 effect. This is a good reason to let cobbler manage your kickstart
791 files, though the URL functionality is provided for integration with
792 legacy infrastructure, possibly including web apps that already gener‐
793 ate kickstarts.
794
795 Templated kickstart files are processed by the templating program/pack‐
796 age Cheetah, so anything you can do in a Cheetah template can be done
797 to a kickstart template. Learn more at http://www.cheetahtem‐
798 plate.org/learn.html
799
800 When working with Cheetah, be sure to escape any shell macros that look
801 like "$(this)" with something like "\$(this)" or errors may show up
802 during the sync process.
803
804 KICKSTART SNIPPETS
805
806 Anywhere a kickstart template mentions SNIPPET::snippet_name, the file
807 named /var/lib/cobbler/snippets/snippet_name (if present) will be
808 included automatically in the kickstart template. This serves as a way
809 to recycle frequently used kickstart snippets without duplication.
810 Snippets can contain templating variables, and the variables will be
811 evaluated according to the profile and/or system as one would expect.
812
813 KICKSTART VALIDATION
814
815 To check for potential errors in kickstarts, prior to installation, use
816 "cobbler validateks". This function will check all profile and system
817 kickstarts for detectable errors. Since pykickstart is not future-Ana‐
818 conda-version aware, there may be some false positives. It should be
819 noted that "cobbler validateks" runs on the rendered kickstart output,
820 not kickstart templates themselves.
821
822 DHCP MANAGEMENT
823
824 Cobbler can optionally help you manage DHCP server. This feature is
825 off by default.
826
827 Choose either "management = isc_and_bind" in /etc/cobbler/dhcp.template
828 or "management = "dnsmasq" in /etc/cobbler/modules.conf. Then set
829 "manage_dhcp" to 1 in /etc/cobbler/settings.
830
831 This allows DHCP to be managed via "cobbler system add" commands, when
832 you specify the mac address and IP address for systems you add into
833 cobbler.
834
835 Depending on your choice, cobbler will use /etc/cobbler/dhcpd.template
836 or /etc/cobbler/dnsmasq.template as a starting point. This file must
837 be user edited for the user's particular networking environment. Read
838 the file and understand how the particular app (ISC dhcpd or dnsmasq)
839 work before proceeding.
840
841 If you already have DHCP configuration data that you would like to pre‐
842 serve (say DHCP was manually configured earlier), insert the relevant
843 portions of it into the template file, as running "cobbler sync" will
844 overwrite your previous configuration.
845
846 NOTE: Itanium systems names also need to be assigned to a distro that
847 was created with the "--arch=ia64" parameter. If you have Itanium sys‐
848 tems, you must (for now) choose 'dhcp_isc' for /etc/cobbler/mod‐
849 ules.conf and manage_dhcp in the /etc/cobbler/settings file, and are
850 required to use --ip when creating the system object in order for those
851 systems to PXE. This is due to an elilo limitation.
852
853 By default, the DHCP configuration file will be updated each time "cob‐
854 bler sync" is run, and not until then, so it is important to remember
855 to use "cobbler sync" when using this feature.
856
857 If omapi_enabled is set to 1 in /etc/cobbler/settings, the need to sync
858 when adding new system records can be eliminated.
859
860 DNS CONFIGURATION MANAGEMENT
861
862 Cobbler can optionally manage DNS configuration using BIND and dnsmasq.
863
864 Choose either "management = isc_and_bind" or "management = dnsmasq" in
865 /etc/cobbler/modules.conf and then enable manage_dns in /etc/cob‐
866 bler/settings.
867
868 This feature is off by default. If using BIND, you must define the
869 zones to be managed with the options 'manage_forward_zones' and 'man‐
870 age_reverse_zones'. (See the Wiki for more information on this).
871
872 If using BIND, Cobbler will use /etc/cobbler/bind.template and
873 /etc/cobbler/zone.template as a starting point for the named.conf and
874 individual zone files, respectively. You may drop zone-specific tem‐
875 plate files in /etc/cobbler/zone_templates/name-of-zone which will
876 override the default. These files must be user edited for the user's
877 particular networking environment. Read the file and understand how
878 BIND works before proceeding.
879
880 If using dnsmasq, the template is /etc/cobbler/dnsmasq.template. Read
881 this file and understand how dnsmasq works before proceeding.
882
883 All managed files (whether zone files and named.conf for BIND, or dns‐
884 masq.conf for dnsmasq) will be updated each time ``cobbler sync'' is
885 run, and not until then, so it is important to remember to use ``cob‐
886 bler sync'' when using this feature.
887
888 SERVICE DISCOVERY (AVAHI)
889
890 If the avahi-tools package is installed, cobblerd will broadcast it's
891 presence on the network, allowing it to be discovered by koan with the
892 koan --server=DISCOVER parameter.
893
894 IMPORTING TREES
895
896 Cobbler can auto-add distributions and profiles from remote sources,
897 whether this is a filesystem path or an rsync mirror. This can save a
898 lot of time when setting up a new provisioning environment. Import is
899 a feature that many users will want to take advantage of, and is very
900 simple to use.
901
902 After an import is run, cobbler will try to detect the distribution
903 type and automatically assign kickstarts. By default, it will provi‐
904 sion the system by erasing the hard drive, setting up eth0 for dhcp,
905 and using a default password of "cobbler". If this is undesirable,
906 edit the kickstart files in /etc/cobbler to do something else or change
907 the kickstart setting after cobbler creates the profile.
908
909 Mirrored content is saved automatically in /var/www/cobbler/ks_mirror.
910
911 Example: cobbler import --mirror=rsync://mirrorserver.exam‐
912 ple.com/path/ --name=fedora --arch=x86
913
914 Example2: cobbler import --mirror=root@192.168.1.10:/stuff --name=bar
915
916 Example3: cobbler import --mirror=/mnt/dvd --name=baz --arch=x86_64
917
918 Example4: cobbler import --mirror=/path/to/stuff --name=glorp
919
920 Example5: cobbler import --path=/path/where/filer/is/mounted
921 --name=anyname --available-as=nfs://nfs.example.org:/where/mounted/
922
923 Once imported, run a "cobbler list" or "cobbler report" to see what
924 you've added.
925
926 By default, the rsync operations will exclude PPC content, debug RPMs,
927 and ISO images -- to change what is excluded during an import, see
928 /etc/cobbler/rsync.exclude.
929
930 Note that all of the import commands will mirror install tree content
931 into /var/www/cobbler unless a network accessible location is given
932 with --available-as. --available-as will be primarily used when
933 importing distros stored on an external NAS box, or potentially on
934 another partition on the same machine that is already accessible via
935 http:// or ftp://.
936
937 For import methods using rsync, additional flags can be passed to rsync
938 with the option --rsync-flags.
939
940 Should you want to force the usage of a specific cobbler kickstart tem‐
941 plate for all profiles created by an import, you can feed the option
942 --kickstart to import, to bypass the built-in kickstart auto-detection.
943
944 DEFAULT PXE BOOT BEHAVIOR
945
946 What happens when PXE booting a system when cobbler has no record of
947 the system being booted?
948
949 By default, cobbler will configure PXE to boot to the contents of
950 /etc/cobbler/default.pxe, which (if unmodified) will just fall through
951 to the local boot process. Administrators can modify this file if they
952 like to change that behavior.
953
954 An easy way to specify a default cobbler profile to PXE boot is to cre‐
955 ate a system named "default". This will cause /etc/cobbler/default.pxe
956 to be ignored. To restore the previous behavior do a "cobbler system
957 remove" on the "default" system.
958
959 cobbler system add --name=default --profile=boot_this
960
961 cobbler system remove --name=default
962
963 REPO MANAGEMENT
964
965 This has already been covered a good bit in the command reference sec‐
966 tion.
967
968 Yum repository management is an optional feature, and is not required
969 to provision through cobbler. However, if cobbler is configured to
970 mirror certain repositories, it can then be used to associate profiles
971 with those repositories. Systems installed under those profiles will
972 then be autoconfigured to use these repository mirrors in
973 /etc/yum.repos.d, and if supported (Fedora Core 6 and later) these
974 repositories can be leveraged even within Anaconda. This can be useful
975 if (A) you have a large install base, (B) you want fast installation
976 and upgrades for your systems, or (C) have some extra software not in a
977 standard repository but want provisioned systems to know about that
978 repository.
979
980 Make sure there is plenty of space in cobbler's webdir, which defaults
981 to /var/www/cobbler.
982
983 cobbler reposync
984
985 Cobbler reposync is the command to use to update repos as configured
986 with "cobbler repo add". Mirroring can take a long time, and usage of
987 cobbler reposync prior to cobbler sync is needed to ensure provisioned
988 systems have the files they need to actually use the mirrored reposito‐
989 ries. If you just add repos and never run "cobbler reposync", the
990 repos will never be mirrored. This is probably a command you would
991 want to put on a crontab, though the frequency of that crontab and
992 where the output goes is left up to the systems administrator.
993
994 For those familiar with yum's reposync, cobbler's reposync is (in most
995 uses) a wrapper around the yum command. Please use "cobbler reposync"
996 to update cobbler mirrors, as yum's reposync does not perform all
997 required steps. Also cobbler adds support for rsync and SSH locations,
998 where as yum's reposync only supports what yum supports (http/ftp).
999
1000 If you ever want to update a certain repository you can run:
1001
1002 cobbler reposync --only="reponame1" ...
1003
1004 When updating repos by name, a repo will be updated even if it is set
1005 to be not updated during a regular reposync operation (ex: cobbler repo
1006 edit --name=reponame1 --keep-updated=0).
1007
1008 Note that if a cobbler import provides enough information to use the
1009 boot server as a yum mirror for core packages, cobbler can set up kick‐
1010 starts to use the cobbler server as a mirror instead of the outside
1011 world. If this feature is not desirable, it can be turned on by set‐
1012 ting yum_post_install_mirror to 0 in /etc/settings (and rerunning "cob‐
1013 bler sync"). You should disable this feature if machines are provi‐
1014 sioned on a different VLAN/network than production, or if you are pro‐
1015 visioning laptops that will want to acquire updates on multiple net‐
1016 works.
1017
1018 PXE BOOT LOOP PREVENTION
1019
1020 If you have your machines set to PXE first in the boot order (ahead of
1021 hard drives), change the "pxe_just_once" flag in /etc/cobbler/settings
1022 to 1. This will set the machines to not PXE on successive boots once
1023 they complete one install. To re-enable PXE for a specific system, run
1024 the following command:
1025
1026 cobbler system edit --name=name --netboot-enabled=1
1027
1028 KICKSTART TRACKING
1029
1030 Cobbler knows how to keep track of the status of kickstarting machines.
1031
1032 cobbler status
1033
1034 Using the status command will show when cobbler thinks a machine
1035 started kickstarting and when it last requested a file. This is a good
1036 way to track machines that may have gone interactive during kickstarts.
1037 Cobbler will also make a special request in the post section of the
1038 kickstart to signal when a machine is finished kickstarting.
1039
1040 To use this feature, the kickstart tree files need to be served via a
1041 http://server/cblr/... URL, which happens automatically when using the
1042 "cobbler import" command to pull in a kickstart tree from an rsync mir‐
1043 ror.
1044
1045 If kickstart trees are somewhere else, one can still benefit from the
1046 kickstart tracking feature by adding a symlink to /var/www/cob‐
1047 bler/localmirror/distroname will allow the kickstarts to be served
1048 through the tracking URL mentioned above. Be sure to use the
1049 http://server/cblr/ URL to point to the kickstart tree for each distro
1050 you want to track.
1051
1052 Note that kickstart tracking support using syslog requires an Anaconda
1053 that supports syslog forwarding. RHEL5 is good, as is FC6 and later.
1054 URL tracking currently requires python2.3 or higher on the server for
1055 the mod_python piece to work. This will likely be improved later to
1056 better support older distros acting as a cobbler server.
1057
1058 TWEAKING
1059
1060 Enterprising users can edit the files in /var/lib/cobbler directly ver‐
1061 sus using the command line. The repair mechanism for user error here
1062 is to delete the files in /var/lib/cobbler. There are also a few con‐
1063 figuration files in /etc/cobbler that can be edited.
1064
1065 Running "cobbler sync" is required to apply any changes that are made
1066 manually.
1067
1068 TRIGGERS
1069
1070 Triggers provide a way to integrate cobbler with arbitrary 3rd party
1071 software without modifying cobbler's code. When adding a distro, pro‐
1072 file, system, or repo, all scripts in /var/lib/cobbler/triggers/add are
1073 executed for the particular object type. Each particular file must be
1074 executable and it is executed with the name of the item being added as
1075 a parameter. Deletions work similarly -- delete triggers live in
1076 /var/lib/cobbler/triggers/delete. Order of execution is arbitrary, and
1077 cobbler does not ship with any triggers by default.
1078
1079 API
1080
1081 Cobbler also makes itself available as a Python API for use by higher
1082 level management software. Learn more at http://cobbler.et.redhat.com
1083
1084 WEB USER INTERFACE
1085
1086 Most of the day-to-day actions in cobbler's command line can be per‐
1087 formed in Cobbler's Web UI. To enable and access the WebUI, see the
1088 following documentation:
1089
1090 https://hosted.fedoraproject.org/projects/cobbler/wiki/CobblerWebUi
1091
1092 BOOT CD
1093
1094 Cobbler can build all of it's profiles into a bootable CD image using
1095 the "cobbler buildiso" command. This allows for PXE-menu like bringup
1096 of bare metal in evnvironments where PXE is not possible. Another more
1097 advanced method is described in the koan manpage, though this method is
1098 easier and sufficient for most applications.
1099
1101 cobbler's command line returns a zero for success and non-zero for
1102 failure.
1103
1105 Cobbler has a mailing list for user and development-related ques‐
1106 tions/comments at et-mgmt-tools@redhat.com.
1107
1108 IRC channel: irc.freenode.net (#cobbler)
1109
1110 Official web site: http://cobbler.et.redhat.com/
1111
1112 Wiki and user contributed content: https://hosted.fedorapro‐
1113 ject.org/projects/cobbler/
1114
1116 Michael DeHaan <mdehaan@redhat.com>
1117
1118
1119
1120 2008-06-06 COBBLER(1)