<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>vanderkussen.org</title><link>https://blog.vanderkussen.org/</link><description>Have you tried turning it off and on again?</description><lastBuildDate>Sat, 30 Jul 2016 15:22:00 +0200</lastBuildDate><item><title>Deploy Kubernetes with ansible on Atomic</title><link>https://blog.vanderkussen.org/deploy-kubernetes-with-ansible-on-atomic.html</link><description>&lt;p&gt;I've been playing with &lt;a href="http://www.projectatomic.io/"&gt;Project Atomic&lt;/a&gt; as a
platform to run Docker containers for some time now. The reason I like Project
Atomic is something for another blogpost. One of the reasons however, is that
while it's a minimal OS, it does come with Python so I can use Ansible to do orchestration and configuration management.&lt;/p&gt;
&lt;p&gt;Now, running Docker containers on a single host is nice, but the real fun starts when you can run containers spread over a number of hosts. This is easier said than done and requires some extra services like a scheduler, service discovery, overlay networking,... There are several solutions, but one that I particularly like is &lt;a href="http://kubernetes.io"&gt;Kubernetes&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;ProjectAtomic happens to ship with all necessary pieces needed to deploy a Kubernetes cluster using Flannel for the overlay networking.
The only thing left is the configuration. Now this happens to be something Ansible is particularry good at.&lt;/p&gt;
&lt;p&gt;The following wil describe how you can deploy a 4 node cluster on top of Atomic hosts using Ansible. Let's start with the Ansible inventory.&lt;/p&gt;
&lt;h3&gt;inventory&lt;/h3&gt;
&lt;p&gt;We will keep things simple here by using a single file-based inventory file
where we explicitly specify the ip adresses of the hosts for testing purposes. The important part
here are the 2 groups &lt;strong&gt;k8s-nodes&lt;/strong&gt; and &lt;strong&gt;k8s-master&lt;/strong&gt;.
The &lt;strong&gt;k8s-master&lt;/strong&gt; group should contain only one host which will become the cluster manager. All nodes under &lt;strong&gt;k8s-nodes&lt;/strong&gt; will become nodes to run containers on.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[k8s-nodes]&lt;/span&gt;
&lt;span class="na"&gt;atomic02 ansible_ssh_host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;10.0.0.2&lt;/span&gt;
&lt;span class="na"&gt;atomic03 ansible_ssh_host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;10.0.0.3&lt;/span&gt;
&lt;span class="na"&gt;atomic04 ansible_ssh_host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;10.0.0.4&lt;/span&gt;


&lt;span class="k"&gt;[k8s-master]&lt;/span&gt;
&lt;span class="na"&gt;atomic01 ansible_ssh_host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;10.0.0.1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Variables&lt;/h3&gt;
&lt;p&gt;Currently these roles don't have many variables that can be configured but we
need to provide the variables for the &lt;strong&gt;k8s-nodes&lt;/strong&gt; group. Create a folder
&lt;code&gt;group_vars&lt;/code&gt; with a file that has the same name of the group. If you checked out
the repository you already have it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ tree group_vars/
group_vars/
    k8s-nodes
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The file should have following variables defined.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;skydns_enable&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;

&lt;span class="c1"&gt;# IP address of the DNS server.&lt;/span&gt;
&lt;span class="c1"&gt;# Kubernetes will create a pod with several containers, serving as the DNS&lt;/span&gt;
&lt;span class="c1"&gt;# server and expose it under this IP address. The IP address must be from&lt;/span&gt;
&lt;span class="c1"&gt;# the range specified as kube_service_addresses.&lt;/span&gt;
&lt;span class="c1"&gt;# And this is the IP address you should use as address of the DNS server&lt;/span&gt;
&lt;span class="c1"&gt;# in your containers.&lt;/span&gt;
&lt;span class="l l-Scalar l-Scalar-Plain"&gt;dns_server&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;10.254.0.10&lt;/span&gt;

