Puppet import loop when using directory environments

When switching to Puppet directory environments, you might get the following error: Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not parse for environment production: Import loop detected for /etc/puppet/environments/production/manifests/includedfile.pp at /etc/puppet/environments/production/manifests/site.pp:16 on node the_name_of_your_node This error happens because when using directory environments, the manifest entry point is $confdir/environments/<ENVIRONMENT NAME>/manifests instead of […]

LVM snapshots explained

This article explains how LVM snapshots work and what the advantage of read/write snapshots is. We will go through a simple example to illustrate our explanation. First, create a dummy device that we will initialize as a PV: # dd if=/dev/zero of=dummydevice bs=8192 count=131072 # losetup /dev/loop0 dummydevice # pvcreate /dev/loop0 # pvs PV VG Fmt Attr […]

Virtual machines backup script for RHEV 3

Red Hat Enterprise Virtualization 3 (RHEV) comes with a great API that makes it easy to write Python scripts or Java programs for administrative tasks. The full documentation is available here : https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Virtualization/3.3/html/Developer_Guide/index.html A classical need is to automate the creation of virtual machine cold backups on an export domain. This can be easily done […]

What really happens during an RHN Satellite PXE boot ?

Debugging through the steps of an RHN Satellite or Spacewalk PXE boot and Kickstart is a pretty complicated task. This article shows the steps that are involved in such a boot process. Hopefully, this will clear up a little bit and help debugging the process: Phase 1 – Installation from RHN Satellite / Spacewalk POST […]

Find the last modified file recursively

Let’s say you’re in /var/log and you want to find the last modified file. You’d type ls -lrt but this is not sufficient to find out which logfile was modified last, because that logifle might be hidden somewhere in a subdirectory. How do you find it easily ? The following Bash code will help you […]