<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Artem Sidorenko</title>
    <link>https://www.sidorenko.io/post/</link>
    <description>Recent content in Posts on Artem Sidorenko</description>
    <generator>Hugo -- gohugo.io</generator>
    <copyright>Artem Sidorenko</copyright>
    <lastBuildDate>Sat, 21 Sep 2019 21:56:04 +0200</lastBuildDate>
    
	<atom:link href="https://www.sidorenko.io/post/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Full encrypted Proxmox installation</title>
      <link>https://www.sidorenko.io/post/2019/09/full-encrypted-proxmox-installation/</link>
      <pubDate>Sat, 21 Sep 2019 21:56:04 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2019/09/full-encrypted-proxmox-installation/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.proxmox.com/en/proxmox-ve&#34;&gt;Proxmox&lt;/a&gt; is a hypervisor software running on Debian Linux.&lt;/p&gt;

&lt;p&gt;This post describes the full encrypted installtion of proxmox hypervisor with unlocking of encryption via ssh.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fan in and progress counters pattern</title>
      <link>https://www.sidorenko.io/post/2019/01/fan-in-and-progress-counters-pattern/</link>
      <pubDate>Thu, 31 Jan 2019 22:30:33 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2019/01/fan-in-and-progress-counters-pattern/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://blog.golang.org/pipelines&#34;&gt;pipeline blogpost&lt;/a&gt; of Sameer Ajmani gives a good overview over the design pattern &amp;ldquo;fan-in&amp;rdquo; in Go. Sometimes, you might have a slightly different situation within fan-in code, where you need a different approach.&lt;/p&gt;

&lt;p&gt;Example: you might need some progress counters, which get incremented during the fan-in operation, e.g. to display the processing progress of some operation to the user.&lt;/p&gt;

&lt;p&gt;Let&amp;rsquo;s have a look how this can be done.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Testing of functions with channels in Go</title>
      <link>https://www.sidorenko.io/post/2019/01/testing-of-functions-with-channels-in-go/</link>
      <pubDate>Thu, 24 Jan 2019 19:25:04 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2019/01/testing-of-functions-with-channels-in-go/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://golang.org&#34;&gt;Go&lt;/a&gt; or &lt;a href=&#34;https://golang.org&#34;&gt;Golang&lt;/a&gt; has a very nice mechanisms for dealing with concurrency: &lt;a href=&#34;https://golang.org/doc/effective_go.html#channels&#34;&gt;channels&lt;/a&gt; and &lt;a href=&#34;https://golang.org/doc/effective_go.html#goroutines&#34;&gt;goroutines&lt;/a&gt;. This post describes my approach about testing of functions, which are used within goroutines and consume input or provide output via channels. There is no rocket science at all, just the typical channel handling in the tests.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hugo on GitHub Pages with Travis CI</title>
      <link>https://www.sidorenko.io/post/2018/12/hugo-on-github-pages-with-travis-ci/</link>
      <pubDate>Tue, 11 Dec 2018 15:00:40 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2018/12/hugo-on-github-pages-with-travis-ci/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;https://www.sidorenko.io/post/2017/05/using-travis-to-deploy-hugo-site-to-a-shared-hosting/&#34;&gt;already wrote&lt;/a&gt; about deploying &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; websites to the shared hosting by using &lt;a href=&#34;http://travis-ci.org/&#34;&gt;Travis CI&lt;/a&gt;. &lt;a href=&#34;https://pages.github.com/&#34;&gt;GitHub Pages&lt;/a&gt; support HTTPS for custom domains &lt;a href=&#34;https://blog.github.com/2018-05-01-github-pages-custom-domains-https/&#34;&gt;from May 2018&lt;/a&gt;, so now it&amp;rsquo;s worth to have a look at this topic again.&lt;/p&gt;

&lt;p&gt;This blogpost describes the setup of deploying &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; with &lt;a href=&#34;http://travis-ci.org/&#34;&gt;Travis CI&lt;/a&gt; to the &lt;a href=&#34;https://pages.github.com/&#34;&gt;GitHub Pages&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OpenStack Networking: Open vSwitch and VXLAN introduction</title>
      <link>https://www.sidorenko.io/post/2018/11/openstack-networking-open-vswitch-and-vxlan-introduction/</link>
      <pubDate>Thu, 08 Nov 2018 12:30:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2018/11/openstack-networking-open-vswitch-and-vxlan-introduction/</guid>
      <description>&lt;p&gt;In my new job I had to deploy a new &lt;a href=&#34;https://www.openstack.org&#34;&gt;OpenStack&lt;/a&gt; environment. It was about 5 years ago when I did last time anything related to the OpenStack infrastructure deployment. Unused knowledge vanishes pretty fast, besides that OpenStack is developing. So I had to refresh a lot of things and even to build knowledge from scratch in some areas.&lt;/p&gt;

&lt;p&gt;From my point of view OpenStack networking is one of the most complicated parts if you want to do it right. This series of posts aims to give a brief introduction to this topic. It will cover following setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;usage of common IP network as a transport network for overlay networks (virtualised networks of VMs)&lt;/li&gt;
&lt;li&gt;usage of &lt;a href=&#34;http://www.openvswitch.org&#34;&gt;Open vSwitch&lt;/a&gt; as technology for overlay networks and connectivity of VMs cross over different hypervisors&lt;/li&gt;
&lt;li&gt;usage of &lt;a href=&#34;https://en.wikipedia.org/wiki/Virtual_Extensible_LAN&#34;&gt;VXLAN&lt;/a&gt; for tunnelling of overlay network communication between different nodes&lt;/li&gt;
&lt;li&gt;dedicated control node, where all OpenStack API services are running&lt;/li&gt;
&lt;li&gt;dedicated network node, where L3 agent, metadata agent and dhcp agents are running&lt;/li&gt;
&lt;li&gt;examples are done on the RHEL/CentOS 7 Linux distribution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OpenStack uses Open vSwitch and VXLAN heavily in this setup, so I start first with introduction to Open vSwitch and VXLAN in this post. OpenStack networking architecture and implementation will be covered in the further posts.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>CentOS VM image for Synology</title>
      <link>https://www.sidorenko.io/post/2018/01/centos-vm-image-for-synology/</link>
      <pubDate>Sun, 28 Jan 2018 21:38:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2018/01/centos-vm-image-for-synology/</guid>
      <description>&lt;p&gt;Synology released a stable version of &lt;a href=&#34;https://www.synology.com/en-us/dsm/feature/virtual_machine_manager&#34;&gt;Virtual Machine Manager&lt;/a&gt; extension for DSM OS, which runs on the Synology NAS boxes. This extension uses KVM/QEMU and allows execution of VMs on the Synology boxes.&lt;/p&gt;

