yum upgrade to 1.2.6-1.el5
by Harry Hoffman
Just upgraded to the latest cobbler from epel-testing... the
post-install script fails :-(
Updating : cobbler ####################### [ 5/10]
profile CentOS-5.2-x86_64 not found, inheritance not possible
Stopping cobbler daemon: [ OK ]
Starting cobbler daemon: Traceback (most recent call last):
File "/usr/bin/cobblerd", line 32, in ?
api = bootapi.BootAPI()
File "/usr/lib/python2.4/site-packages/cobbler/api.py", line 90, in
__init__
self.deserialize()
File "/usr/lib/python2.4/site-packages/cobbler/api.py", line 448, in
deserialize
return self._config.deserialize()
File "/usr/lib/python2.4/site-packages/cobbler/config.py", line 186,
in deserialize
serializer.deserialize(self._profiles)
File "/usr/lib/python2.4/site-packages/cobbler/serializer.py", line
125, in deserialize
rc = storage_module.deserialize(obj,topological)
File
"/usr/lib/python2.4/site-packages/cobbler/modules/serializer_yaml.py",
line 136, in deserialize
obj.from_datastruct(datastruct)
File "/usr/lib/python2.4/site-packages/cobbler/collection.py", line
144, in from_datastruct
item = self.factory_produce(self.config,seed_data)
File
"/usr/lib/python2.4/site-packages/cobbler/collection_profiles.py", line
41, in factory_produce
return profile.Profile(config).from_datastruct(seed_data)
File "/usr/lib/python2.4/site-packages/cobbler/item_profile.py", line
87, in from_datastruct
self.set_parent(self.parent)
File "/usr/lib/python2.4/site-packages/cobbler/item_profile.py", line
131, in set_parent
raise CX(_("profile %s not found, inheritance not possible") %
parent_name)
cobbler.cexceptions.CX: 'profile CentOS-5.2-x86_64 not found,
inheritance not possible'
[FAILED]
error: %post(cobbler-1.2.6-1.el5.noarch) scriptlet failed, exit status 1
Any ideas?
Cheers,
Harry
14 years, 7 months
Debian support -- Good news and bad news.
by Derek Carter
Apologies for the long rambling email. I've just been needing to get
this out to the list.
First, the good news. I've verified that automated installs of Debian
"Etch" work properly.
It is pretty straightforward to get your Debian distro imported into
cobbler. I did the following.
* mirror a single arch/version of Debian to my local hard drive inside
of a web-accessible directory.(approx 50 gig, not for the faint of
heart, nor low of disk space)
* I used rsync, and have a proper rsync.excludes file for doing a
single arch of etch (amd64 version of etch -- attached). This work could
be included into a proper "cobbler import" command
* Create the Debian distro in cobbler by running this command:
cobbler distro add --name=debian-etch-amd64 --arch=x86_64 --breed=debian
--initrd=/var/www/debian-mirror/debian/dists/etch/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
--kernel=/var/www/debian-mirror/debian/dists/etch/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
--kopts='priority=critical vga=normal' --ksmeta='tree=@@http_server@@'
* Copy the attached preseed file to /etc/cobbler
* Create the new profile using that preseed file
cobbler profile add --name=debian-etch-amd64 --profile=debian-etch-amd64
--kickstart=/etc/cobbler/etch-sample.cfg
Those are the steps I followed to get a basic Debian install done via
Cobbler.
The bad news is that many of the advanced features of the kickstart
templating don't work:
* The $kickstart_start and $kickstart_done don't work for tracking
installs when wrapped up in the Debian preseed "early-command" and
"late-command" features.
There are a couple of ways we can make this work properly, The heart of
the matter is that RedHat style kickstarts "%pre" and "%post" sections
allow multi-line arguments (essentially they're in-line shell scripts),
whereas the Debian "*-commands" are a single-line string.
One way to fix the problem is to change cobbler/kickgen.py and do a
per-breed build of the proper value for $kickstart_start and
$kickstart_done. I've tried to come up with something along those lines
but I'm not yet familiar enough with either Python or Cobbler to get my
idea to compile. I've attached a patch which doesn't work, but does get
that idea out in code. It needs fleshing out but is a pretty good idea.
Another possible solution is to revert what appears to be a purposeful
newline to the front of the string returned for the variables. This
would allow embedding of the wget commands into the Debian preseed file
by adding a backslash escaped newline above the variable and in each
line of the value like this:
d-i preseed/late_command string \
wget "http://10.50.0.254/cblr/svc/op/ks/profile/debian-etch-amd64" -O
/target/root/preseed.cfg;\
wget
"http://10.50.0.254/cblr/svc/op/trig/mode/post/profile/debian-etch-amd64"
-O /dev/null;
A third solution is to generate a shell script dynamically with all
commands which are needed to run, and downloading and running it in this
manner:
d-i preseed/run string foo.sh
This downloads the file foo.sh from the same location the preseed file
was found (in my case http://10.50.0.254/cblr/svc/op/ks/profile/) and
executes it. Something similar can be done in the early/late commands:
d-i preseed/late_command string wget http://server/file.sh -O
/target/tmp/file.sh; /bin/bash /target/tmp/file.sh
I'm not sure which option is best, that's why I've talked about all of
them I could come up with. If any of you have other ideas, or can make
some of mine work properly, it would make Debian more than just "at your
own risk" supported and make Cobbler that much better from a sysadmin
perspective.
--
Derek Carter
(aka goozbach)
#### Contents of the preconfiguration file
### Localization
# Locale sets language and country.
d-i debian-installer/locale string en_US
# Keyboard selection.
#d-i console-tools/archs select at
d-i console-keymaps-at/keymap select us
# Example for a different keyboard architecture
#d-i console-keymaps-usb/keymap select mac-usb-us
### Network configuration
# netcfg will choose an interface that has link if possible. This makes it
# skip displaying a list if there is more than one interface.
d-i netcfg/choose_interface select auto
# To pick a particular interface instead:
#d-i netcfg/choose_interface select eth1
# If you have a slow dhcp server and the installer times out waiting for
# it, this might be useful.
#d-i netcfg/dhcp_timeout string 60
# If you prefer to configure the network manually, uncomment this line and
# the static network configuration below.
#d-i netcfg/disable_dhcp boolean true
# If you want the preconfiguration file to work on systems both with and
# without a dhcp server, uncomment these lines and the static network
# configuration below.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually
# Static network configuration.
#d-i netcfg/get_nameservers string 192.168.1.1
#d-i netcfg/get_ipaddress string 192.168.1.42
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/confirm_static boolean true
# Any hostname and domain names assigned from dhcp take precedence over
# values set here. However, setting the values still prevents the questions
# from being shown, even if values come from dhcp.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
# Disable that annoying WEP key dialog.
d-i netcfg/wireless_wep string
# The wacky dhcp hostname that some ISPs use as a password of sorts.
#d-i netcfg/dhcp_hostname string radish
### Mirror settings
# If you select ftp, the mirror/country string does not need to be set.
#d-i mirror/protocol string ftp
d-i mirror/country string enter information manually
d-i mirror/http/hostname string $tree
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
# Suite to install.
#d-i mirror/suite string testing
# Suite to use for loading installer components (optional).
#d-i mirror/udeb/suite string testing
### Partitioning
# If the system has free space you can choose to only partition that space.
# Note: this must be preseeded with a localized (translated) value.
#d-i partman-auto/init_automatically_partition \
# select Guided - use the largest continuous free space
# Alternatively, you can specify a disk to partition. The device name
# can be given in either devfs or traditional non-devfs format.
# For example, to use the first disk:
d-i partman-auto/disk string /dev/discs/disc0/disc
# In addition, you'll need to specify the method to use.
# The presently available methods are: "regular", "lvm" and "crypto"
d-i partman-auto/method string lvm
# If one of the disks that are going to be automatically partitioned
# contains an old LVM configuration, the user will normally receive a
# warning. This can be preseeded away...
d-i partman-auto/purge_lvm_from_device boolean true
# And the same goes for the confirmation to write the lvm partitions.
d-i partman-lvm/confirm boolean true
# You can choose from any of the predefined partitioning recipes.
# Note: this must be preseeded with a localized (translated) value.
d-i partman-auto/choose_recipe \
select All files in one partition (recommended for new users)
#d-i partman-auto/choose_recipe \
# select Separate /home partition
#d-i partman-auto/choose_recipe \
# select Separate /home, /usr, /var, and /tmp partitions
# Or provide a recipe of your own...
# The recipe format is documented in the file devel/partman-auto-recipe.txt.
# If you have a way to get a recipe file into the d-i environment, you can
# just point at it.
#d-i partman-auto/expert_recipe_file string /hd-media/recipe
# If not, you can put an entire recipe into the preconfiguration file in one
# (logical) line. This example creates a small /boot partition, suitable
# swap, and uses the rest of the space for the root partition:
#d-i partman-auto/expert_recipe string \
# boot-root :: \
# 40 50 100 ext3 \
# $primary{ } $bootable{ } \
# method{ format } format{ } \
# use_filesystem{ } filesystem{ ext3 } \
# mountpoint{ /boot } \
# . \
# 500 10000 1000000000 ext3 \
# method{ format } format{ } \
# use_filesystem{ } filesystem{ ext3 } \
# mountpoint{ / } \
# . \
# 64 512 300% linux-swap \
# method{ swap } format{ } \
# .
# This makes partman automatically partition without confirmation.
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true
### Clock and time zone setup
# Controls whether or not the hardware clock is set to UTC.
d-i clock-setup/utc boolean true
# You may set this to any valid setting for $TZ; see the contents of
# /usr/share/zoneinfo/ for valid values.
d-i time/zone string US/Eastern
### Apt setup
# You can choose to install non-free and contrib software.
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true
# Uncomment this if you don't want to use a network mirror.
#d-i apt-setup/use_mirror boolean false
# Uncomment this to avoid adding security sources, or
# add a hostname to use a different server than security.debian.org.
#d-i apt-setup/security_host string
# Additional repositories, local[0-9] available
#d-i apt-setup/local0/repository string \
# deb http://local.server/debian stable main
#d-i apt-setup/local0/comment string local server
# Enable deb-src lines
#d-i apt-setup/local0/source boolean true
# URL to the public key of the local repository; you must provide a key or
# apt will complain about the unauthenticated repository and so the
# sources.list line will be left commented out
#d-i apt-setup/local0/key string http://local.server/key
# By default the installer requires that repositories be authenticated
# using a known gpg key. This setting can be used to disable that
# authentication. Warning: Insecure, not recommended.
#d-i debian-installer/allow_unauthenticated string true
### Account setup
# Skip creation of a root account (normal user account will be able to
# use sudo).
#d-i passwd/root-login boolean false
# Alternatively, to skip creation of a normal user account.
#d-i passwd/make-user boolean false
# Root password, either in clear text
d-i passwd/root-password password cangetin
d-i passwd/root-password-again password cangetin
# or encrypted using an MD5 hash.
#d-i passwd/root-password-crypted password [MD5 hash]
# To create a normal user account.
d-i passwd/user-fullname string Derek Carter
d-i passwd/username string dcarter
# Normal user's password, either in clear text
d-i passwd/user-password password cangetin
d-i passwd/user-password-again password cangetin
# or encrypted using an MD5 hash.
#d-i passwd/user-password-crypted password [MD5 hash]
### Base system installation
# Select the initramfs generator used to generate the initrd for 2.6 kernels.
#d-i base-installer/kernel/linux/initramfs-generators string yaird
### Boot loader installation
# Grub is the default boot loader (for x86). If you want lilo installed
# instead, uncomment this:
#d-i grub-installer/skip boolean true
# This is fairly safe to set, it makes grub install automatically to the MBR
# if no other operating system is detected on the machine.
d-i grub-installer/only_debian boolean true
# This one makes grub-installer install to the MBR if it also finds some other
# OS, which is less safe as it might not be able to boot that other OS.
d-i grub-installer/with_other_os boolean true
# Alternatively, if you want to install to a location other than the mbr,
# uncomment and edit these lines:
#d-i grub-installer/only_debian boolean false
#d-i grub-installer/with_other_os boolean false
#d-i grub-installer/bootdev string (hd0,0)
# To install grub to multiple disks:
#d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0)
### Package selection
tasksel tasksel/first multiselect
#tasksel tasksel/first multiselect standard, web-server
#tasksel tasksel/first multiselect standard, kde-desktop
# Individual additional packages to install
d-i pkgsel/include string openssh-server rsync
# Some versions of the installer can report back on what software you have
# installed, and what software you use. The default is not to report back,
# but sending reports helps the project determine what software is most
# popular and include it on CDs.
#popularity-contest popularity-contest/participate boolean false
### Finishing up the first stage install
# Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note
# This will prevent the installer from ejecting the CD during the reboot,
# which is useful in some situations.
d-i cdrom-detect/eject boolean false
### Preseeding other packages
# Depending on what software you choose to install, or if things go wrong
# during the installation process, it's possible that other questions may
# be asked. You can preseed those too, of course. To get a list of every
# possible question that could be asked during an install, do an
# installation, and then run these commands:
# debconf-get-selections --installer > file
# debconf-get-selections >> file
#### Advanced options
### Running custom commands during the installation
# d-i preseeding is inherently not secure. Nothing in the installer checks
# for attempts at buffer overflows or other exploits of the values of a
# preconfiguration file like this one. Only use preconfiguration files from
# trusted locations! To drive that home, and because it's generally useful,
# here's a way to run any shell command you'd like inside the installer,
# automatically.
# This first command is run as early as possible, just after
# preseeding is read.
#d-i preseed/early_command string anna-install some-udeb
d-i preseed/early_command string wget "http://$server/cblr/svc/op/trig/mode/pre/profile/$name" -O /dev/null
# This command is run just before the install finishes, but when there is
# still a usable /target directory. You can chroot to /target and use it
# directly, or use the apt-install and in-target commands to easily install
# packages and run commands in the target system.
#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
d-i preseed/late_command string wget "http://10.50.0.254/cblr/svc/op/ks/profile/debian-etch-amd64" -O /target/root/preseed.cfg; wget "http://10.50.0.254/cblr/svc/op/trig/mode/post/profile/debian-etch-amd64" -O /dev/null
*/binary-alpha/*
*/binary-arm/*
*/binary-hppa/*
*/binary-ia64/*
*/binary-mips/*
*/binary-mipsel/*
*/binary-powerpc/*
*/binary-s390/*
*/binary-sparc/*
*/binary-i386/*
*/installer-alpha/*
*/installer-arm/*
*/installer-hppa/*
*/installer-ia64/*
*/installer-mips/*
*/installer-mipsel/*
*/installer-powerpc/*
*/installer-s390/*
*/installer-sparc/*
*/installer-i386/*
Contents-alpha.gz
Contents-arm.gz
Contents-hppa.gz
Contents-ia64.gz
Contents-mips.gz
Contents-mipsel.gz
Contents-powerpc.gz
Contents-s390.gz
Contents-sparc.gz
Contents-i386.gz
*alpha.deb
*arm.deb
*hppa.deb
*ia64.deb
*mips.deb
*mipsel.deb
*powerpc.deb
*s390.deb
*sparc.deb
*m68k.deb
*armel.deb
*hurd-i386.deb
*i386.deb
*alpha.udeb
*arm.udeb
*hppa.udeb
*ia64.udeb
*mips.udeb
*mipsel.udeb
*powerpc.udeb
*s390.udeb
*sparc.udeb
*m68k.udeb
*armel.udeb
*hurd-i386.udeb
*i386.udeb
source/*
*.tar.gz
*.diff.gz
*.dsc
15 years, 4 months
Deploying images via koan and virt-image
by Bryan Kearney
Michael:
Looks like there is no current support for doing images via virt-image.
Is that correct? If so... are you open to looking at that type of
integration?
-- bk
15 years, 4 months
Strange behaviour after cobbler import
by Mark Brandis
Hi!
I have a strange problem after a cobbler import. I do the following:
cobbler import --arch=i386 --path=/mnt/cdrom --name=foo
This works without problems. When I want to install with pxe after that command finishes the boot stops after the pxe lines with the error:
unable to locate configuration file
A "cobber sync" on the command line does not help, a sync in the webui makes the problem go away.
Strange!?!
Mark
15 years, 4 months
VMWare / Cobbler Work flow
by Aaron Lippold
Hello,
I was hoping some of the folks working the VMWare Cobbler integration
could chat a little on the general work flow for creating VMWare
target profiles and how a development team would collaborate on
developing them. I have a team now working to develop a set of
profiles targeted at VMWare as the host and was hoping the list could
help just start the team.
The wiki seems a little sparse on what is supported, how to utilize
what is supported and what the development road map is.
Thanks,
Aaron
15 years, 4 months
Quick question on dynamic loading of authn_spacewalk
by Partha Aji
I am a bit puzzled on why authn_spacewalk is part of the cobbler
upstream. Shouldn't it be part of spacewalk project upstream ? Is the
problem just that there is no way to tell cobbler to dynamically load
modules outside its realm ?? I am just concerned that every time we find
a bug in authn_spacewalk.py its just going to take a lot of time to
submit to cobbler and have them review it. This also requires cobbler
reviewer to be aware of how authentication is done on spacewalk and
looks unnecessary to me.. Ideally I 'd like to be as follows. In
modules.conf
[authentication]
module = authn_spacewalk
or
[authentication]
module = foo.authn_spacewalk
The cobbler project should just assume authn_spacewalk.py exists
somewhere in the python path and move on..
If this functionality is there already in cobbler I think spacewalk
should be taking advantage of that.
Partha
15 years, 5 months
Manipulate yum repo files in %post
by Robin Bowes
Hi,
I'd like to manipulate yum repo files in the %post section of my
kickstarts, specifically to disable repos that are being provided
through local mirrors.
I've knocked together some python code that does this:
http://robinbowes.com/article.php/20081026162228424
Sample usage:
initool --file /etc/yum.repos.d/epel.repo --section epel --option enabled=0
initool --file /etc/yum.repos.d/epel.repo --section epel --del priority
My question: what's the best way to make this available to a kickstart?
Is there anything cobbler can do, or do I need to do something like:
echo > /tmp/initool << \EOF
# script goes here
...
EOF
chmod +x /tmp/initool
R.
15 years, 5 months
suse10 patch
by Shuichi Ihara
Hi,
I've created a patch to use cobbler on suse10 server. I would like to
share this patch.
I haven't tested all functions of cobbler yet, but the basic functions
that are start/stop, distro/profile/system, dhcpd management, provisioning
to clients and GUI interface worked well.
Some lines in this patch might not be smart and need more investigations,
but it would be good start as initial patch :)
Thanks
-Ihara
diff --git a/cobbler.spec b/cobbler.spec
index fe79c93..d1e9e94 100644
--- a/cobbler.spec
+++ b/cobbler.spec
@@ -8,17 +8,25 @@ Source0: %{name}-%{version}.tar.gz
License: GPLv2+
Group: Applications/System
Requires: python >= 2.3
+%if 0%{?suse_version} >= 1000
+Requires: apache2
+Requires: apache2-mod_python
+Requires: tftp
+%else
Requires: httpd
Requires: tftp-server
+Requires: mod_python
+%endif
Requires: python-devel
Requires: createrepo
-Requires: mod_python
Requires: python-cheetah
Requires: rsync
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
+%if 0%{?suse_version} < 0
BuildRequires: redhat-rpm-config
+%endif
BuildRequires: python-devel
BuildRequires: python-cheetah
%if 0%{?fedora} >= 8
@@ -53,7 +61,10 @@ applications.
%install
test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
-%{__python} setup.py install --optimize=1 --root=$RPM_BUILD_ROOT
+%if 0%{?suse_version} >= 1000
+PREFIX="--prefix=/usr"
+%endif
+%{__python} setup.py install --optimize=1 --root=$RPM_BUILD_ROOT $PREFIX
%post
if [ -e /var/lib/cobbler/distros ]; then
@@ -150,8 +161,13 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
%{python_sitelib}/cobbler/webui/*.py*
%{_mandir}/man1/cobbler.1.gz
/etc/init.d/cobblerd
+%if 0%{?suse_version} >= 1000
+%config(noreplace) /etc/apache2/conf.d/cobbler.conf
+%config(noreplace) /etc/apache2/conf.d/cobbler_svc.conf
+%else
%config(noreplace) /etc/httpd/conf.d/cobbler.conf
%config(noreplace) /etc/httpd/conf.d/cobbler_svc.conf
+%endif
%dir /var/log/cobbler/syslog
%defattr(755,root,root)
diff --git a/cobbler/utils.py b/cobbler/utils.py
index c6e5889..61137ef 100644
--- a/cobbler/utils.py
+++ b/cobbler/utils.py
@@ -726,6 +726,8 @@ def check_dist():
"""
if os.path.exists("/etc/debian_version"):
return "debian"
+ elif os.path.exists("/etc/SuSE-release"):
+ return "suse"
else:
# valid for Fedora and all Red Hat / Fedora derivatives
return "redhat"
@@ -761,6 +763,15 @@ def os_release():
rest = parts[1]
make = "debian"
return (make, float(version), rest)
+ elif check_dist() == "suse":
+ fd = open("/etc/SuSE-release")
+ for line in fd.read().split("\n"):
+ if line.find("VERSION") != -1:
+ version = line.replace("VERSION = ","")
+ if line.find("PATCHLEVEL") != -1:
+ rest = line.replace("PATCHLEVEL = ","")
+ make = "suse"
+ return (make, float(version), rest)
else:
return ("unknown",0)
diff --git a/config/cobblerd b/config/cobblerd
index 7d6d571..cf97f4d 100755
--- a/config/cobblerd
+++ b/config/cobblerd
@@ -26,10 +26,13 @@
[ -x /usr/bin/cobblerd ] || exit 0
DEBIAN_VERSION=/etc/debian_version
+SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -e $DEBIAN_VERSION ]; then
. /etc/init.d/functions
+elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
+ . /etc/rc.status
else
. /etc/rc.d/init.d/functions
fi
@@ -47,7 +50,12 @@ RETVAL=0
start() {
echo -n $"Starting cobbler daemon: "
- daemon --check $SERVICE $PROCESS --daemon $CONFIG_ARGS
+ if [ -e $SUSE_RELEASE ]; then
+ startproc -f -p /var/run/$SERVICE.pid /usr/bin/cobblerd $CONFIG_ARGS
+ rc_status -v
+ else
+ daemon --check $SERVICE $PROCESS --daemon $CONFIG_ARGS
+ fi
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCKFILE
@@ -56,7 +64,12 @@ start() {
stop() {
echo -n $"Stopping cobbler daemon: "
- killproc $PROCESS
+ if [ -e $SUSE_RELEASE ]; then
+ killproc -TERM /usr/bin/cobblerd
+ rc_status -v
+ else
+ killproc $PROCESS
+ fi
RETVAL=$?
echo
if [ $RETVAL -eq 0 ]; then
@@ -76,8 +89,14 @@ case "$1" in
$1
;;
status)
- status $PROCESS
- RETVAL=$?
+ if [ -e $SUSE_RELEASE ]; then
+ echo -n "Checking for service cobblerd "
+ checkproc /usr/bin/cobblerd
+ rc_status -v
+ else
+ status $PROCESS
+ RETVAL=$?
+ fi
;;
condrestart)
[ -f $LOCKFILE ] && restart || :
diff --git a/setup.py b/setup.py
index a08c554..d6ad253 100644
--- a/setup.py
+++ b/setup.py
@@ -39,7 +39,10 @@ if __name__ == "__main__":
backpath = "/var/lib/cobbler/backup/"
trigpath = "/var/lib/cobbler/triggers/"
etcpath = "/etc/cobbler/"
- wwwconf = "/etc/httpd/conf.d/"
+ if os.path.exists("/etc/SuSE-release"):
+ wwwconf = "/etc/apache2/conf.d/"
+ else:
+ wwwconf = "/etc/httpd/conf.d/"
wwwpath = "/var/www/cobbler/"
wwwcon = "/var/www/cobbler/webui/"
initpath = "/etc/init.d/"
15 years, 5 months
pxe_just_once not working
by Christopher Johnston
All,
I am running cobbler-1.2.8-1 and I am having some issues getting the pxe_just_once feature working. We have a scenario where the kickstart completes and the build process continues to go through a loop. This is mostly because we keep PXE enabled as a default on a large portion of our systems, but I thought the pxe_just_once flag will allow cobbler to disable the the system by removing the pxe links in /tftpboot when the system makes a final call out to cobbler to tell it has completed?
See below..
Its enabled and cobblerd is restarted/running:
root@xenguest01:/# grep pxe_just_once /etc/cobbler/settings
pxe_just_once: 1
root@xenguest01:/#
Host is set to netboot itself on next boot:
root@xenguest01:/# cobbler system report --name=client | grep netboot
netboot enabled? : True
root@xenguest01:/#
.
.
.
Kickstart completes
.
.
.
Host remains with the netboot flag still enabled, shouldnt this have disabled itself?
root@xenguest01:/# cobbler system report --name=core001.lax02.mtt | grep netboot
netboot enabled? : True
root@xenguest01:/#
$kickstart_done is specified in the %post section of the kickstart template:
root@xenguest01:/etc/cobbler# grep done fedora9_template.ks
$kickstart_done
root@xenguest01:/etc/cobbler#
Thanks,
- Chris
15 years, 5 months
PXE customizations
by Seann Clark
All,
I have a PXE server set up for various tasks on my cobbler system.
What I would like to do is have cobbler add its install profiles to a
specific pxe file, not the default file, since the default is a menu
system that allows one to select installs, system repair, or utilities.
I plan to use cobbler to manage my install base for everything but
unattended, but I don't want new profiles to nuke, or append to the
default PXE file. I am wondering if anyone has any tricks to get cobbler
to write to a different file for these. This is not dealing with the MAC
specific PXE files.
Regards
Seann
15 years, 5 months