&lt;span class="l l-Scalar l-Scalar-Plain"&gt;dns_domain&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;kubernetes.local&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Playbook&lt;/h3&gt;
&lt;p&gt;Now that we have our inventory we can create our playbook. First we configure
the k8s master node. Once this is configured we can configure the k8s nodes.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;deploy_k8s.yml&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; &lt;span class="p p-Indicator"&gt;-&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;name&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;Deploy k8s Master&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;hosts&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;k8s-master&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;remote_user&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;centos&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;become&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;roles&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;
     &lt;span class="p p-Indicator"&gt;-&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;k8s-master&lt;/span&gt;

 &lt;span class="p p-Indicator"&gt;-&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;name&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;Deploy k8s Nodes&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;hosts&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;k8s-nodes&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;remote_user&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;centos&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;become&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;
   &lt;span class="l l-Scalar l-Scalar-Plain"&gt;roles&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;
     &lt;span class="p p-Indicator"&gt;-&lt;/span&gt; &lt;span class="l l-Scalar l-Scalar-Plain"&gt;k8s-nodes&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Run the playbook.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;  ansible-playbook -i hosts deploy_k8s.yml
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If all ran without errors you should have your kubernetes cluster running. Lets
see if we can connect to it. You will need &lt;code&gt;kubectl&lt;/code&gt;. On Fedora you can install
the &lt;code&gt;kubernetes-client&lt;/code&gt; package.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ kubectl --server&lt;span class="o"&gt;=&lt;/span&gt;192.168.124.40:8080 get nodes
NAME              STATUS    AGE
192.168.124.166   Ready     20s
192.168.124.55    Ready     20s
192.168.124.62    Ready     19s
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;That looks good. Lets see if we can run a container on this cluster.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ kubectl --server&lt;span class="o"&gt;=&lt;/span&gt;192.168.124.40:8080 run nginx --image&lt;span class="o"&gt;=&lt;/span&gt;nginx
replicationcontroller &lt;span class="s2"&gt;&amp;quot;nginx&amp;quot;&lt;/span&gt; created
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Check the status:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ kubectl --server&lt;span class="o"&gt;=&lt;/span&gt;192.168.124.40:8080 get pods
NAME          READY     STATUS    RESTARTS   AGE
nginx-ri1dq   0/1       Pending   &lt;span class="m"&gt;0&lt;/span&gt;          55s
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If you see the pod status in state &lt;em&gt;pending&lt;/em&gt;, just wait a few moments. If this
is the first time you run the nginx container image, it needs to be downloaded
first which can take some time.
Once your pod is is running you can try to enter the container.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;kubectl --server&lt;span class="o"&gt;=&lt;/span&gt;192.168.124.40:8080 &lt;span class="nb"&gt;exec&lt;/span&gt; -ti nginx-ri1dq -- bash
root@nginx-ri1dq:/#
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This a rather basic setup (no HA masters, no auth, etc..). The idea is to
improve these Ansible roles and add more advanced configuration.&lt;/p&gt;
&lt;p&gt;If you are interested and want to try it out yourself you can find the source
here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gitlab.com/vincentvdk/ansible-k8s-atomic.git"&gt;https://gitlab.com/vincentvdk/ansible-k8s-atomic.git&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sat, 30 Jul 2016 15:22:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2016-07-30:deploy-kubernetes-with-ansible-on-atomic.html</guid><category>docker</category><category>ansible</category><category>autops</category></item><item><title>Adding new PHP versions to CentOS7 and ISPConfig</title><link>https://blog.vanderkussen.org/adding-new-php-versions-to-centos7-and-ispconfig.html</link><description>&lt;h2&gt;Adding PHP versions on CentOS7 and ISPConfig&lt;/h2&gt;
&lt;p&gt;Currently I'm using ISPConfig to manage serveral websites and the accompanying
things like dns, mail, databases etc..&lt;/p&gt;
&lt;p&gt;This setup runs on CentOS7 since that's my preffered OS. By default CentOS7
comes with php 5.4 which has gone &lt;a href="http://php.net/eol.php"&gt;EOL&lt;/a&gt; this September. A lot of
the newer php based applications like Drupal8 want at least php 5.5 so it was
time to update.&lt;/p&gt;
&lt;p&gt;Since the default php version is supported and receives backports until the EOL
of the CentOS release I decided to keep the default 5.4 version and to add the
newer versions as an option. ISPConfig also provides a way to use multiple PHP
version.&lt;/p&gt;
&lt;h3&gt;Software Collections.&lt;/h3&gt;
&lt;p&gt;The RHEL "ecosystem" has something called &lt;a href="http://www.softwarecollections.org"&gt;&lt;em&gt;Software Collections&lt;/em&gt;&lt;/a&gt; for some time now and the goal is to have more up to date software available without having to update the default packages.&lt;/p&gt;
&lt;h3&gt;Install the Software Collections&lt;/h3&gt;
&lt;p&gt;Install the software collection utils.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;yum install scl-utils
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Install the php version you want to add by adding the scl repo. The link can be
found on the &lt;a href="https://www.softwarecollections.org"&gt;software collections
website&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;rpm -ivh https://www.softwarecollections.org/en/scls/rhscl/php55/epel-7-x86_64/download/rhscl-php55-epel-7-x86_64.noarch.rpm
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Install php packages&lt;/h3&gt;
&lt;p&gt;Next, install the php packages you need. In my setup I make use of php-fpm to
run php applications.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;yum install php55-php php55-php-mysqlnd php55-php-fpm php55-php-mbstring
php55-php-opcache
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;You can now test the php version by enabeling the software collection. Software
Collections make use of a special file system hierarchy to avoid possible
conflicts between a single Software Collection and the base system installation.
These are stored in /opt/rn/&lt;collection-name&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[root@scl-test ~]# scl enable php55 bash
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Check the version.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[root@scl-test ~]# php -v
PHP 5.5.21 (cli) (built: Jun 26 2015 06:07:04)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
[root@scl-test ~]#
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Configure php-fmp and ISPConfig&lt;/h3&gt;
&lt;p&gt;To avaiod conflicts with my current running php-fpm service, we need to change
the port of the php-fpm service from the collection.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sed -e &amp;#39;s/9000/9500/&amp;#39; -i /opt/rh/php54/root/etc/php-fpm.d/www.conf
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If you have SELinux enabled you also need to execute&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;semanage port -a -t http_port_t -p tcp 9500
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Now you&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;systemctl start php55-php-fpm
&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 25 Nov 2015 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2015-11-25:adding-new-php-versions-to-centos7-and-ispconfig.html</guid></item><item><title>A critical view on Docker</title><link>https://blog.vanderkussen.org/a-critical-view-on-docker.html</link><description>&lt;p&gt;TL;DR Before you start reading this, I want to make it clear that I absolutely
don't hate Docker or the application container idea in general, at all!. I
really see containers become a new way of doing things in addition to the
existing technologies. In fact, I use containers myself more and more.&lt;/p&gt;
&lt;p&gt;Currently I'm using Docker for local development because it's so easy to get
your environment up and running in just e few seconds. But of course, that is
"local" development. Things start to get interesting when you want to deploy
over multiple Docker hosts in a production environment.&lt;/p&gt;
&lt;p&gt;At the &lt;a href="https://www.eventbrite.com/e/pragmatic-docker-day-ghent-belgium-tickets-16395147327"&gt;"Pragmatic Docker Day"&lt;/a&gt; a lot of people who were using (some even in production) or
experimenting with Docker showed up. Other people were completely new to Docker
so there was a good mix.&lt;/p&gt;
&lt;p&gt;During the Open Spaces in the afternoon we had a group of people who decided to
stay outside (the weather was really to nice to stay inside) and started
discussing the talks that were given in the morning sessions. This evolved in a
rather good discussion about everyone's personal view on the current state of
containers and what they might bring in the future. People chimed in and added
their opinion to the conversation&lt;/p&gt;
&lt;p&gt;That inspired me to write about the following items which are a combination of
the things that came up during the conversations and my own view on the current
state of Docker.&lt;/p&gt;
&lt;h1&gt;The Docker file&lt;/h1&gt;
&lt;p&gt;A lot of people are now using some configuration management tool and have
invested quite some time in their tool of choice to deploy and manage the state
of their infrastructure. Docker provides the Dockerfile to build/configure your
container images and it feels a bit like a "dirty" way/hack to do this given
that config management tools provide some nice features.&lt;/p&gt;
&lt;p&gt;Quite some people are using their config management tool to build their
container images. I for instance upload my Ansible playbooks into the image
(during build) and then run them. This allows me to reuse existing work I know that works. And I can use it for both containers and non-containers.&lt;/p&gt;
&lt;p&gt;It would have been nice if Docker somehow provided a way to integrate the
exiting configuration management tools a bit better. Vagrant does a better job
here.&lt;/p&gt;
&lt;p&gt;As far as I know you also can't use variables (think Puppet Hiera or Ansible
Inventory) inside your Dockerfile. Something configuration management tools
happen to do be very good at.&lt;/p&gt;
&lt;h1&gt;Bash scripting&lt;/h1&gt;
&lt;p&gt;When building more complex Docker images you notice that a lot of Bash scripting is
used to prep the image and make it do what you want. Things like passing
variables into configuration files, creating users, preparing storage, configure and
start services, etc..  While Bash is not necessarily a bad thing, it all feels
like a workaround for things that are so simple when not using containers.&lt;/p&gt;
&lt;h1&gt;Dev vs Ops all over again?&lt;/h1&gt;
&lt;p&gt;The people I talked to agreed on the fact that Docker is rather developer
focused and that it allows them to build images containing a lot of stuff where
you might have no control over. It abstracts away possible issues. The container
works so all is well..right?&lt;/p&gt;
&lt;p&gt;I believe that when you start building and using containers the DevOps aspect is
more important then ever. If for instance a CVE is found in a library/service that has
been included in the container image you'll need to update this in your base
image and then rolled out through your deployment chain. To make this
possible all stakeholders must know what is included, and in which version of
the Docker image. Needless to say this needs both ops and devs working together.
I don't think there's a need for "separation of concerns" as Docker likes to
advocate.  Haven't we learned that creating silo's isn't the best idea?&lt;/p&gt;
&lt;h1&gt;More complexity&lt;/h1&gt;
&lt;p&gt;Everything in the way you used to work becomes different once you start using
containers.  The fact that you can't ssh into something or let your
configuration management make some changes just feels awkward.&lt;/p&gt;
&lt;h2&gt;Networking&lt;/h2&gt;
&lt;p&gt;By default Docker creates a Linux Bridge on the host where it creates interfaces
for each container that gets started. It then adjusts the iptables &lt;em&gt;nat&lt;/em&gt; table
to pass traffic entering a port on the host to the exposed port inside the
container.&lt;/p&gt;
&lt;p&gt;To have a more advanced network configuration you need to look at tools like
weave, flannel, etc.. Which require more research to see what fits your specific
use case best.&lt;/p&gt;
&lt;p&gt;Recently I was wondering if it was possible to have multiple nics inside your
container because I wanted this to test Ansible playbooks that configure
multiple nics. Currently it's not possible but there's a ticket open on GitHub
https://github.com/docker/docker/issues/1824 which doesn't give me much hope.&lt;/p&gt;
&lt;h2&gt;Service discovery&lt;/h2&gt;
&lt;p&gt;Once you go beyond playing with containers on your laptop and start using
multiple docker hosts to scale your applications, you need to have a way to know
where the specific service you want to connect to is running and on what port it
is running. You probably don't want to manually define ports per container on
each host because that will become tedious quite fast. This is were tools like
Consul, etcd etc.. come in. Again some extra tooling/complexity.&lt;/p&gt;
&lt;h2&gt;Storage&lt;/h2&gt;
&lt;p&gt;You will always have something that needs persistence and when you do, you'll
need storage. Now, when using containers the Docker way, you are assumed to put
as much as possible inside the container image. But some things like log files,
configuration files, application generated data, etc..  are a moving target.&lt;/p&gt;
&lt;p&gt;Docker provides volumes to pass storage from the host inside a container.
Basically you map a path on the host to a path inside the container. But this
poses some questions like, how do I share this in case the container gets
started, how can I make sure this is secure? How do I manage all these volumes?
What is the best way to share this among different hosts? ...&lt;/p&gt;
&lt;p&gt;One way to consolidate your volumes is to use "data-only" containers. This means
that you run a container with some volumes attached to it and then link to them
from other containers so they all use a central place to store data. This works
but has some drawbacks imho.&lt;/p&gt;
&lt;p&gt;This container just needs to exist (it doesn't even need to be running) and as
long as this container or a container that links to it exists, the volumes are
kept on the system. Now, if you by accident delete the container holding the
volumes or you delete the last container linking to them, you loose all your
data. With containers coming and going, it can become tricky to keep track of
this and making mistakes at this level has some serious consequences.&lt;/p&gt;
&lt;h1&gt;Security&lt;/h1&gt;
&lt;h2&gt;Docker images&lt;/h2&gt;
&lt;p&gt;One of the "advantages" that Docker brings is the fact that you can pull images
from the Docker hub and from what I have read this is in most cases encouraged.
Now, everyone I know who runs a virtualization platform will never pull a
Virtual Appliance and run it without feeling dirty.  when using a cloud
platform, chances are that you are using prebuild images to deploy new instances
from. This is analogue to the Docker images with that difference that people
who care about their infrastructure build their own images. Now most Linux
distributions provide an "official" Docker image. These are the so called
"trusted" images which I think is fine to use as a base image for everything
else. But when I search the Docker Hub for Redis I get 1546 results. Do you
trust all of them and would you use them in your environment?&lt;/p&gt;
&lt;p&gt;What can go wrong with pulling an OpenVPN container. Right..?&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="en"&gt;&lt;p lang="en" dir="ltr"&gt;current
ISSUES.md status &lt;a
href="http://t.co/2m3fyaHhnw"&gt;pic.twitter.com/2m3fyaHhnw&lt;/a&gt;&lt;/p&gt;&amp;mdash; John E.
Vincent (@lusis) &lt;a
href="https://twitter.com/lusis/status/596677107499081728"&gt;May 8,
2015&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;script async src="//platform.twitter.com/widgets.js"
charset="utf-8"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;This is also an interesting read:
&lt;a href="https://titanous.com/posts/docker-insecurity"&gt;https://titanous.com/posts/docker-insecurity&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;User namespacing&lt;/h2&gt;
&lt;p&gt;Currently there's no user namespacing which means that if a UID inside the
docker container matches the UID of a user on the host, that user will have
access to the host with the same permissions. This is one of the reasons why you
should not run processes as the root user inside containers (and outside).  But
even then you need to be careful with what you're doing.&lt;/p&gt;
&lt;h2&gt;Containers, containers, containers..&lt;/h2&gt;
&lt;p&gt;When you run more and more stuff in containers, you'll end up with a few
hundred, thousand or even more containers. If you're lucky they all share the
same base image. And even if they do, you still need to update them with fixes
and security patches which results in newer base images. At this point all your
existing containers should be rebuild and redeployed. welcome to the immutable
world..&lt;/p&gt;
&lt;p&gt;So the "problem" just shifts up a layer. A Layer where the developers have more
control over what gets added. What do you do when the next OpenSSL bug pops up?
Do you know which containers has which OpenSSL version..?&lt;/p&gt;
&lt;h1&gt;Minimal OS's&lt;/h1&gt;
&lt;p&gt;Everyone seems to be building these mini OS's these days like CoreOS,
ProjectAtomic, RancherOS, etc..  The idea is that updating the base OS is a
breeze (reboot, AB partition etc..) and all services we need are running inside
containers.&lt;/p&gt;
&lt;p&gt;That's all nice but people with a sysadmin background will quickly start asking
questions like, can I do software raid? Can I add my own monitoring on this
host?  Can I integrate with my storage setup? etc...&lt;/p&gt;
&lt;h1&gt;Recap&lt;/h1&gt;
&lt;p&gt;What I wanted to point out is that when you decide to start using containers,
keep in mind that this means you'll need to change your mindset and be ready to
learn quite some new ways to do things.&lt;/p&gt;
&lt;p&gt;While Docker is still young and has some shortcomings I really enjoy working
with it on my laptop and use it for testing/CI purposes. It's also exciting (and
scary at the same time) to see how fast all of this evolves.&lt;/p&gt;
&lt;p&gt;I've been writing this post on and off for some weeks and recently some
announcements at Dockercon might address some of the above issues. Anyway, if
you've read until here, I want to thank you and good luck with all your
container endeavors. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Mon, 22 Jun 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2015-06-22:a-critical-view-on-docker.html</guid></item><item><title>Ansible and Opennebula</title><link>https://blog.vanderkussen.org/ansible-and-opennebula.html</link><description>&lt;p&gt;Recently we decided to deploy a private cloud to replace our RHEV setup. The
reasoning behind this will be covered in an other blog post, but the main reason
was the higher level of automation we could achieve with Opennebula compared to
RHEV. In this post I would like to talk about how we used Ansible to help us
with the setup of Opennebula and what we are going to do in the near future.&lt;/p&gt;
&lt;p&gt;Why Ansible? Well, we were already using Ansible to perform repeatable
deployments in our test environments to save us some valuable time compared to
"manual" setups. This way we can test new code or deploy complete test
environments faster.&lt;/p&gt;
&lt;p&gt;So when we decided to deploy Opennebula we started writing ansible playbooks
from the first start because we wanted to test several setups until we had a
configuration that we found performant enough and was configured the way we
wanted. This allowed us to rebuild the complete setup from scratch (using Cobbler
for physical deployments) and have a fresh setup 30min later. This included a
fully configured setup with Opennebula Management Node, Hypervisors(kvm) and
everything we needed to further configure our Gluster storage backend.&lt;/p&gt;
&lt;p&gt;One of the advantages of Ansible is that it is not just a configuration
management tool but can do orchestration to. Opennebula for example uses SSH to
communicate to all the hypervisor nodes. So during the deployment of a
hypervisor node we use the &lt;em&gt;delegate_to&lt;/em&gt; module to fetch the earlier generated
ssh keys and deploy them on the hypervisor. Pretty convenient..&lt;/p&gt;
&lt;p&gt;We currently have quite complete playbooks that use a combination of 3 roles.
They do need some testing and when we feel they can be used by other people too,
we'll put them on the Ansible Galaxy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;one_core : configures the base for both KVM nodes and the sunstone service&lt;/li&gt;
&lt;li&gt;one_sunstone : configures the Sunstone UI service&lt;/li&gt;
&lt;li&gt;one_kvmnode : configures the hypervisor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Until now we haven't used Ansible to keep our config in sync or to do updates,
but it's something we have in the pipeline and should be quite trivial using the
current Ansible playbooks.&lt;/p&gt;
&lt;p&gt;Another thing we'll start working on are modules to support Opennebula. We
already had a look at the possibilities Opennebula provides and should be quite
trivial to build using its API.&lt;/p&gt;
&lt;p&gt;We are very pleased with both projects as they aim to keep things simple which
is important to us since we are a very small team and have to move forward at a
rather fast pace.&lt;/p&gt;
&lt;p&gt;The playbooks can be found on &lt;a href="https://github.com/vincentvdk/ansible_pb_opennebula"&gt;github&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 12 Oct 2014 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2014-10-12:ansible-and-opennebula.html</guid></item><item><title>Backup Zarafa with Bacula</title><link>https://blog.vanderkussen.org/backup-zarafa-with-bacula.html</link><description>&lt;p&gt;Last week I finished migrating our mail/collaboration platform to &lt;a href="http://www.zarafa.com"&gt;Zarafa&lt;/a&gt;, and as with all things this needs to be backed up.
We're running the Zarafa Enterprise edition which come's with a backup tool called zarafa-backup which works like this :&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;first time&lt;/strong&gt; you run the zarafa-backup tool it creates a data file and an index file refering to the items (folders and mails) inside the data file.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;next time&lt;/strong&gt; you run zarafa-backup it detects the existing files and creates an incremental data file and updates the corresponding index file. It keeps doing this until you delete the data files and index file. Then it wil create a new full backup and the cycle will start all over.&lt;/p&gt;
&lt;p&gt;We are using Bacula to do our backups so I needed to work something out. &lt;/p&gt;
&lt;p&gt;As stated earlier, zarafa-backup just keeps on creating incrementals which means that if you keep this running a restore will involve restoring a lot of incrementals first. This is not something I wanted...&lt;/p&gt;
&lt;p&gt;So I made my schedule like this :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;create a full backup on Friday evening. That way we have the weekend to run the backup.&lt;/li&gt;
&lt;li&gt;Until the next Friday we let zarafa-backup creating incrementals in the working folder.&lt;/li&gt;
&lt;li&gt;On the next Friday we move the complete set to an other folder ( I called it weekly) and back it up. If this is successfull we empty the weekly folder again. Then we run zarafa-backup again which creates a new full backup (since the complete set has been moved and the working directory is empty).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bacula schedule&lt;/h3&gt;
&lt;p&gt;Two schedules are created, each whith their own storage pool.
 * One we run on Friday.
 * One we run all the other days.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;schedule &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;zarafa-dly&amp;quot;&lt;/span&gt;
    &lt;span class="nv"&gt;Run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;full &lt;span class="nv"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ZDLY-POOL sat-thu at 19:00
