Bootstrapping a Puppet master
Installing a Puppetmaster is a bit of a chicken-egg problem. We want to have our environment as automated and slick as possible, but we currently have no tools installed to to so.
So what do we actually need to install and configure for our Puppet master:
- Puppet
- Hiera
- R10k
- Git
This is the minimum, from this it can go ahead and dogfood itself in my prefered fashion.
I do this with a bit of bash that I threw together during a meeting. I use only bash as that is the only thing I can be guaranteed to have on a clean install.
Installing and Managing Sensu with Puppet
As promised in the previous post, I thought I would share my Sensu/Puppet config. This is based on the Puppet infrastucture I decribed here so everything goes into Hiera.
For reasons best known to me (or my DHCP server) my Sensu host is on 192.168.1.108.
First your Puppetfile
tells R10k to install the Sensu module, plus a
few more:
mod 'nanliu/staging'
mod 'puppetlabs/rabbitmq'
mod 'sensu/sensu'
mod 'redis',
:git => 'https://github.com/chriscowley/chriscowley-redis.git',
:commit => '208c01aaf2435839ada26d3f7187ca80517fa2a8
I tend to put my classes and their parameters in Hiera. My
hieradata/common.yaml
contains:
DevOps Terminology
Talking to a few people there seems to be a little confusion over the various stages in the deployment pipeline. Specifically there seems to be a little confusion over 3 things:
- Orchestration
- Provisioning
- Configuration Management
These seem to have got rather mixed up of late. I will put the blame squarely at the doors of marketing departments because, well, why not…
I should probably add that these are my opinions. It is all a little grey, but this makes sense to me.
Installing RabbitMQ on CentOS 7
Very quick as I did not find any good solutions to this on Google. This is actually an interim post as I ran across this while configuring Sensu in my lab. A full post on that, along with configuring it with my Puppet set up is coming.
RabbitMQ is in EPEL (slightly old, but not drastically) so install that
first, then install from yum
.
yum -y install https://mirrors.ircam.fr/pub/fedora/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum -y install rabbitmq-server
Well that was easy, so just start it with
Open Source Hyper-converged Infrastructure
Hyper-converged seems to be all the rage at the moment. VMware's announcement of the EVO:RAIL has naturally got lots of tongues wagging. They are jumping into a market already well populated.
I was looking at the pricing/features and though it all looks a little expensive. Nutanix for example, will sell you the following:
- NX-1000: $80k+ (4 little nodes)
- NX-3000: $144k+ (4 big nodes)
- NX-6000: $120k+ (2 massive nodes)
I’d imagine that, once you include licensing, EVO:RAIL systems will come in similar. What do you get for your case:
My Pythony Puppet Ruby vim IDE
Despite my penchant for tools written in Ruby (Puppet, Gitlab,
Jekyll/Octopress etc) I do not actually like Ruby. I am more of a Python
guy. I also like Vim, so whenever I use a GUI IDE I end up with
something littered with :w
and ZZ
.
Despite my pythonic leanings, I also need something that can handle Ruby and Puppet’s DSL. To which end, this is a bit of a mixture. Fortunately, nothing in either world really contradicts the other, so it works pretty nicely.
Install Microsoft TrueType fonts on Fedora
Fedora do not bundle Microsoft’s core Truetype fonts for licensing reasons. Normallly I do not care, personally I prefer Liberation fonts anyway. However, today I needed Verdana.
Traditionally, the way to install these on RPM based distributions has been:
- Grab the RPM spec file
- Build an RPM from the spec file
- Install RPM using the
rpm
command.
All well and good, however there are a couple of problems.
- Using RPM directly is frowned upon
Nowadays, Yum does various bits of house keeping in addition to RPM, so
this can lead to the rpm
and yum
databases getting their knickers in
a twist.
Super Slick Agile Puppet for Devops
With a superb buzzword laden title like that, then I reckon massive traffic boost is inevitable.
Puppet is my favourite Configuration Management tool. This is not a post to try and persuade anyone not to use Ansible, Chef or any other. What I want to do is show I build Puppet based infrastuctures in such away that it meets all the basic tenets of DevOps/Agile/buzzword-of-the-month.
What to we need:
- CentOS 6 - RHEL/CentOS is pretty much the defacto enterprise distro. This will easily translate to Debian/Ubuntu or anything else.
- Puppet 3 - I like a traditional Master/Agent set up, if you prefer master-less good for you. This is my blog, my rules.
- Git
- Dynamic Environments
- PuppetDB
- Hiera
- Jenkins
All the config is stored in Git, with Jenkins watching it.
New Linux Active Directory Integration
This used to be quite complex, but now is astoundingly simple. Now there is a new project call realmd. It is in recent version of Debian (Jessie and Sid) and Ubuntu (since 13.04). For Red Hat types, it is RHEL7 and Fedora (since 18).
If you're on Debian/Ubuntu, install with:
apt-get install realmd
For RHEL/Fedora:
sudo yum install realmd
Now you can go ahead and join the domain:
sudo realm join --user=<admin-user> example.com
That is it, you can check this by running sudo realm list
, which will
give you something like:
Home-made Energy Bars
A break from computing today and into the world of nutrition. Cyclists love to talk about nutrition as the nature of our sport makes it a major consideration. I do not really know of any other sport where your fuel gives out before the rest of your body.
This means that cycling nutrition is big business, and expensive. A typical box of energy bars will cost about 1 euro a bar from a big box pusher, more from your LBS. To that end (as I like baking) I decided to make my own.