&lt;p&gt;Obviously you can install VMs each time using an iso image and installer. However, if you would like to use this feature for some Linux playgrounds (or maybe you want to deploy many VMs?) you would probably like to create a prepared VM template and create new VMs using this template. This blog post covers exactly this case: creation of CentOS template, which can be used for fast and easy deployment of further VMs on the Synology. Image templates with Ubuntu or other Linux distributions can be prepared on the similar way.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Nice tagcloud with Hugo</title>
      <link>https://www.sidorenko.io/post/2017/07/nice-tagcloud-with-hugo/</link>
      <pubDate>Fri, 21 Jul 2017 15:42:16 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2017/07/nice-tagcloud-with-hugo/</guid>
      <description>&lt;p&gt;In my old blog with octopress I used the tag cloud plugin with &lt;a href=&#34;https://gist.github.com/yeban/2290195#file-jekyll-tag-cloud-rb-L69-L70&#34;&gt;logarithmic distribution&lt;/a&gt; for calculation of tag sizes.
The rendered tag cloud was pretty nice from the optic side. All existing approaches I saw for hugo(&lt;a href=&#34;https://www.henriksommerfeld.se/hugo-tag-could/&#34;&gt;1&lt;/a&gt;, &lt;a href=&#34;https://discourse.gohugo.io/t/weighted-tag-cloud/3491&#34;&gt;2&lt;/a&gt;) were not so nice, the main reason is the usage of logarithmic distribution in the calculation of tag size.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using travis to deploy hugo site to a shared hosting</title>
      <link>https://www.sidorenko.io/post/2017/05/using-travis-to-deploy-hugo-site-to-a-shared-hosting/</link>
      <pubDate>Sat, 27 May 2017 18:00:00 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2017/05/using-travis-to-deploy-hugo-site-to-a-shared-hosting/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://pages.github.com/&#34;&gt;GitHub Pages&lt;/a&gt; are quite popular for hosting static sites built by site generators.
However, GitHub Pages have some limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no SSL/TLS for custom domains&lt;/li&gt;
&lt;li&gt;proper support of Jekyll sites only&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One possible alternative is to use &lt;a href=&#34;https://pages.gitlab.io/&#34;&gt;GitLab Pages&lt;/a&gt;, which does not have this limitations.
Another possible alternative is to use &lt;a href=&#34;http://travis-ci.org/&#34;&gt;Travis CI&lt;/a&gt; and deploy the site to some shared www hosting. Hetzner offers &lt;a href=&#34;https://www.hetzner.de/ot/hosting/produktmatrix/webhosting-produktmatrix&#34;&gt;some good plans&lt;/a&gt;, they also include a free-of-charge SSL certificate.&lt;/p&gt;

&lt;p&gt;This blogpost describes how to deploy a static site hosted on &lt;a href=&#34;https://github.com/&#34;&gt;GitHub&lt;/a&gt;, built with &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; and &lt;a href=&#34;http://travis-ci.org/&#34;&gt;Travis CI&lt;/a&gt; and deployed via FTPS to Hetzner www space.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Testing chef cookbooks with GitLab CI</title>
      <link>https://www.sidorenko.io/post/2017/02/testing-chef-cookbooks-with-gitlab-ci/</link>
      <pubDate>Sat, 11 Feb 2017 22:06:03 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2017/02/testing-chef-cookbooks-with-gitlab-ci/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://kitchen.ci/&#34;&gt;Test Kitchen&lt;/a&gt; is a common tool for integration testing of &lt;a href=&#34;https://docs.chef.io/cookbooks.html&#34;&gt;Chef cookbooks&lt;/a&gt;. Usually a combination of &lt;a href=&#34;https://www.vagrantup.com/&#34;&gt;Vagrant&lt;/a&gt;&amp;amp;&lt;a href=&#34;https://www.virtualbox.org/&#34;&gt;VirtualBox&lt;/a&gt; is used to bring up the VMs. This works well for local development setups, but what about Continuous Integration environments? You can find several approaches how cookbooks can be tested in the CI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;if your CI runs on non-persistent VMs (like &lt;a href=&#34;https://travis-ci.org/&#34;&gt;Travis CI&lt;/a&gt;) you might use &lt;a href=&#34;https://github.com/someara/kitchen-dokken&#34;&gt;kitchen-dokken&lt;/a&gt; like &lt;a href=&#34;https://github.com/dev-sec/chef-ssh-hardening&#34;&gt;chef-ssh-hardening&lt;/a&gt; does&lt;/li&gt;
&lt;li&gt;you can use kitchen providers like &lt;a href=&#34;https://github.com/test-kitchen/kitchen-digitalocean&#34;&gt;kitchen-digitalocean&lt;/a&gt; or &lt;a href=&#34;https://github.com/test-kitchen/kitchen-ec2&#34;&gt;kitchen-ec2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Well, but what about the case you want to use Vagrant&amp;amp;VirtualBox in the CI too? There are some reasons for this approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maybe you can not use public cloud providers for some reasons and do not have your own on-premise cloud like OpenStack&lt;/li&gt;
&lt;li&gt;Maybe you want to use the same setup/technologies in the CI and locally as you want be able to easy reproduce errors and problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;https://about.gitlab.com/&#34;&gt;GitLab&lt;/a&gt; is quite often used in the enterprise environments, where restrictions on the public cloud usage may apply. GitLab has its own &lt;a href=&#34;https://docs.gitlab.com/ce/ci/&#34;&gt;GitLab CI&lt;/a&gt;, which can be easily used for cookbook testing.&lt;/p&gt;

&lt;p&gt;This post covers a basic GitLab CI setup with Test Kitchen and Vagrant&amp;amp;VirtualBox as backend.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setting up NAT64 with tayga on Centos</title>
      <link>https://www.sidorenko.io/post/2017/01/setting-up-nat64-with-tayga-on-centos/</link>
      <pubDate>Wed, 04 Jan 2017 21:33:46 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2017/01/setting-up-nat64-with-tayga-on-centos/</guid>
      <description>&lt;p&gt;Maybe you are also playing aroung with IPv6 and want to setup IPv6 only network and asking yourself how to reach the IPv4 Internet?
Right, with &lt;a href=&#34;https://en.wikipedia.org/wiki/IPv6_transition_mechanism#DNS64&#34;&gt;DNS64&lt;/a&gt; and &lt;a href=&#34;https://en.wikipedia.org/wiki/NAT64&#34;&gt;NAT64&lt;/a&gt;. This blog post gives an overview about a such setup on CentOS/RHEL 7 with bind and &lt;a href=&#34;http://www.litech.org/tayga/&#34;&gt;tayga&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>IPv6 with prefix delegation, RouterOS and FritzBox</title>
      <link>https://www.sidorenko.io/post/2016/12/ipv6-with-prefix-delegation-routeros-and-fritzbox/</link>
      <pubDate>Sat, 10 Dec 2016 23:16:28 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/12/ipv6-with-prefix-delegation-routeros-and-fritzbox/</guid>
      <description>&lt;p&gt;I have a non-flat network with subnetworks at home and I wanted to enable IPv6 in dual stack mode for the desktop systems.
This blog post describes this setup and configuration for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://routerboard.com/CRS125-24G-1S-IN&#34;&gt;MikroTik CRS125-24G-1S-IN&lt;/a&gt; layer 3 switch as switch/router for internal networks (RouterOS 6.36.4)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://avm.de/service/fritzbox/fritzbox-7390/uebersicht/&#34;&gt;AVM FritzBox 7390&lt;/a&gt; as internet router (FRITZ!OS 06.51)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.telekom.de/&#34;&gt;DT&lt;/a&gt; as ISP with native IPv6 in dual stack mode and dynamic IPv6 prefixes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using dynamic resources in Chef</title>
      <link>https://www.sidorenko.io/post/2016/12/using-dynamic-resources-in-chef/</link>
      <pubDate>Sat, 03 Dec 2016 01:14:44 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/12/using-dynamic-resources-in-chef/</guid>
      <description>&lt;p&gt;Chef has &lt;a href=&#34;https://coderanger.net/two-pass/&#34;&gt;different execution phases&lt;/a&gt;. Especially the compile and converge phase are important when writing cookbooks: the resources are collected in the compile phase and are executed in the converge phase.&lt;/p&gt;

&lt;p&gt;In some special cases you might want to have dynamic resources, which are created and executed in the converge phase. The main background is that you want to react on something you known in the execution phase only.&lt;/p&gt;

&lt;p&gt;Given a situation where you want to cleanup configuration files, which get installed by some package during a chef run (real examples might be apache on debian or freeradius on RHEL). You can try to solve this situation like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;package &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;freeradius&amp;#39;&lt;/span&gt;

&lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# Our module configuration&lt;/span&gt;
template &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;/etc/raddb/mods-available/eap-tls&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;do&lt;/span&gt;
&lt;span style=&#34;color:#666&#34;&gt;...&lt;/span&gt;
&lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;end&lt;/span&gt;

&lt;span style=&#34;color:#60add5&#34;&gt;Dir&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;.&lt;/span&gt;glob(&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;/etc/raddb/mods-available/*&amp;#39;&lt;/span&gt;)&lt;span style=&#34;color:#666&#34;&gt;.&lt;/span&gt;each &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;do&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;|&lt;/span&gt;mod_path&lt;span style=&#34;color:#666&#34;&gt;|&lt;/span&gt;
  file_name &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#60add5&#34;&gt;File&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;.&lt;/span&gt;basename(mod_path)
  &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;next&lt;/span&gt; &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;if&lt;/span&gt; file_name &lt;span style=&#34;color:#666&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;eap-tls&amp;#39;&lt;/span&gt;

  file mod_path &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;do&lt;/span&gt;
    action &lt;span style=&#34;color:#517918&#34;&gt;:delete&lt;/span&gt;
  &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;end&lt;/span&gt;
&lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;However this will not work: you try to glob over &lt;code&gt;/etc/raddb/mods-available&lt;/code&gt; in the compile phase, but this path doesn&amp;rsquo;t exist as freeradius gets installed in the converge phase.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing inspec tests in the rspec style</title>
      <link>https://www.sidorenko.io/post/2016/11/writing-inspec-tests-in-the-rspec-style/</link>
      <pubDate>Sat, 26 Nov 2016 19:28:58 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/11/writing-inspec-tests-in-the-rspec-style/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://inspec.io&#34;&gt;Inspec&lt;/a&gt; is a modern framework for infrastructure testing. It can be used as replacement for &lt;a href=&#34;http://serverspec.org/&#34;&gt;Serverspec&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Usually the inspec tests are describing a particial resource:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;describe file(&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;/etc/passwd&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;do&lt;/span&gt;
  its(&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;mode&amp;#39;&lt;/span&gt;) { should cmp &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;0644&amp;#39;&lt;/span&gt; }
&lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;However in some case it might be useful to use the common RSpec style with nested &lt;code&gt;describe-context-it&lt;/code&gt; statements.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing helper cookbooks with shared functions</title>
      <link>https://www.sidorenko.io/post/2016/10/writing-helper-cookbooks-with-shared-functions/</link>
      <pubDate>Wed, 26 Oct 2016 14:50:06 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/10/writing-helper-cookbooks-with-shared-functions/</guid>
      <description>&lt;p&gt;Sometimes you might need some generic functions, which are used in several cookbooks in your environment.
In this case it makes sense to create a cookbook, which contains this functions.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Configuring chefdk</title>
      <link>https://www.sidorenko.io/post/2016/10/configuring-chefdk/</link>
      <pubDate>Sun, 09 Oct 2016 10:10:21 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/10/configuring-chefdk/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://downloads.chef.io/chef-dk/&#34;&gt;Chef Development Kit&lt;/a&gt; contains a &lt;a href=&#34;https://github.com/chef/chef-dk&#34;&gt;chef-dk gem&lt;/a&gt; with &lt;code&gt;chef&lt;/code&gt; executable.
&lt;code&gt;chef generate&lt;/code&gt; is a pretty usefull command for generation of skelettons.
Per default the information like author, license or email looks like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ cat testcookbook/metadata.rb
name &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;testcookbook&amp;#39;&lt;/span&gt;
maintainer &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;The Authors&amp;#39;&lt;/span&gt;
maintainer_email &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;you@example.com&amp;#39;&lt;/span&gt;
license &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#39;all_rights&amp;#39;&lt;/span&gt;
...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;How to get your own data instead of this defaults?&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hybrid suspend with systemd</title>
      <link>https://www.sidorenko.io/post/2016/09/hybrid-suspend-with-systemd/</link>
      <pubDate>Thu, 29 Sep 2016 11:37:34 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/09/hybrid-suspend-with-systemd/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://askubuntu.com/questions/219141/what-is-hybrid-suspend&#34;&gt;Hybrid suspend&lt;/a&gt; is a suspend mode, where suspend-to-disk and suspend-to-ram are executed together in the same time.
Its a quite usefull mode for notebooks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fast wake up because of suspend-to-ram&lt;/li&gt;
&lt;li&gt;no data loss in case of empty battery during the suspend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Creating container base image of CentOS</title>
      <link>https://www.sidorenko.io/post/2016/07/creating-container-base-image-of-centos/</link>
      <pubDate>Fri, 01 Jul 2016 06:30:00 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/07/creating-container-base-image-of-centos/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://docs.docker.com/engine/userguide/eng-image/baseimages/&#34;&gt;Docker docs&lt;/a&gt; and &lt;a href=&#34;https://github.com/appc/spec#building-acis&#34;&gt;ACI docs&lt;/a&gt; decsribe the steps how to create base images from existing tarballs/folders with root file systems of distribution. If you make a deeper look, you will probably &lt;a href=&#34;https://github.com/CentOS/sig-cloud-instance-images/tree/CentOS-7.2.1511/docker&#34;&gt;find the CentOS tarballs&lt;/a&gt; which &lt;a href=&#34;https://github.com/docker-library/official-images/blob/master/library/centos&#34;&gt;are used by docker&lt;/a&gt; for creation of centos base images.&lt;/p&gt;

&lt;p&gt;But how to get this root file system tree? This blogpost covers the creation of this root file system tree for CentOS and the creation of base images for Docker and Rkt.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Installing chef on raspberry pi with centos</title>
      <link>https://www.sidorenko.io/post/2016/06/installing-chef-on-raspberry-pi-with-centos/</link>
      <pubDate>Thu, 30 Jun 2016 17:40:38 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/06/installing-chef-on-raspberry-pi-with-centos/</guid>
      <description>&lt;p&gt;Chef is building omnibus packages only for x86. But probably you want to run chef on raspberry pi 3 with ARM.
There is a &lt;a href=&#34;http://everydaytinker.com/raspberry-pi/installing-chef-client-on-a-raspberry-pi-2-model-b/&#34;&gt;blogpost&lt;/a&gt;, which describes the chef installation on Raspbian. This blogpost covers the steps for chef installation on raspberry pi with centos.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Build packages with OpenBuild service</title>
      <link>https://www.sidorenko.io/post/2016/05/build-packages-with-openbuild-service/</link>
      <pubDate>Thu, 26 May 2016 11:40:11 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/05/build-packages-with-openbuild-service/</guid>
      <description>&lt;p&gt;As I already mentioned in the &lt;a href=&#34;https://www.sidorenko.io/blog/2016/05/25/short-way-to-a-deb-package/&#34;&gt;previous&lt;/a&gt; blog post, initially I wanted to use &lt;a href=&#34;https://build.opensuse.org/&#34;&gt;OpenBuild Service from openSUSE (OBS)&lt;/a&gt; to build packages of &lt;a href=&#34;https://github.com/coreos/rkt&#34;&gt;CoreOS rkt&lt;/a&gt;. OBS allows you to build packages for different platforms, e.g. RPMs for CentOS, RH, Fedora, OpenSUSE and in the same time DEBs for Ubuntu, Debian. Another positive thing: OpenBuild Service provides yum and apt repositories, which allow easy distribution and updates of packages.&lt;/p&gt;

&lt;p&gt;CoreOS rkt provides &lt;a href=&#34;https://github.com/coreos/rkt/releases&#34;&gt;the tgz archives&lt;/a&gt; with compiled software. The idea is to package this archives to RPMs/DEBs with help of OBS.&lt;/p&gt;

&lt;p&gt;This blog post covers the required steps in order to achieve this goal with this simple use case. However you should keep in mind, the packaging instructions (e.g. spec or rules files) are representing a simple example only: they have low quiality claim compared to the distributions.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A short way to a deb package</title>
      <link>https://www.sidorenko.io/post/2016/05/a-short-way-to-a-deb-package/</link>
      <pubDate>Wed, 25 May 2016 19:15:29 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/05/a-short-way-to-a-deb-package/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m playing with &lt;a href=&#34;https://github.com/coreos/rkt&#34;&gt;coreos rkt&lt;/a&gt;, and I was missing &lt;a href=&#34;https://github.com/coreos/rkt/issues/867&#34;&gt;rkt DEB packages&lt;/a&gt; for Ubuntu systems.
CoreOS rkt provides &lt;a href=&#34;https://github.com/coreos/rkt/releases&#34;&gt;the tgz archives&lt;/a&gt; with compiled software. My idea was just to package this archives to DEBs in order to get easy distribution or updates of rkt on my systems.&lt;/p&gt;

&lt;p&gt;The easy way is to use &lt;a href=&#34;https://github.com/jordansissel/fpm&#34;&gt;fpm&lt;/a&gt; for this, but I wanted to use &lt;a href=&#34;https://build.opensuse.org/&#34;&gt;OpenBuild Service of OpenSuse&lt;/a&gt; in order to build RPMs and DEBs in the same time (this is covered in the &lt;a href=&#34;https://www.sidorenko.io/blog/2016/05/26/build-packages-with-openbuild-service/&#34;&gt;next blogpost&lt;/a&gt;). This was the main reason to go more or less the Debian packaging way.&lt;/p&gt;

&lt;p&gt;Debian packaging way is powerful, really. On the other hand, this power and the amount of possible solution ways are a bit confusing for beginners: actually you have to read the big amount of &lt;a href=&#34;https://wiki.debian.org/Packaging&#34;&gt;debian packaging resources&lt;/a&gt; in order to get a picture about all existing use cases, different tools and sometimes different information sources you need.&lt;/p&gt;

&lt;p&gt;My situation was quite similar: I was missing a guide or some tutorial for my simple use case and I didn&amp;rsquo;t want to invest so much time for a simple &amp;ldquo;repackaging&amp;rdquo; from tgz to deb, but I had to. This blog post provides a such tutorial, based on my simple use case. But keep in mind, this short post doesn&amp;rsquo;t replace the &lt;a href=&#34;https://wiki.debian.org/Packaging&#34;&gt;debian packaging resources&lt;/a&gt; like &lt;a href=&#34;https://www.debian.org/doc/manuals/maint-guide/index.en.html&#34;&gt;Debian New Maintainers Guide&lt;/a&gt; or &lt;a href=&#34;https://www.debian.org/doc/debian-policy/&#34;&gt;Debian Policy Manual&lt;/a&gt; and has low quality claim then usual packages provided by distributions.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Flashing BQ Aquaris X5</title>
      <link>https://www.sidorenko.io/post/2016/04/flashing-bq-aquaris-x5/</link>
      <pubDate>Tue, 12 Apr 2016 15:20:52 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2016/04/flashing-bq-aquaris-x5/</guid>
      <description>&lt;p&gt;Since couple of months the Aquaris X5 from BQ is &lt;a href=&#34;http://www.amazon.de/C000079-Aquaris-Smartphone-Megapixel-schwarz/dp/B0173I64EW/&#34;&gt;available in Germany&lt;/a&gt;.
Its a pretty cool device, besides the fair price it has Dual-SIM and MicroSD support and a battery run-time up to several days.
Another interesting thing is this smartphone is offered in two editions: with Android or with CyanogenOS software flashed.
&lt;a href=&#34;https://cyngn.com/cyanogen-os&#34;&gt;CyanogenOS&lt;/a&gt; is the commercial version of &lt;a href=&#34;http://cyanogenmod.org/&#34;&gt;CynanogenMod&lt;/a&gt; and its quite promising especially from the view on software updates and security patches with a stock software.&lt;/p&gt;

&lt;p&gt;This post will describe the (re-)flash procedure of Aquaris X5 with stock Android, CyanogenOS or CyanogenMod.
So still if you want to stay on the stock software, but want to switch from Android to CyanogenOS or back, this post might be useful for you.&lt;/p&gt;

&lt;p&gt;This guide covers the steps required on Linux, but it should work on the similar way on Windows. Hoewever I can&amp;rsquo;t verify it as I do not have any Windows system.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>FrOSCon 2015 impressions</title>
      <link>https://www.sidorenko.io/post/2015/08/froscon-2015-impressions/</link>
      <pubDate>Mon, 24 Aug 2015 07:56:54 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2015/08/froscon-2015-impressions/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://froscon.org&#34;&gt;FrOSCon&lt;/a&gt; is a conference about Free Software and Open Source in Sankt-Augustin near Bonn, Germany.
Here I want to give my impressions from the visit this year. (btw, it was the 10th FrOSCon this year)&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Easy creation of a simple apt repo</title>
      <link>https://www.sidorenko.io/post/2015/05/easy-creation-of-a-simple-apt-repo/</link>
      <pubDate>Tue, 19 May 2015 16:12:51 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2015/05/easy-creation-of-a-simple-apt-repo/</guid>
      <description>&lt;p&gt;If wanted to setup a very simple apt repository on RHEL system to server a small environment with Debian/Mint systems. So the goal is just to place some already built deb packages to some apt repository. Unfortunally it turned to be not a straight forward task like with yum repos. All common ways are based on the Debian/Ubuntu scripts, which are not available on the RHEL platform via packages.&lt;/p&gt;

&lt;p&gt;This post covers following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creation of APT repository on very simple way without involvment of usual tools like apt-ftparchive or &lt;a href=&#34;https://mirrorer.alioth.debian.org/&#34;&gt;reporepo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;APT repository will be GPG signed, to allow verification of integrity&lt;/li&gt;
&lt;li&gt;APT repository will be build on the CentOS/RHEL platform and serve Ubuntu/Debian clients&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Move existing centos installation to encrypted raid and lvm</title>
      <link>https://www.sidorenko.io/post/2015/02/move-existing-centos-installation-to-encrypted-raid-and-lvm/</link>
      <pubDate>Sun, 08 Feb 2015 14:43:14 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2015/02/move-existing-centos-installation-to-encrypted-raid-and-lvm/</guid>
      <description>&lt;p&gt;If you have already some CentOS/RHEL installation and you want to move it to a RAID/LVM with full disk encryption, then this post is for you. We will move a minimal simple CentOS 7 installation on a single disk with LVM to the full encrypted RAID1&amp;amp;LVM setup.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Yubikey or OpenPGP smartcards for newbies</title>
      <link>https://www.sidorenko.io/post/2014/11/yubikey-or-openpgp-smartcards-for-newbies/</link>
      <pubDate>Tue, 04 Nov 2014 20:19:17 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/11/yubikey-or-openpgp-smartcards-for-newbies/</guid>
      <description>&lt;p&gt;I got a brand new &lt;a href=&#34;https://www.yubico.com/products/yubikey-hardware/yubikey-neo/&#34;&gt;yubikey neo&lt;/a&gt; and wanted to get it running on my Mint 17 MATE(based on Ubuntu 14.04 Trusty Tahr) installation for GPG encryption and SSH authentification. It turned out to be not an well-transparent and easy task.
So this post gives my expirience on this topic, but isn&amp;rsquo;t limited to &lt;a href=&#34;https://www.yubico.com/products/yubikey-hardware/yubikey-neo/&#34;&gt;Yubikey&lt;/a&gt; only and should apply to other &lt;a href=&#34;http://shop.kernelconcepts.de/product_info.php?cPath=1_26&amp;amp;products_id=42&#34;&gt;OpenPGP cards&lt;/a&gt; as well.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>GitLab on Centos or RHEL 6</title>
      <link>https://www.sidorenko.io/post/2014/10/gitlab-on-centos-or-rhel-6/</link>
      <pubDate>Wed, 29 Oct 2014 08:40:22 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/10/gitlab-on-centos-or-rhel-6/</guid>
      <description>&lt;p&gt;Gitlab provides &lt;a href=&#34;https://gitlab.com/gitlab-org/gitlab-ce/blob/v7.5.0/doc/install/installation.md&#34;&gt;manual installation instructions for Ubuntu only&lt;/a&gt;, this post covers the procedure how to install it on CentOS/RHEL/RedHat 6.X.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>WebEx on Ubuntu or Mint 64bit</title>
      <link>https://www.sidorenko.io/post/2014/10/webex-on-ubuntu-or-mint-64bit/</link>
      <pubDate>Tue, 28 Oct 2014 17:20:22 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/10/webex-on-ubuntu-or-mint-64bit/</guid>
      <description>&lt;p&gt;If you want to use WebEx on Ubuntu/Mint 64 bit, you will see: it works.
But you won&amp;rsquo;t be able to do screen sharing or probably even to see webcam video streams.&lt;/p&gt;

&lt;p&gt;The only one solution is to use 32bit oracle java incl. browser plugin, so browser has to be 32bit as well.
If you want to keep 64bit browser on the system and to use 32bit setup only for WebEx, then this howto is for you:)&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Telekom Hotspot autologin with NetworkManager</title>
      <link>https://www.sidorenko.io/post/2014/10/telekom-hotspot-autologin-with-networkmanager/</link>
      <pubDate>Wed, 15 Oct 2014 13:36:39 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/10/telekom-hotspot-autologin-with-networkmanager/</guid>
      <description>&lt;p&gt;It was always annoying for me to type in the login credentials on the Hotspots of Deutsche Telekom. As I&amp;rsquo;m lazy, here is a script which can be integrated with networkmanager via dispatcher.d interface, which checks for the right interface and right SSID, then calls the login page with according credentials.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puppet structure</title>
      <link>https://www.sidorenko.io/post/2014/10/puppet-structure/</link>
      <pubDate>Mon, 13 Oct 2014 18:42:48 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/10/puppet-structure/</guid>
      <description>&lt;p&gt;It not always easy to find a good folder hierarchy and structure for puppetmaster, as you have to find a way to combine it with different tools and workflows like git, &lt;a href=&#34;http://librarian-puppet.com/&#34;&gt;librarian&lt;/a&gt; or &lt;a href=&#34;https://github.com/adrienthebo/r10k&#34;&gt;r10k&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As I still miss some kind of best practice whitepaper from puppetlabs, I want to cover here my view on this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;with using hiera&lt;/li&gt;
&lt;li&gt;with or without using full autodeployment like &lt;a href=&#34;https://github.com/adrienthebo/r10k&#34;&gt;r10k&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;without any git submodules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Virtualbox on hardened gentoo</title>
      <link>https://www.sidorenko.io/post/2014/08/virtualbox-on-hardened-gentoo/</link>
      <pubDate>Wed, 27 Aug 2014 18:11:38 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/08/virtualbox-on-hardened-gentoo/</guid>
      <description>I wanted to setup phpVirtualBox on my new Intel NUC, which is running gentoo-hardened. Unfortunately VirtualBox can&amp;rsquo;t run with couple of grsecurity/pax flags enabled in kernel. To get VirtualBox running you have to disable following kernel config flags:
 CONFIG_PAX_KERNEXEC CONFIG_PAX_RANDKSTACK CONFIG_PAX_MEMORY_UDEREF CONFIG_GRKERNSEC_HIDESYM  and to enable:
 CONFIG_PAX_ELFRELOCS (if you have CONFIG_PAX_MPROTECT)  </description>
    </item>
    
    <item>
      <title>Easy SSH key management with puppet</title>
      <link>https://www.sidorenko.io/post/2014/07/easy-ssh-key-management-with-puppet/</link>
      <pubDate>Sun, 06 Jul 2014 20:45:13 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/07/easy-ssh-key-management-with-puppet/</guid>
      <description>&lt;p&gt;SSH key management is required in each environment.&lt;/p&gt;

&lt;p&gt;In this post I want explain how to do it with puppet on the simple way.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve created a &lt;a href=&#34;https://github.com/artem-sidorenko/puppet-sshkeys/&#34;&gt;module&lt;/a&gt;, which is a wrapper around core puppet types User and Ssh_authorized_key. This wrapper enables an easy key management via integration with hiera on puppet. (and it was a good exercise in rspec-puppet:) )&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Puppet hiera hash merge and automatic parameter lookup</title>
      <link>https://www.sidorenko.io/post/2014/07/puppet-hiera-hash-merge-and-automatic-parameter-lookup/</link>
      <pubDate>Sat, 05 Jul 2014 19:29:27 +0200</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/07/puppet-hiera-hash-merge-and-automatic-parameter-lookup/</guid>
      <description>&lt;p&gt;Hiera within Puppet is a great thing, especially starting with puppet 3.&lt;/p&gt;

&lt;p&gt;But there are still some limitations, like &lt;a href=&#34;http://docs.puppetlabs.com/hiera/1/puppet.html#limitations&#34;&gt;priority lookup only with automatic parameter lookup&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Default iptables rules</title>
      <link>https://www.sidorenko.io/post/2014/03/default-iptables-rules/</link>
      <pubDate>Thu, 20 Mar 2014 12:27:37 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/03/default-iptables-rules/</guid>
      <description>&lt;p&gt;I use following iptables and ip6tables rules as a default. This rules provide basic security level:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;statefull inspection&lt;/li&gt;
&lt;li&gt;port knocking for management services like ssh&lt;/li&gt;
&lt;li&gt;port scan protection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Secure SSL configuration for apache, postfix, dovecot</title>
      <link>https://www.sidorenko.io/post/2014/02/secure-ssl-configuration-for-apache-postfix-dovecot/</link>
      <pubDate>Thu, 13 Feb 2014 13:50:13 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2014/02/secure-ssl-configuration-for-apache-postfix-dovecot/</guid>
      <description>&lt;p&gt;There are already several articles about perfect forward secrecy and safe ssl configuration with according recommendations on the net, like this&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy&#34;&gt;Configuring apache, nginx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://sys4.de/de/blog/2013/08/14/postfix-tls-forward-secrecy/&#34;&gt;German: Postfix TLS perfect forward secrecy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.heinlein-support.de/blog/security/perfect-forward-secrecy-pfs-fur-postfix-und-dovecot/&#34;&gt;German: Perfect Forward Secrecy (PFS) für Postfix und Dovecot einrichten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://sys4.de/de/blog/2013/08/15/dovecot-tls-perfect-forward-secrecy/&#34;&gt;German: Dovecot TLS Perfect Forward Secrecy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://bettercrypto.org/static/applied-crypto-hardening.pdf&#34;&gt;Applied Crypto Hardening&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I missed somehow a short overview for me with verification instructions and all information links in one place. So this article is going to cover Perfect Forward Secrecy(PFS) for the software: apache, postfix, dovecot and represents somehow a summary over different information.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to install Linux Mint on encrypted raid 1 with LVM</title>
      <link>https://www.sidorenko.io/post/2013/12/how-to-install-linux-mint-on-encrypted-raid-1-with-lvm/</link>
      <pubDate>Tue, 31 Dec 2013 18:00:48 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2013/12/how-to-install-linux-mint-on-encrypted-raid-1-with-lvm/</guid>
      <description>&lt;p&gt;The installer of Linux Mint doesn&amp;rsquo;t support the installation on encrypted raid 1 with LVM out of the box.&lt;/p&gt;

&lt;p&gt;Following steps are required to do this with Linux Mint 16 (without GPT&amp;amp;UEFI)&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Flashing Android 4 on Samsung Galaxy S II with heimdall</title>
      <link>https://www.sidorenko.io/post/2012/12/flashing-android-4-on-samsung-galaxy-s-ii-with-heimdall/</link>
      <pubDate>Sun, 30 Dec 2012 18:02:04 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/12/flashing-android-4-on-samsung-galaxy-s-ii-with-heimdall/</guid>
      <description>&lt;p&gt;We are using only Linux and no Odin and VirtualBox to update Galaxy S II to Android 4 alias Ice Cream Sandwich.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to root Galaxy Tab 2 10.1 with heimdall</title>
      <link>https://www.sidorenko.io/post/2012/07/how-to-root-galaxy-tab-2-10.1-with-heimdall/</link>
      <pubDate>Wed, 11 Jul 2012 21:19:05 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/07/how-to-root-galaxy-tab-2-10.1-with-heimdall/</guid>
      <description>&lt;p&gt;We are going to install ClockworkMod Recovery on the Galaxy Tab 2 10.1 (GT-P5100) with heimdall. After that you can root your stock image or install CyanogenMod on your tab. If you have another version of Galaxy Tab 2 you will need other images for it, for links take a look at the links at the bottom.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to backup mysql</title>
      <link>https://www.sidorenko.io/post/2012/05/how-to-backup-mysql/</link>
      <pubDate>Wed, 16 May 2012 17:10:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/05/how-to-backup-mysql/</guid>
      <description>&lt;p&gt;We are going to create a simple cron job to dump the DBs, so you can save this dumps on the regular way with your backup software.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to build APC or eAccelerator for PHP on windows</title>
      <link>https://www.sidorenko.io/post/2012/04/how-to-build-apc-or-eaccelerator-for-php-on-windows/</link>
      <pubDate>Fri, 20 Apr 2012 21:49:47 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/04/how-to-build-apc-or-eaccelerator-for-php-on-windows/</guid>
      <description>&lt;p&gt;If you running some php web applications with heavy load you should use some accelerators like &lt;a href=&#34;http://pecl.php.net/package/APC&#34;&gt;APC&lt;/a&gt; or &lt;a href=&#34;https://eaccelerator.net/&#34;&gt;eAccelerator&lt;/a&gt; for PHP.
I noticed that official build instructions in readme&amp;rsquo;s and official homepages are not completely usable to get it working.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Flashing clockmod recovery on Samsung Galaxy S II i9100</title>
      <link>https://www.sidorenko.io/post/2012/04/flashing-clockmod-recovery-on-samsung-galaxy-s-ii-i9100/</link>
      <pubDate>Mon, 16 Apr 2012 17:15:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/04/flashing-clockmod-recovery-on-samsung-galaxy-s-ii-i9100/</guid>
      <description>&lt;p&gt;You may need custom recovery if you want to do nandroid backups of flash some zip files. I will use Linux to flash it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to create VMFS partition on the local disk without label</title>
      <link>https://www.sidorenko.io/post/2012/04/how-to-create-vmfs-partition-on-the-local-disk-without-label/</link>
      <pubDate>Thu, 05 Apr 2012 11:50:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/04/how-to-create-vmfs-partition-on-the-local-disk-without-label/</guid>
      <description>&lt;p&gt;If you are going to create the VMFS partition on the some mew local hdd or hardware raid volume, you can get in trouble with a message &amp;ldquo;Failed to update the disk partition information&amp;rdquo;.
The reason for it is a broken/missing dos label on the device.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>DRBD recovery from split brain</title>
      <link>https://www.sidorenko.io/post/2012/03/drbd-recovery-from-split-brain/</link>
      <pubDate>Wed, 07 Mar 2012 12:50:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/03/drbd-recovery-from-split-brain/</guid>
      <description>&lt;p&gt;If you get degraded DRBD with log messages like &amp;ldquo;Split-Brain detected but unresolved, dropping connection!&amp;rdquo;, you have to manually resolve split brain situation.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to access MSSql from PHP via ODBC</title>
      <link>https://www.sidorenko.io/post/2012/03/how-to-access-mssql-from-php-via-odbc/</link>
      <pubDate>Fri, 02 Mar 2012 12:40:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/03/how-to-access-mssql-from-php-via-odbc/</guid>
      <description>&lt;h1 id=&#34;install-everything&#34;&gt;Install everything&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Install freetds for your distribution, you can find RH packages at &lt;a href=&#34;http://packages.atrpms.net/dist/el6/&#34;&gt;atrpms.net&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Depending on your distribution you will need to install libtdsodbc&lt;/li&gt;
&lt;li&gt;Install php odbc extension&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using One-Time-Password with Apache</title>
      <link>https://www.sidorenko.io/post/2012/01/using-one-time-password-with-apache/</link>
      <pubDate>Sun, 29 Jan 2012 13:35:42 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/01/using-one-time-password-with-apache/</guid>
      <description>&lt;p&gt;We are going to implement authentication with One-Time-Passwords generated via the HOTP/OATP algoritm(&lt;a href=&#34;http://www.ietf.org/rfc/rfc4226.txt&#34;&gt;see RFC&lt;/a&gt;) with Apache. We will use &lt;a href=&#34;http://code.google.com/p/mod-authn-otp/&#34;&gt;mod_authn_otp&lt;/a&gt; for it.&lt;/p&gt;

&lt;p&gt;This example is for Gentoo.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Authentication with One-Time-Passwords</title>
      <link>https://www.sidorenko.io/post/2012/01/authentication-with-one-time-passwords/</link>
      <pubDate>Sun, 29 Jan 2012 13:19:04 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/01/authentication-with-one-time-passwords/</guid>
      <description>&lt;p&gt;This article is about implementing One-Time-Password authentication with PAM, so you can use it with ssh and other pam enabled services.&lt;/p&gt;

&lt;p&gt;We will use &lt;a href=&#34;http://www.nongnu.org/oath-toolkit/&#34;&gt;oath-toolkit&lt;/a&gt; for it. So install it, gentoo ebuild for it is provided in &lt;a href=&#34;https://github.com/artem-sidorenko/portage-2realities&#34;&gt;my overlay&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Problems with P4 Clockmod and CPU frequency scaling</title>
      <link>https://www.sidorenko.io/post/2012/01/problems-with-p4-clockmod-and-cpu-frequency-scaling/</link>
      <pubDate>Sun, 29 Jan 2012 12:00:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2012/01/problems-with-p4-clockmod-and-cpu-frequency-scaling/</guid>
      <description>&lt;p&gt;If you are going to use CPU frequency scaling on P4 you will probably use p4-clockmod and get in trouble with ondemand governor like me.
If you try to switch to the ondemand governor you can see following message in dmesg:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;ondemand governor failed, too long transition latency of HW, fallback to performance governor&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to root HTC Desire S</title>
      <link>https://www.sidorenko.io/post/2011/07/how-to-root-htc-desire-s/</link>
      <pubDate>Thu, 14 Jul 2011 20:31:10 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2011/07/how-to-root-htc-desire-s/</guid>
      <description>&lt;p&gt;Why root? I want to use some advanced features like DroidWall(frontend for iptables), Titanium Backup, OpenVPN, so I need root. With root you can also remove some annoying apps installed by vendor.&lt;/p&gt;

&lt;p&gt;I was using Linux for it, but it should work at the same way with Windows.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to get root on Samsung Galaxy S II I9100</title>
      <link>https://www.sidorenko.io/post/2011/06/how-to-get-root-on-samsung-galaxy-s-ii-i9100/</link>
      <pubDate>Tue, 28 Jun 2011 20:48:09 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2011/06/how-to-get-root-on-samsung-galaxy-s-ii-i9100/</guid>
      <description>&lt;p&gt;Why root? I want to use some advanced features like DroidWall(frontend for iptables), Titanium Backup, OpenVPN, so I need root.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to root HTC Desire</title>
      <link>https://www.sidorenko.io/post/2011/04/how-to-root-htc-desire/</link>
      <pubDate>Wed, 27 Apr 2011 21:02:33 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2011/04/how-to-root-htc-desire/</guid>
      <description>&lt;p&gt;Why root? I want to use some advanced features like DroidWall(frontend for iptables), Titanium Backup, OpenVPN, so I need root.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to activate privacy extensions with IPv6</title>
      <link>https://www.sidorenko.io/post/2011/04/how-to-activate-privacy-extensions-with-ipv6/</link>
      <pubDate>Wed, 27 Apr 2011 20:10:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2011/04/how-to-activate-privacy-extensions-with-ipv6/</guid>
      <description>&lt;p&gt;If you are using auto-configuration with IPv6, the last part of your IPv6 address will be usually your MAC address. So its possible to create mobility profiles on the simple way. To prevent this you can activate privacy extensions, documented in &lt;a href=&#34;http://www.ietf.org/rfc/rfc3041.txt&#34;&gt;RFC3041&lt;/a&gt;. After you&amp;rsquo;ve done it, the last part of your IPv6 address will be random generated&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to batch delete old files after installworld</title>
      <link>https://www.sidorenko.io/post/2011/04/how-to-batch-delete-old-files-after-installworld/</link>
      <pubDate>Mon, 25 Apr 2011 22:01:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2011/04/how-to-batch-delete-old-files-after-installworld/</guid>
      <description>&lt;p&gt;After you have build and installed the world, you want probably to clean up your system.
If you do it on the way described in the Makefile, and start &lt;strong&gt;make delete-old&lt;/strong&gt; you will be prompted for configuration for each file have to be deleted.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using bind from ports</title>
      <link>https://www.sidorenko.io/post/2011/04/using-bind-from-ports/</link>
      <pubDate>Mon, 25 Apr 2011 21:15:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2011/04/using-bind-from-ports/</guid>
      <description>&lt;p&gt;There are some reasons to use bind from ports and not from world. One reason could be if you want to use &lt;a href=&#34;http://bind-dlz.sourceforge.net/&#34;&gt;DLZ&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to wireshark with user rights</title>
      <link>https://www.sidorenko.io/post/2011/01/how-to-wireshark-with-user-rights/</link>
      <pubDate>Tue, 04 Jan 2011 20:46:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2011/01/how-to-wireshark-with-user-rights/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s often nessesary to run wireshark with user rights.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Workaround for Anaconda network timeouts and spanning tree with Kickstart installations</title>
      <link>https://www.sidorenko.io/post/2010/11/workaround-for-anaconda-network-timeouts-and-spanning-tree-with-kickstart-installations/</link>
      <pubDate>Mon, 08 Nov 2010 20:01:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2010/11/workaround-for-anaconda-network-timeouts-and-spanning-tree-with-kickstart-installations/</guid>
      <description>&lt;p&gt;If you are running spanning tree you may get in trouble with anaconda network initialization.
Spanning tree needs about a 30 seconds to bring the switch port up, so you may run in dhcp timeout.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>vSphere Client CLI options</title>
      <link>https://www.sidorenko.io/post/2010/11/vsphere-client-cli-options/</link>
      <pubDate>Thu, 04 Nov 2010 19:03:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2010/11/vsphere-client-cli-options/</guid>
      <description>&lt;p&gt;There are several command line options you can use with vSphere client.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to use the correct interface for kickstart installations</title>
      <link>https://www.sidorenko.io/post/2010/10/how-to-use-the-correct-interface-for-kickstart-installations/</link>
      <pubDate>Fri, 22 Oct 2010 18:25:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2010/10/how-to-use-the-correct-interface-for-kickstart-installations/</guid>
      <description>&lt;p&gt;When your system has more than one network interface anaconda asks you which one you&amp;rsquo;d like to use for the kickstart process. This decision can be made at boot time by adding the ksdevice paramter and setting it accordingly. To run kickstart via eth0 simply add ksdevice=eth0 to the kernel command line.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using native SATA on systems with IDE emulation</title>
      <link>https://www.sidorenko.io/post/2010/10/using-native-sata-on-systems-with-ide-emulation/</link>
      <pubDate>Thu, 21 Oct 2010 22:21:21 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2010/10/using-native-sata-on-systems-with-ide-emulation/</guid>
      <description>&lt;p&gt;Some systems have this IDE emulation enabled for compatibility purposes.
IDE module and devices are normally initiated by linux kernel before SATA modules and devices.
So, our SATA device is blocked by IDE kernel module and can&amp;rsquo;t be used as native SATA device. Is also not possible to use this emulated IDE device with DMA, so we have a real performance problem with hard disk I/O on this system.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to edit initrd image</title>
      <link>https://www.sidorenko.io/post/2010/10/how-to-edit-initrd-image/</link>
      <pubDate>Thu, 21 Oct 2010 22:13:24 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2010/10/how-to-edit-initrd-image/</guid>
      <description>&lt;p&gt;It usefull sometimes to edit the initrd/initramfs image of the system. This howto describes the simple and usual way to do it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to determine the switch port with tcpdump</title>
      <link>https://www.sidorenko.io/post/2010/10/how-to-determine-the-switch-port-with-tcpdump/</link>
      <pubDate>Thu, 21 Oct 2010 22:09:09 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2010/10/how-to-determine-the-switch-port-with-tcpdump/</guid>
      <description>&lt;p&gt;We are going to use the Cisco Discovery Protocol, CDP&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to setup the link timeout on the HBAs on the ESX</title>
      <link>https://www.sidorenko.io/post/2010/10/how-to-setup-the-link-timeout-on-the-hbas-on-the-esx/</link>
      <pubDate>Thu, 21 Oct 2010 16:32:00 +0100</pubDate>
      
      <guid>https://www.sidorenko.io/post/2010/10/how-to-setup-the-link-timeout-on-the-hbas-on-the-esx/</guid>
      <description>&lt;p&gt;You may need it for example for an firmware upgrade of the disks on the storage system. Please ensure that you don&amp;rsquo;t have huge IO in the time frame and you applications will not timeout because of missing disk and will retry disk IO operations.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>