&lt;span class="o"&gt;}&lt;/span&gt;   
schedule &lt;span class="o"&gt;{&lt;/span&gt; 
    &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;zarafa-wkly&amp;quot;&lt;/span&gt;
    &lt;span class="nv"&gt;Run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;full &lt;span class="nv"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ZWKLY-POOL fri at 19:00
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Bacula Zarafa client&lt;/h3&gt;
&lt;p&gt;The client config has 2 jobs defined.
 * One that does the daily backups using the "zarafa-dly" schedule.
 * One that does the backups of the weekly sets using the "zarafa-wkly" schedule.
Each job runs a script before the backup run. The second job that backups the weekly sets also has a script that runs after the backup has been made. This script empties the weekly folder.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Job &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;MAIL02-DLY&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;FileSet&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ZARAFA-STORES&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;Client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; mail-02
        &lt;span class="nv"&gt;Storage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; TapeRobot
        Write &lt;span class="nv"&gt;Bootstrap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/var/lib/bacula/%c.bsr&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;Messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; Standard
        &lt;span class="nv"&gt;Schedule&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;zarafa-dly&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;Type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; Backup
        &lt;span class="nv"&gt;Pool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; ZDLY-POOL
        &lt;span class="nv"&gt;ClientRunBeforeJob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/etc/bacula/zbackup.sh&amp;quot;&lt;/span&gt;
        Run After &lt;span class="nv"&gt;Job&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/scripts/bacula2nagios \&amp;quot;%n\&amp;quot; 0 \&amp;quot;%e %l %v\&amp;quot;&amp;quot;&lt;/span&gt;
        Run After Failed &lt;span class="nv"&gt;Job&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/scripts/bacula2nagios \&amp;quot;%n\&amp;quot; 1 \&amp;quot;%e %l %v\&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

job &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;MAIL02-WKLY&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;FileSet&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ZARAFA-WEEKLY-STORES&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;Client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; mail-02
        &lt;span class="nv"&gt;Storage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; TapeRobot
        Write &lt;span class="nv"&gt;Bootstrap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/var/lib/bacula/%c.bsr&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;Messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; Standard
        &lt;span class="nv"&gt;Schedule&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;zarafa-wkly&amp;quot;&lt;/span&gt;
        &lt;span class="nv"&gt;Type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; Backup
        &lt;span class="nv"&gt;Pool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; ZWKLY-POOL
        &lt;span class="nv"&gt;ClientRunBeforeJob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/etc/bacula/zbackup.sh&amp;quot;&lt;/span&gt;
    Client Run After &lt;span class="nv"&gt;Job&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/etc/bacula/zbackup-cleanup.sh&amp;quot;&lt;/span&gt;
    Run After &lt;span class="nv"&gt;Job&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/scripts/bacula2nagios \&amp;quot;%n\&amp;quot; 0 \&amp;quot;%e %l %v\&amp;quot;&amp;quot;&lt;/span&gt;
        Run After Failed &lt;span class="nv"&gt;Job&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/scripts/bacula2nagios \&amp;quot;%n\&amp;quot; 1 \&amp;quot;%e %l %v\&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Backup script&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c1"&gt;#Variables&lt;/span&gt;
&lt;span class="nv"&gt;ZBFOLDER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/zarafa_backup/working
&lt;span class="nv"&gt;WEEKLYFOLDER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/zarafa_backup/weekly
&lt;span class="nv"&gt;DRFOLDER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/zarafa_backup/dr
&lt;span class="nv"&gt;WEEK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;date +%W&lt;span class="sb"&gt;`&lt;/span&gt;

&lt;span class="c1"&gt;#check if it&amp;#39;s Friday or if the folder is empty&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;date +%w&lt;span class="sb"&gt;`&lt;/span&gt; -eq &lt;span class="m"&gt;5&lt;/span&gt; -a &lt;span class="sb"&gt;`&lt;/span&gt;ls -A &lt;span class="nv"&gt;$ZBFOLDER&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; wc -l&lt;span class="sb"&gt;`&lt;/span&gt; -eq &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Starting Full backup&amp;quot;&lt;/span&gt;
    zarafa-backup -a -o &lt;span class="nv"&gt;$ZBFOLDER&lt;/span&gt;
  &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;date +%w&lt;span class="sb"&gt;`&lt;/span&gt; -eq &lt;span class="m"&gt;5&lt;/span&gt; -a &lt;span class="sb"&gt;`&lt;/span&gt;ls -A &lt;span class="nv"&gt;$ZNBFOLDER&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; wc -l&lt;span class="sb"&gt;`&lt;/span&gt; -ne &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Copying working to weekly and start new Full backup&amp;quot;&lt;/span&gt;
    mkdir -p &lt;span class="nv"&gt;$WEEKLYFOLDER&lt;/span&gt;/week-&lt;span class="nv"&gt;$WEEK&lt;/span&gt;
    cp &lt;span class="nv"&gt;$ZBFOLDER&lt;/span&gt;/* &lt;span class="nv"&gt;$WEEKLYFOLDER&lt;/span&gt;/week-&lt;span class="nv"&gt;$WEEK&lt;/span&gt;
    rm -f &lt;span class="nv"&gt;$ZBFOLDER&lt;/span&gt;/*
    zarafa-backup -a -o &lt;span class="nv"&gt;$ZBFOLDER&lt;/span&gt;
  &lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Starting Incremental backup&amp;quot;&lt;/span&gt;
    zarafa-backup -a -o &lt;span class="nv"&gt;$ZBFOLDER&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;

&lt;span class="o"&gt;{&lt;/span&gt;% endhighlight %&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;### cleanup script&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;% highlight bash %&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c1"&gt;#cleanup the weekly folder after bacula has run&lt;/span&gt;
&lt;span class="nv"&gt;WEEKLYFOLDER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/zarafa_backup/weekly

rm -rf &lt;span class="nv"&gt;$WEEKLYFOLDER&lt;/span&gt;/*
&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Mon, 05 Mar 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2012-03-05:backup-zarafa-with-bacula.html</guid></item><item><title>Detect MTU size when using Jumbo Frames</title><link>https://blog.vanderkussen.org/detect-mtu-size-when-using-jumbo-frames.html</link><description>&lt;p&gt;Recently I've setup an iSCSI target based on RHEL6 + tgt. After adding Logical Volumes to a target in the tgtd config file, the iSCSI target was discoverable and ready for use.&lt;/p&gt;
&lt;p&gt;After testing this setup for a few days I wanted to tune the network traffic by enabeling Jumbo Frames. If you search on the interwebz you'll most likely find information about adding "MTU=9000" ( for RHEL based clones) to the config file of the network interface.&lt;/p&gt;
&lt;p&gt;The problem with Jumbo Frames is that when setting the mtu to high, you get fragmentation. Changing your mtu to 9000 will probably lead to fragmentation. If you don't know this it can be quite hard to troubleshoot because you can still use ssh, ping the target etc.. but the iSCSI targets will keep failing.&lt;/p&gt;
&lt;p&gt;You can easily check this with good old ping. Running this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ping -M do -s 9000 &amp;lt;target_ip&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-M : MTU discovery strategy. "do" means "prohibit fragmentation"&lt;/li&gt;
&lt;li&gt;-s : here you can specify the packet size&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gave me the following result :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;From 10.0.0.13 icmp_seq=1 Frag needed and DF set (mtu = 9000)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Lower the packet size until you get a normal ping reply. This is the value you can use as your mtu size in your network card's config file. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;ping -M do -s 8900 &amp;lt;target_ip&amp;gt;&lt;/code&gt; &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 22 Jun 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2011-06-22:detect-mtu-size-when-using-jumbo-frames.html</guid></item><item><title>RHEV setup</title><link>https://blog.vanderkussen.org/rhev-setup.html</link><description>&lt;p&gt;This blog post comes a little late because I did this RHEV setup at our company more than 6 months ago and it has been living in the drafts folder for some time now. Now with RHEV 3.0 Beta released I tought it's time to publish this.&lt;/p&gt;
&lt;p&gt;About a year and a half ago we started looking at alternatives for our VMWare ESXi setup because we wanted to add hypervisor nodes to our 2 existing nodes running VMWare ESXi. We also wanted the ability to live migrate vm's between the nodes. At the same time Red Hat released RHEV 2.1 and being a Red Hat partner we decided to evaulate it. &lt;/p&gt;
&lt;p&gt;We extended our existing setup with 2 Supermicro servers and a Supermicro SATA disk based SAN box configured as an iSCSI target providing around 8TB of usable storage. &lt;/p&gt;
&lt;h3&gt;Migration&lt;/h3&gt;
&lt;p&gt;To migrate our existing VM's running on VMWare we used the virt-v2v tool that converts and moves VMWare machines to RHEV. This procedure can be scripted so you can define a set of VM's you want to migrate in one go. Unfortunate these VM's need to be powerd down. I noticed that if your vmdk folders/files are scattered around on you storage including differend folder names, the virt-v2v tool in some cases bails out. In our case I could understand why the tool refused to migrate some machines (it was quite a mess). &lt;/p&gt;
&lt;h3&gt;Hypervisors&lt;/h3&gt;
&lt;p&gt;You have 2 options to install the hypervisor nodes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RHEV-H  : stripped RHEL with a 100MB foorprint that provides enough to function as a hypervisor node.&lt;/li&gt;
&lt;li&gt;RHEL    : a default RHEL install you can configure yourself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We created a custom profile on our Kickstart server so we could easily deploy hypervisors nodes based on a standard RHEL. By using a standard RHEL you can install additional packages later on which is not the case with a RHEV-H based install.&lt;/p&gt;
&lt;p&gt;Once installed you can then add this node from within the manager interface to your cluster. Once added it will automatically install the necessary packages and becomes active in the cluster.&lt;/p&gt;
&lt;h3&gt;Storage&lt;/h3&gt;
&lt;p&gt;After adding hypervisor nodes you need to create "Storage Domains" based on either NFS, FC or iSCSI. Besides Storage Domains you also need to define an ISO domain to stock your installation images. If you want to migrate VM's from VMWare or other RHEV clusters you need to create an Export Domain.&lt;/p&gt;
&lt;p&gt;In each cluster one hypervisor node automatically gets the SPM (Storage Pool Manager) role defined. This host keeps track of where storage is assigned to. As soon as this host is put in maintenance or becomes unavailable another host in the cluster will take over the SPM role.&lt;/p&gt;
&lt;p&gt;VM's can use Preallocated disks (RAW) or Thin Provisioning (QCOW). For best performance Preallocated is recommended. &lt;/p&gt;
&lt;h3&gt;conclusion&lt;/h3&gt;
&lt;p&gt;We have been running this setup for more than a year now and haven't had any real issues with it. We actually filed 2 support cases which have been resolved in newer releases of RHEV. At the moment we run around 100 VM's and although I haven't run any benchmarks yet, I see no real difference with our VMWare setup using FC storage. 
Although the product still has some drawbacks I believe it has a solid base to build on and already has some nice features like Live Migration, Load Balancing, Thin provisioning,..&lt;/p&gt;
&lt;h3&gt;Cons&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;RHEV-M (manager) runs on Windows&lt;/li&gt;
&lt;li&gt;RHEV-M can only be accessed via IE (will probably change in 3.1)&lt;/li&gt;
&lt;li&gt;Storage part is quite confusing at first.&lt;/li&gt;
&lt;li&gt;API only accesible via Powershell&lt;/li&gt;
&lt;li&gt;no live snapshots&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In a few weeks I'll probably start testing RHEV 3.0 which now runs on Linux on JBOSS. This makes me think if JBOSS clustering will work to get RHEV-M working in a HA setup.  &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Mon, 20 Jun 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2011-06-20:rhev-setup.html</guid></item><item><title>Switched to Jekyll</title><link>https://blog.vanderkussen.org/switched-to-jekyll.html</link><description>&lt;p&gt;It has been a while since I last blogged about a "decent" topic and actually it's been a while blogging about anything. The reason is the lack of time and also some lazyness. But that should change now, and the first step I took was migrating my blog from Drupal to a Jekyll generated website.
Not that Drupal is bad or anything, but it's quite overkill and somehow felt not really productive while creating content.&lt;/p&gt;
&lt;p&gt;So how did I end up with Jekyll?&lt;/p&gt;
&lt;p&gt;Because I like using plain text files for writing (I use Latex quite a lot) I started looking for a blogging tool that used plain text files to store it's content instead of a database. &lt;a href="http://pyblosxom.bluesock.org/"&gt;PyBloxsom&lt;/a&gt;, &lt;a href="http://www.blosxom.com/"&gt;Blosxom&lt;/a&gt; came to mind, but then &lt;a href="https://github.com/mojombo/jekyll/wiki"&gt;Jekyll&lt;/a&gt; popped up in one of my search results and immediatly liked it because it generates static content you can upload to any webserver. No more php, python, perl, Mysql or updating needed. However, you do need Ruby on the machine that does the generation..
One "drawback" of a static website is commenting and for a moment I was planning on dropping comments on my blog but went for &lt;a href="http://disqus.com/"&gt;Disqus&lt;/a&gt; which I actually quite like.&lt;/p&gt;
&lt;p&gt;Now I have my blog stored in a git repository that rsyncs the static content to my webserver when I push my changes. As simple as that.&lt;/p&gt;
&lt;p&gt;I really like the thought of using &lt;a href="http://en.wikipedia.org/wiki/Markdown"&gt;Markdown&lt;/a&gt; and vim to write my blogposts from now on (and of course the geeky factor of all this).
The only thing left is improving the layout and sanatizing the setup a bit more&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sat, 11 Jun 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2011-06-11:switched-to-jekyll.html</guid></item><item><title>I'll be at LOAD (Linux Open Administrator Days)</title><link>https://blog.vanderkussen.org/ill-be-at-load-linux-open-administrator-days.html</link><description>&lt;p&gt;&lt;img alt="LOADays" src="http://www.loadays.org/press/banner.png" title="Linux Open Administration days" /&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 13 Apr 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2011-04-13:ill-be-at-load-linux-open-administrator-days.html</guid></item><item><title>Getting DropBox to work with SELinux</title><link>https://blog.vanderkussen.org/getting-dropbox-to-work-with-selinux.html</link><description>&lt;p&gt;Recently &lt;a href="http://vanginderachter.be"&gt;Serge&lt;/a&gt; mentioned DropBox to me, and I remembered creating an account once but haven't used or installed it in the last 2 years.&lt;/p&gt;
&lt;p&gt;These days you also get  lot more free space with your DropBox so I decided to start using it again. &lt;/p&gt;
&lt;p&gt;So I started installing DropBox using the rpm from their website, but got an SELinux warning. 
Setroubleshootd perfectly explains what's going on and the solution is trivial.&lt;/p&gt;
&lt;p&gt;&lt;code lang="bash"&gt;
[root@localhost ~]# semanage fcontext -a -t execmem_exec_t '/home/vincent/.dropbox-dist/dropbox'
[root@localhost ~]# restorecon -vvF '/home/vincent/.dropbox-dist/dropbox'
restorecon reset /home/vincent/.dropbox-dist/dropbox context unconfined_u:object_r:user_home_t:s0-&amp;gt;system_u:object_r:execmem_exec_t:s0
&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 21 Nov 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-11-21:getting-dropbox-to-work-with-selinux.html</guid></item><item><title>RHCE</title><link>https://blog.vanderkussen.org/rhce.html</link><description>&lt;p&gt;So today I went for the second time to sit the RHCE exam. This time the results were better then &lt;a href="http://blog.vanderkussen.org/?q=node/40"&gt;earlier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;RHCT components score: 100.0
RHCE components score: 100.0&lt;/p&gt;
&lt;p&gt;RHCE certificate number : 805010290454578&lt;/p&gt;
&lt;p&gt;The instructor mentioned that this was probably one of the last exams based on RHEL5. &lt;/p&gt;
&lt;p&gt;Anyways, I'm glad I made it this time...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Fri, 29 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-10-29:rhce.html</guid></item><item><title>Fedora 14 Release party</title><link>https://blog.vanderkussen.org/fedora-14-release-party.html</link><description>&lt;p&gt;The date for the Belgium Fedora Release Party has been set. A bigger (as in "print this and hang it up in your office") file has been attached.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blog.vanderkussen.org/sites/default/files/images/flyer-poster-small.png" alt="Fedora 14 Release party poster" title="Fedora 14 Release party poster"  class="image image-_original " width="400" height="566" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.vanderkussen.org/sites/default/files/flyer-poster.png"&gt;Large image&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Thu, 21 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-10-21:fedora-14-release-party.html</guid></item><item><title>LOAD dinner</title><link>https://blog.vanderkussen.org/load-dinner.html</link><description>&lt;p&gt;Yesterday evening we had a dinner with most of the LOAD organizers to catch up and have a nice get together.
On the other hand we wanted to discuss some things regarding LOAD. &lt;/p&gt;
&lt;p&gt;One of them was if we all wanted to organise a second edition of LOAD, and i can already tell you there'll be a second edition of LOAD.
For now that's the only thing that's certain. Date, location, talks, ... are still undecided although the location will probably be the same.&lt;/p&gt;
&lt;p&gt;We will soon archive the current website and start posting updates regarding the next edition.&lt;/p&gt;
&lt;p&gt;We hope to see you all at the next edition of LOAD.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 11 Aug 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-08-11:load-dinner.html</guid></item><item><title>Fedora 13 Release Party @ hackerspace Ghent</title><link>https://blog.vanderkussen.org/fedora-13-release-party-hackerspace-ghent.html</link><description>&lt;p&gt;This time the Fedora 13 Release Party took place in the Hackerspace in Ghent, called WhiteSpace.
As i arrived in the street where the Hackerspace is located i noticed someone who was also at the previous Release party.&lt;/p&gt;
&lt;p&gt;A few minutes later &lt;a href="http://fedoraproject.org/wiki/User:Biertie"&gt;biertie&lt;/a&gt; arrived with a big Fedora banner and signs to hang up so people would find their way to the HackerSpace (quite handy since the venue was like a small labyrinth).&lt;/p&gt;
&lt;p&gt;Next thing was putting the PXE boot server i prepared in place so people could install Fedora 13 on their machine. After PXE booting some laptops to see if it stil worked we were good to go.
Bert also created USB sticks with Fedora for some people.&lt;/p&gt;
&lt;p&gt;The last day of &lt;a href="http://puppetcamp.org/europe-2010-ghent" title="Puppet Camp Ghent"&gt;Puppet Camp Europe&lt;/a&gt; was also taking place in Ghent and a lot of people came over to the Fedora Release Party and the HackerSpace became quite crowded.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fedoraproject.org/wiki/User:Biertie" title="bert"&gt;bert&lt;/a&gt; ordered pizza's with the Fedora budget he had so we wouldn't starve. Drinks were provided by the HackerSpace for for very reasonable prices. &lt;a href="http://nl.wikipedia.org/wiki/Club-Mate" title="Club Mate"&gt;Club Mate&lt;/a&gt; anyone?&lt;/p&gt;
&lt;p&gt;After the food &lt;a href="http://fedoraproject.org/wiki/User:Biertie"&gt;bert&lt;/a&gt; gave a quick presentation about the new stuff in Fedora 13.
&lt;a href="http://dag.wieers.com" title="Dag Wieers"&gt;Dag Wieers&lt;/a&gt; also showed up and was aked to give a lightening talk about &lt;a href="http://dag.wieers.com/home-made/dstat" title="dstat"&gt;dstat&lt;/a&gt; . In the end his talk lasted more than one hour. He showed us a nice demo of Dstat's features and talked with real passion about it, so thanks for your talk Dag!&lt;/p&gt;
&lt;p&gt;After all this it was time for some chit chat....&lt;/p&gt;
&lt;p&gt;Thanks everyone for being there and see you all at the next Release Party!&lt;/p&gt;
&lt;p&gt;Ow yeah, thanks &lt;a href="http://www.krisbuytaert.be/blog" title="kris"&gt;Kris&lt;/a&gt; for bringing me a Puppet Camp T-Shirt!
I would also like to thank the people from &lt;a href="http://0x20.be/Main_Page" title="HackerSpace Ghent"&gt;HackerSpace Ghent&lt;/a&gt; for using their infrastructure to host the event. If you're a geek living near Ghent, join them!&lt;/p&gt;
&lt;p&gt;I've seen people take pictures, so if you read this put links to them in the comments please...thanks.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 30 May 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-05-30:fedora-13-release-party-hackerspace-ghent.html</guid></item><item><title>Fedora 13 Release Party</title><link>https://blog.vanderkussen.org/fedora-13-release-party.html</link><description>&lt;p&gt;With imminent release of Fedora 13, there's also a release party scheduled.
&lt;span class="inline inline-center"&gt;&lt;a href="http://blog.vanderkussen.org/sites/default/files/images/fedora13-release-party.preview.png" onclick="launch_popup(41, 640, 480); return false;" target="_blank"&gt;&lt;img src="http://blog.vanderkussen.org/sites/default/files/images/fedora13-release-party.preview.png" alt="fedora 13 release party flyer" title="fedora 13 release party flyer"  class="image image-preview " width="640" height="480" /&gt;&lt;/a&gt;&lt;span class="caption"&gt;&lt;strong&gt;fedora 13 release party flyer&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 16 May 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-05-16:fedora-13-release-party.html</guid></item><item><title>Failed RHCE</title><link>https://blog.vanderkussen.org/failed-rhce.html</link><description>&lt;p&gt;Last Friday I took the RHCE exam. Unfortunate i didn't pass the RHCE part of the exam.
These where the numbers I received :&lt;/p&gt;
&lt;p&gt;RHCT components score:                             100.0%
RHCE components score:                             62.5%&lt;/p&gt;
&lt;p&gt;All I needed was an extra 7.5% to pass the RHCE part of the exam (70% is the required minimum). If I had some extra time to get everything finished I might have made it. You really have no time to look up stuff if you're stuck somewhere.&lt;/p&gt;
&lt;p&gt;Anyway,next time we'll get there....&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Mon, 03 May 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-05-03:failed-rhce.html</guid></item><item><title>Linux Open Administration Days</title><link>https://blog.vanderkussen.org/linux-open-administration-days.html</link><description>&lt;p&gt;Loadays has ended and I found it was good.&lt;/p&gt;
&lt;p&gt;During the week of LOAD we did the wireless network setup using Linksys WRT/WAP54* devices. We actually expected problems, but beyond some little hickups the wireless worked quite well (Gryp's megamachine had probably something to do with it :) ).&lt;/p&gt;
&lt;p&gt;On Saterday we setup the projectors and power outlets so the event could start. After some time the first speakers showed up for breakfast provided by the school where LOAD took place.&lt;/p&gt;
&lt;p&gt;Saturday evening we had a pizza party with a big pile of pizza's and some beers&lt;/p&gt;
&lt;p&gt;I didn't have a real schedule planned but I attended some talks like FusionInventory, Large MySQL setups, Bacula, Observer, Selinux. I skipped most of the configuration management tools, but attended the last part of the puppet talk which was quite speedy :).&lt;/p&gt;
&lt;p&gt;There was only one talk that needed to be cancelled, Pieter Colpaert couldn't &lt;a href="http://bonsansnom.wordpress.com/2010/04/11/load/"&gt;make it&lt;/a&gt; because of a train crash.&lt;/p&gt;
&lt;p&gt;From the comments we got from people it seems that they would like to see a second edition of LOAD which is a good thing..&lt;/p&gt;
&lt;p&gt;All in all things went well and I would like to thank some people.&lt;/p&gt;
&lt;p&gt;First of all the people from the school who came working during their weekend and provided a lot of stuff like internet access, infrastructure, food, drinks...&lt;/p&gt;
&lt;p&gt;Then the people who joined the crew the last few days. &lt;a href="http://www.toshaan.be/"/&gt;Tosh&lt;/a&gt; for arranging the hotel, &lt;a href="http://www.kinkysluts.be/"/&gt;dim0&lt;/a&gt; for doing the taxi part and &lt;a href="http://blog.ghosty.be/"&gt;Gh0sty&lt;/a&gt; for helping out with infrastructure and stuff.&lt;/p&gt;
&lt;p&gt;And of course the other people who helped organizing LOAD, speakers and visitors.&lt;/p&gt;
&lt;p&gt;If i forgot someone please forgive me...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Mon, 12 Apr 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-04-12:linux-open-administration-days.html</guid></item><item><title>LOAD countdown</title><link>https://blog.vanderkussen.org/load-countdown.html</link><description>&lt;p&gt;Just 10 days left until LOAD !&lt;/p&gt;
&lt;p&gt;After a few weeks of planning, meeting and arranging stuff it's almost there, the &lt;a href="http://www.loadays.org"&gt;Linux Open Administration Days&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This week the &lt;a href="http://www.loadays.org"&gt;schedule&lt;/a&gt; got finalized and it looks rather good. There's a lot of differend stuff like open spaces, tutorials, regular talks,...&lt;/p&gt;
&lt;p&gt;On Saturday evening there's a social/beer event not far from the event venue (it also has some pizza's involved).&lt;/p&gt;
&lt;p&gt;I hope i'll see you there !&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 31 Mar 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-03-31:load-countdown.html</guid></item><item><title>R.I.P. Remco</title><link>https://blog.vanderkussen.org/rip-remco.html</link><description>&lt;p&gt;Our Rottweiler passed away a few weeks ago. So I'm posting this as a way to remember him.Remco, you'll be missed. I'm sure they've spaghetti sauce in dog heaven.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Remco" src="{{site.url}}/images/remco.jpg" title="Remco" /&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 21 Mar 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-03-21:rip-remco.html</guid></item><item><title>My blog is running on Drupal</title><link>https://blog.vanderkussen.org/my-blog-is-running-on-drupal.html</link><description>&lt;p&gt;I moved my Wordpress Blog to Drupal. Not that Wordpress is bad, but I've to create some websites and I'm planning on using Drupal for them.
So this is a good way to get the hang of it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Thu, 11 Feb 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-02-11:my-blog-is-running-on-drupal.html</guid></item><item><title>Event advertisement</title><link>https://blog.vanderkussen.org/event-advertisement.html</link><description>&lt;p&gt;I made some advertisement @work.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.vanderkussen.org/wp-content/uploads/2010/01/22012010.jpg"&gt;&lt;img class="aligncenter size-large wp-image-77" title="22012010" src="/sites/default/files/images/22012010-1024x768.jpg" alt="22012010" width="662" height="496" /&gt;&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 24 Jan 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-01-24:event-advertisement.html</guid></item><item><title>Dust cleaning on Thinkpad</title><link>https://blog.vanderkussen.org/dust-cleaning-on-thinkpad.html</link><description>&lt;p&gt;Fan started to make some strange noises. After some dust removing all is fine agian.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.vanderkussen.org/wp-content/uploads/2010/01/12012010.jpg"&gt;&lt;img class="alignleft size-medium wp-image-73" title="12012010" src="/sites/default/files/images/12012010-300x225.jpg" alt="12012010" width="300" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Fri, 15 Jan 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-01-15:dust-cleaning-on-thinkpad.html</guid></item><item><title>Routed Xen setup</title><link>https://blog.vanderkussen.org/routed-xen-setup.html</link><description>&lt;p&gt;Yesterday i needed to setup a Xen machine where only the MAC address of the host (dom0) was allowed by the firewall. Because of this, a bridged setup could not be used since all domU's will be using their own MAC address.&lt;/p&gt;
&lt;p&gt;So i needed a routed setup instead. That way the host (dom0) will be used as a "router" for the domU's and the firewall would only see the MAC of the dom0 host when communicating.&lt;/p&gt;
&lt;p&gt;Configuration is quite easy. Edit /etc/xen/xend-config.sxp and comment out the bridge related stuff. Then uncomment or add the following lines to enable routing:
&lt;pre&gt;(network-script network-route)
(vif-script     vif-route)&lt;/pre&gt;
Then in /etc/sysctl.conf make sure you've these 2 lines to enable routing. The Proxy arp is needed if you have domU's on differend networks.
&lt;pre&gt;net.ipv4.ip_forward = 1
net.ipv4.conf.all.proxy_arp = 1&lt;/pre&gt;
Restart xend, reboot the domU's and you're done (you can also just reboot the host).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 13 Jan 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2010-01-13:routed-xen-setup.html</guid></item><item><title>LOAD logo</title><link>https://blog.vanderkussen.org/load-logo.html</link><description>&lt;p&gt;I created a logo for the LOAD event. This is what i have for now, but I'll probably make some other designs to.
If you've comments or suggestions, please don't hesitate to put them here.
&lt;p style="text-align: center;"&gt;&lt;a href="/sites/default/files/images/logo_small.png"&gt;&lt;img class="aligncenter size-full wp-image-62" title="logo_small" src="/sites/default/files/images/logo_small.png" alt="logo_small" width="454" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 23 Dec 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-12-23:load-logo.html</guid></item><item><title>"F13 : I voted"</title><link>https://blog.vanderkussen.org/f13-i-voted.html</link><description>&lt;p&gt;I voted for Gloriana.
&lt;a href="/sites/default/files/images/fedora-i-voted.png"&gt;&lt;img src="/sites/default/files/images/fedora-i-voted.png" alt="fedora-i-voted" title="fedora-i-voted" width="250" height="250" class="aligncenter size-full wp-image-56" /&gt;&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Mon, 30 Nov 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-11-30:f13-i-voted.html</guid></item><item><title>"Fedora 12 release party 2"</title><link>https://blog.vanderkussen.org/fedora-12-release-party-2.html</link><description>&lt;p&gt;Yesterday was the Fedora 12 release party in Antwerp (Belgium). 
It was held at the Don Bosco school which had a good infrastructure for this event. A nice room, drinks, food, network, ... So, thanks to them for providing this in their spare time !&lt;/p&gt;
&lt;p&gt;I came a little earlier because I needed to setup a pxe server so people could get Fedora 12 installed on their machines if they wanted. After a while more people showed up (thanks &lt;a href="http://www.krisbuytaert.be/blog/"&gt;Kris&lt;/a&gt; for being on time :) ) to listen to &lt;a href="http://blog.bdesmet.be/"&gt;Bert&lt;/a&gt; and &lt;a href="https://fedoraproject.org/wiki/User:Couf"&gt;Bart's&lt;/a&gt; talk about the new Fedora and the Fedora community here in Belgium.&lt;/p&gt;
&lt;p&gt;Later on Martin Langhoff from the OLPC project came in to talk a little about the OLPC, which I think is nice little device and has some cool features for the kids to play with.&lt;/p&gt;
&lt;p&gt;This was the first Fedora Release party here and all in all it was a nice event and I hope we can do this on a regular basis so we can make the Belgium Fedora community grow.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 29 Nov 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-11-29:fedora-12-release-party-2.html</guid></item><item><title>Fedora 12 Release Party 1</title><link>https://blog.vanderkussen.org/fedora-12-release-party-1.html</link><description>&lt;p&gt;Fedora 12 has been released, and for this there's a release party being held (probably the first Fedora release party in Belgium).&lt;/p&gt;
&lt;p&gt;This will be a relative small event where the focus lies on getting together. 
You'll also have the opportunity to install Fedora 12 on your machine.  &lt;/p&gt;
&lt;p&gt;More info on the &lt;a href=" https://fedoraproject.org/wiki/Release_Party_F12_Antwerp"&gt;Fedora Wiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="/sites/default/files/images/Fedora_12_release_poster_eng.png" alt="Fedora 12 release party" /&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 18 Nov 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-11-18:fedora-12-release-party-1.html</guid></item><item><title>"RHEL SSL certificate error "</title><link>https://blog.vanderkussen.org/rhel-ssl-certificate-error.html</link><description>&lt;p&gt;Yesterday i had a machine that wouldn't register with the red Hat network. It gave me the following error : "The SSL certificate failed verification".
After some searching i noticed that the machine was still living in 2001, so all i had to do was set the time right.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Fri, 30 Oct 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-10-30:rhel-ssl-certificate-error.html</guid></item><item><title>Auto create home dirs with Samba</title><link>https://blog.vanderkussen.org/auto-create-home-dirs-with-samba.html</link><description>&lt;p&gt;If you're using Samba to provide network shares to your users, it might be usefull to autmatically create the their homedir when they access it the first time.
This can be done by adding this line to the [homes] directive :
&lt;code&gt;root preexec = /usr/local/sbin/mkhomedir.sh %U&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This is the mkhomedir.sh script itself :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#!/bin/bash&lt;/p&gt;
&lt;p&gt;if [ ! -e /storage_users/DOMAIN/$1 ]; then
mkdir /storage_users/DOMAIN/$1
chown $1:"DOMAIN+Domain Admins" /storage_users/DOMAIN/$1
fi
exit 0
&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Tue, 20 Oct 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-10-20:auto-create-home-dirs-with-samba.html</guid></item><item><title>"Thesis : anti spam by MTA selection"</title><link>https://blog.vanderkussen.org/thesis-anti-spam-by-mta-selection.html</link><description>&lt;p&gt;I'm publishing the Thesis that I and my fellow student Joost Ringoot made for our Graduate training in evening school. 
It might be useful to someone.&lt;/p&gt;
&lt;p&gt;&lt;a href='http://blog.vanderkussen.org/wp-content/uploads/2009/10/Projectwerk_2008_AntiSpam.pdf'&gt;Projectwerk_2008_AntiSpam&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Mon, 05 Oct 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-10-05:thesis-anti-spam-by-mta-selection.html</guid></item><item><title>Slow DNS resolving</title><link>https://blog.vanderkussen.org/slow-dns-resolving.html</link><description>&lt;p&gt;The other day one of our internal DNS needed to be shut down for maintenance. During that time people complained about slow responsiveness of the applications running on our RHEL machines.
Because the DNS maintenance was the only change we made at that time we started looking in that direction.&lt;/p&gt;
&lt;p&gt;As it turned out, it seems that Linux is trying to contact the first DNS server in the resolv.conf file for every DNS query. The second one is queried after x number of seconds&lt;/p&gt;
&lt;p&gt;I added the following options to /etc/resolv.conf to make better use of the second nameserver in the list.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;options rotate
options timeout:1&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Tue, 22 Sep 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-09-22:slow-dns-resolving.html</guid></item><item><title>Keep VPN Connection alive</title><link>https://blog.vanderkussen.org/keep-vpn-connection-alive.html</link><description>&lt;p&gt;Recently i had a VPN connection with OpenSwan that didn't stay alive. Adding the following option to the config fixed it&lt;/p&gt;
&lt;pre&gt;dpdaction=restart&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Fri, 07 Aug 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-08-07:keep-vpn-connection-alive.html</guid></item><item><title>Wordpress on LightTPD</title><link>https://blog.vanderkussen.org/wordpress-on-lighttpd.html</link><description>&lt;p&gt;I'm running this blog on LightTPD now. It runs a lot faster now on my 64MB VPS.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 02 Aug 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-08-02:wordpress-on-lighttpd.html</guid></item><item><title>64MB VPS</title><link>https://blog.vanderkussen.org/64mb-vps.html</link><description>&lt;p&gt;I switched from &lt;a href="http://typosphere.org" target="_blank"&gt;Typo&lt;/a&gt; to Wordpress . I thought it would run a little faster on the 64MB VPS  i use on my server. But WP uses MySQL as a backend and that doesn't really help.&lt;/p&gt;
&lt;p&gt;Apache is also quite a memory hog on systems with low memory, but with some Apache and MySQL tuning my blog isn't going OOM anymore :).&lt;/p&gt;
&lt;p&gt;I guess Apache and MySQL are a little to heavy on resources. I'm going to tune some more, but if that doesn't help much I'm switching to LightTPD instead of Apache.&lt;/p&gt;
&lt;p&gt;Sorry if thing run a little slow for the moment....&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Tue, 28 Jul 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-07-28:64mb-vps.html</guid></item><item><title>64MB VPS and wordpress</title><link>https://blog.vanderkussen.org/64mb-vps-and-wordpress.html</link><description>&lt;p&gt;I switched from &lt;a href="http://typosphere.org" target="_blank"&gt;Typo&lt;/a&gt; to Wordpre&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Tue, 28 Jul 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-07-28:64mb-vps-and-wordpress.html</guid></item><item><title>Typo with Phusion Passenger</title><link>https://blog.vanderkussen.org/typo-with-phusion-passenger.html</link><description>&lt;p&gt;I'm running this blog now with the Phusion Passenger mod for Apache.&lt;/p&gt;
&lt;p&gt;Normally this Apache directive should be enough to start your rails app.
&lt;pre&gt;&amp;lt;VirtualHost &lt;em&gt;:80&amp;gt;
servername mydomain.tld
documentroot /var/www/html/typo/public
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;
I had to change it to the following though to get it to work.
&lt;pre&gt;&amp;lt;VirtualHost &lt;/em&gt;:80&amp;gt;
servername mydomain.tld
PassengerEnabled on
documentroot /var/www/html/typo/public
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 22 Jul 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-07-22:typo-with-phusion-passenger.html</guid></item><item><title>An item with the same key has already been added</title><link>https://blog.vanderkussen.org/an-item-with-the-same-key-has-already-been-added.html</link><description>&lt;p&gt;When you try to export a virtual machine and get the following error : &amp;quot;An item with the same key has already been added'. There is probably a snapshot attached to the Virtual Machine.&lt;/p&gt;

&lt;p&gt;You can't&amp;nbsp; export the VM with snapshots you've got to remove them first&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Wed, 08 Jul 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-07-08:an-item-with-the-same-key-has-already-been-added.html</guid></item><item><title>Installing Fedora 11</title><link>https://blog.vanderkussen.org/installing-fedora-11.html</link><description>&lt;p&gt;During the installation of Fedora 11 on my laptop, the installation process did a suggestion for a hostname.&lt;/p&gt;

&lt;p&gt;I swear i didn't enter anything myself ....&lt;/p&gt;

&lt;p&gt;&lt;a href="/files/File/Screenshot.png"&gt;&lt;img width="255" height="191" alt="" src="/files/Image/Screenshot.png" /&gt;&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sat, 13 Jun 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-06-13:installing-fedora-11.html</guid></item><item><title>speedtest meme</title><link>https://blog.vanderkussen.org/speedtest-meme.html</link><description>&lt;p&gt;&lt;a href="http://www.speedtest.net"&gt;&lt;img src="/sites/default/files/images/494096295.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Fri, 12 Jun 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-06-12:speedtest-meme.html</guid></item><item><title>Nikon D70</title><link>https://blog.vanderkussen.org/nikon-d70.html</link><description>&lt;p&gt;I bought a second hand D70 to dive into some photography. &lt;/p&gt;

&lt;p&gt;The difference between a regular compact device we've been using until now and this is quite ... well different. &lt;/p&gt;

&lt;p&gt;&lt;img width="400" height="300" src="/files/Image/dsc03958.jpg" alt="" /&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 24 May 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-05-24:nikon-d70.html</guid></item><item><title>VMWare vSphere</title><link>https://blog.vanderkussen.org/vmware-vsphere.html</link><description>&lt;p&gt;&amp;nbsp;Today i attended a VMWare vSphere event. I was waiting for the fist one who mentioned the &amp;quot;Cloud&amp;quot; word, as this is the buzz word these days. I must say, this didn't take long :)&lt;/p&gt;

&lt;p&gt;There was a whole presentation of the new VMWare vSphere product that they claim is &amp;quot;the best platform for building cloud infrastructures&amp;quot;. &lt;br /&gt;
During this presentation i could see the resemblance with the older (but still used) mainframe technologie, and how we're going back to this sort of infrastructure. Virtual Desktop Infrastructure (VDI) is the next step in virtualization.&lt;/p&gt;

&lt;p&gt;Although the &amp;quot;Cloud&amp;quot; is mostly considered a hype, it has a lot of possibilities and advantages.    &lt;br /&gt;
&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Cisco is also getting on the Cloud boat with their &lt;a href="http://www.cisco.com/en/US/products/ps9902/"&gt;Nexus 1000v&lt;/a&gt;. It's a Virtual Switch for VMWare, but with a full blown IOS, so network management can be done by the networking guys. The switch can span multiple ESX machines.&lt;/p&gt;

&lt;p&gt;I'm curious on what Red Hat will be doing later on this year with RHEL 5.4 and KVM. I hope their &lt;a href="http://ovirt.org/"&gt;oVirt &lt;/a&gt;technology becomes stable soon, because VMWare's management tools  are really good.&amp;nbsp;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sun, 24 May 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-05-24:vmware-vsphere.html</guid></item><item><title>Virtualbox for Leonidas</title><link>https://blog.vanderkussen.org/virtualbox-for-leonidas.html</link><description>&lt;p&gt;Sun has released VirtualBox 2.2.2. It has a Fedora11 (Leonidas) package...always nice to see.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Tue, 28 Apr 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-04-28:virtualbox-for-leonidas.html</guid></item><item><title>Typo 5.3</title><link>https://blog.vanderkussen.org/typo-53.html</link><description>&lt;p&gt;On my way upgrading typo, al lost all my data (i must stop this habit).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vincent Van der Kussen</dc:creator><pubDate>Sat, 18 Apr 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.vanderkussen.org,2009-04-18:typo-53.html</guid></item></channel></rss>