Wednesday, July 16, 2014
After setting up a Swift Cluster with TempAuth, I wanted to remove TempAuth and use Keystone to authenticate. However, I kept encountering 401 Unauthorized errors when running the swift command even though I was fairly certain everything was configured properly.
Wednesday, July 16, 2014
In a previous post I detailed how to install a stand-alone, multi-node OpenStack Swift Cluster with VirtualBox or VMware Fusion and Vagrant. That post configures Swift’s TempAuth module for authentication. However, if you have an existing OpenStack environment, or just an OpenStack Keystone server already setup, you can just as easily use Keystone instead.
Monday, July 14, 2014
The OpenStack Swift developer website describes Swift best: it is a highly available, distributed, eventually consistent object/blog store. Organizations can use Swift to store lots of data efficiently, safely, and cheaply.
For being such a powerful object storage platform, I found it surprisingly easy to setup and configure. Of course, setup becomes more difficult as the number of nodes, racks, and data centers increase.
But, not all of us have many nodes, racks, or data centers at our disposal, and simply want to setup an environment to play with on our workstation.
Monday, June 23, 2014
There are all sorts of tools available to setup virtual OpenStack environments on your workstation.
In Rackspace Private Cloud’s case, the following three options are available:
These tools are great to give you a very quick and easy way to setup a demo Rackspace Private Cloud environment to begin learning how the services, APIs, CLI tools, and Horizon Dashboard work. However, these demo environments do not give you a realistic expectation of what you can expect Rackspace Private Cloud to do for you on bare metal servers or how to actually set it all up.
Saturday, June 14, 2014
With the advent of cloud computing came the cloud computing methodology and a different way of doing things. Instead of having high availability just at the infrastructure layer, high availability now needs to exist at the infrastructure layer and the application layer. And even though the infrastructure layer is architected to be highly available, your application should be designed to expect something at the infrastructure layer to fail. And when something does fail, whatever failed should not bring anything else down with it. This is a shared-nothing architecture.
Wednesday, June 11, 2014
The Twitter Bootstrap front-end framework provides a UI element called a Jumbotron. As stated at getbootstrap.com, it is “a lightweight, flexible component that can optionally extend the entire viewport to showcase key content on your site”.
In my particular case, I wanted to use the Jumbotron to display different, severely cropped photographs on each page load. This post will go through how to implement this using jQuery.
Sunday, June 8, 2014
Monday, June 2, 2014
I needed a way to manage Apache VirtualHosts and mod_rewrite rules. There are a handful of Ansible Roles available at Ansible Galaxy to manage Apache VirtualHosts, but none of them also manage mod_rewrite rules.
After figuring out how to include additional content in an Ansible Template file, I was able to quickly put together an Ansible Playbook and Ansible Template to manage my Apache VirtualHosts and their particular mod_rewrite rules.
Sunday, June 1, 2014
OpenStack Instances are created from OpenStack cloud images. Many modern Linux distributions create and distribute their own pre-made OpenStack cloud images, but for those that don’t, it is possible to create your own.
cloud-init is a key part in creating any OpenStack cloud image and will be found in most of the pre-made images.
The following post will be an ever growing list of operating systems that have pre-made OpenStack cloud images and instructions to create your own if they do not.
Thursday, May 22, 2014
While putting together an Ansible Playbook to generate a configuration file from an Ansible Template, I needed a way to include additional content from a text file within the generated configuration file. I could not find an Ansible Module to do this, but Ansible uses the Jinja2 templating engine, and with one additional line in the Ansible Template file, I was able to include the contents of the text file in the generated configuration file.