OpenVPN active/active cluster

Code snippets are for Gentoo systems but it should be easy to adapt this for other systems

This is a small howto explaining how to run a active/active Cluster (keeplaived) setup with OpenVPN. The active/active reflects that both cluster nodes run the same OpenVPN instance. In server mode this setup leads to routing problems as both nodes have the tunnel route added during startup (not after connect). This results in routing trouble as i needed the passive node to access the VPN tunnel via the active node. This is how i solved it:
Continue reading OpenVPN active/active cluster

Short review: Puppet for Gentoo servers

I recently started to integrate Puppet with my company’s OS installer to build custom Gentoo servers in almost no time. The install/build system reached a stable state and i want to share some information’s on what i did to get it working. The Gentoo support of puppet is not perfect but sufficient for my use case. There are still some issues to solve:

  • Slots don’t work (I’m working on a patch for the portage provider to address this issue)
  • No nice way to manage /etc/conf.d/net
  • Only the runlevel “default” can be managed (This is sufficient for most cases)
  • No built in USE flag support (i use a binhost so this doesn’t really affect my setup). Check this site for a possible solution

The missing slots integration is especially important when it comes to Tomcat. Tomcat requires sun-jdk-1.5 and sun-jdk-1.6. I solved this by adding sun-jdk-1.5 to our install image. Apart from this problems it works very well. Continue reading Short review: Puppet for Gentoo servers

Perl: Use of “flock”

This is a small example on flock. It may help you to prevent multiple running instances of the same script. Assume you run the script via cron and it may not be finished when cron attempts to start it again. This few lines of code solve this issue.

Continue reading Perl: Use of “flock”

Portage: Patch existing Perl module ebuild by using a overlay

You may have had the same issue as i some time ago. You install a perl module from Portage but you have to modify the module’s code. Of course you don’t want to patch and install manually. Assuming the module is named “foobar” here’s how i solved it:

Continue reading Portage: Patch existing Perl module ebuild by using a overlay

Gentoo: Unmerging software including configs and data

If you’re unmerging software in Gentoo some files stay on your server. This is a result of the setting CONFIG_PROTECT. To unmerge a package completely use this command:

~> CONFIG_PROTECT="" emerge . . . → Read More: Gentoo: Unmerging software including configs and data

Useful BASH setting: Ignore duplicate commands

There are many settings that make BASH even more usable. As many people doesn’t seem to know this particular parameter i post it here:

HISTCONTROL="ignoredups"

This setting in bashrc or profile makes BASH ignore duplicate commands when searching the history. It’s pretty useful if you had entered the same command . . . → Read More: Useful BASH setting: Ignore duplicate commands