Merge pull request #457 from panter/fixes/preos

Fixes for cdist preos command
This commit is contained in:
Nico Schottelius 2016-07-20 14:59:43 +02:00 committed by GitHub
commit f7ab5d4869
2 changed files with 21 additions and 7 deletions

View file

@ -18,7 +18,12 @@
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
#
# Check whether system has hostnamectl
# Check whether system has hostnamectl and it's usable, i.e. don't
# try to use it when systemd isn't running yet.
#
command -v hostnamectl || true
if command -v hostnamectl >/dev/null && hostnamectl status >/dev/null 2>&1; then
echo "yes"
else
true
fi

View file

@ -38,8 +38,9 @@ DEFAULT_MANIFEST = """
for pkg in \
file \
linux-image-amd64 \
lsb-release \
openssh-server curl \
syslinux grub2 \
pxelinux syslinux-common grub2 \
gdisk util-linux lvm2 mdadm \
btrfs-tools e2fsprogs jfsutils reiser4progs xfsprogs; do
__package $pkg --state present
@ -63,7 +64,7 @@ eof
# fix the bloody 'stdin: is not a tty' problem
__line /root/.profile --line 'mesg n' --state absent
__hostname preos
__hostname --name preos
"""
class PreOSExistsError(cdist.Error):
@ -85,11 +86,11 @@ class PreOS(object):
self.arch = arch
self.command = "debootstrap"
self.suite = "wheezy"
self.suite = "stable"
self.options = [ "--include=openssh-server",
"--arch=%s" % self.arch ]
self.pxelinux = "/usr/lib/syslinux/pxelinux.0"
self.pxelinux = "/usr/lib/PXELINUX/pxelinux.0"
self.pxelinux_cfg = """
DEFAULT preos
LABEL preos
@ -177,11 +178,18 @@ cp -L "$src" "$real_dst"
def create_pxelinux(self):
dst = os.path.join(self.out_dir, "pxelinux.0")
src = "%s/usr/lib/syslinux/pxelinux.0" % self.target_dir
src = "%s/usr/lib/PXELINUX/pxelinux.0" % self.target_dir
log.info("Creating pxelinux.0 ...")
shutil.copyfile(src, dst, follow_symlinks=True)
def create_ldlinux(self):
dst = os.path.join(self.out_dir, "ldlinux.c32")
src = "%s/usr/lib/syslinux/modules/bios/ldlinux.c32" % self.target_dir
log.info("Creating ldlinux.c32 ...")
shutil.copyfile(src, dst, follow_symlinks=True)
def create_pxeconfig(self):
configdir = os.path.join(self.out_dir, "pxelinux.cfg")
configfile = os.path.join(configdir, "default")
@ -218,6 +226,7 @@ cp -L "$src" "$real_dst"
self.create_initramfs()
self.create_pxeconfig()
self.create_pxelinux()
self.create_ldlinux()
def setup_initial_manifest(self, user_initial_manifest, replace_manifest):