OpenStack organization & introductions

Hi everyone,

I've run into quite a few separate folks doing Ansible things with OpenStack.

I figured this thread might be good for introductions and to get those
isolated people connected. Would an ansible-openstack repo for some
mutually developed playbooks make sense?

If this did make sense, is it still appropriate to target Folsom or
should we just have a go at Grizzly?

What do people want to accomplish?

I'm happy to have a go at organizing some, and we'll be able to lend a
hand as well.

I think we have clearly the easiest tool to automate OpenStack-ey
things, and it's not really as complicated as everyone makes it out to
be -- as proved at least in part by the content Lorin has already
published.

Hi everyone,

I've run into quite a few separate folks doing Ansible things with
OpenStack.

I figured this thread might be good for introductions and to get those
isolated people connected. Would an ansible-openstack repo for some
mutually developed playbooks make sense?

If this did make sense, is it still appropriate to target Folsom or
should we just have a go at Grizzly?

What do people want to accomplish?

I'm happy to have a go at organizing some, and we'll be able to lend a
hand as well.

I think we have clearly the easiest tool to automate OpenStack-ey
things, and it's not really as complicated as everyone makes it out to
be -- as proved at least in part by the content Lorin has already
published.

I have deployed a small eight node production openstack cluster using
ansible, partly based on what Lorin has done (though months ago now) and
also the Hastexo general blog post on installing Essex. I still don't have
a great grasp of ansible best practices though, or actually openstack best
practices either. So it would be great to see what real knowledgeable users
of both do.

I agree that deploying openstack isn't the big issue people tend to make it
out to be. Certainly running a large production system isn't easy, but I've
had no problems with a small specific essex deployment.

Here's a blog post on what I've deployed, though it doesn't mention much
about ansible:
http://blog.canstack.ca/2013/02/14/vcl-openstack-reference-architecture.html

I would be very interested in working with the latest version of openstack
and ansible and especially in a development environment, ie. running
several small virtual machines via vagrant or fusion on osx or kvm on
linux. It would be great to grab one github repo and deploy a small
openstack cluster using vagrant and ansible in a couple commands.

Also I think deploying ceph with ansible would be a good project to work on
as well, though I haven't looked if anyone has already done this.

Thanks,
Curtis.

Awesome.

We've had a pull request for a Ceph Facts module, which while probably
a bit niche for core, could easily be kept in this repo.

Can you put your OpenStack content on github somewhere so we can start
comparing and starting a common repo? If we have to keep seperate
Folsom and Essex directories I think that would be reasonable -- they
are quite different beasts :slight_smile:

Jimmy Tang from Trinity College Dublin's HPC group is the one to talk
to about Ceph -- he should be on list.

--Michael

Awesome.

We've had a pull request for a Ceph Facts module, which while probably
a bit niche for core, could easily be kept in this repo.

Can you put your OpenStack content on github somewhere so we can start
comparing and starting a common repo? If we have to keep seperate
Folsom and Essex directories I think that would be reasonable -- they
are quite different beasts :slight_smile:

Sure it is up here:
https://github.com/curtisgithub/ansible_playbooks/tree/master/openstack_essexbut
as you'll see I'm organizationally challenged... :slight_smile:

Thanks,
Curtis.

Neat, its a good starting place. I think targeting the current stable openstack release on either ubuntu or rhel6 (or centos or sl) with a set of tasks and templates to setup a small 2-3 node environment with vagrant is probably the best thing to do.

I would be interested in seeing how a more advanced ansible user would template up some of the configuration if one were to deploy lots of storage nodes or compute nodes.

Curtis do you want to setup a new repo for say something like “ansible-openstack”? if no one wants to take on the initial repo, I’d volunteer, only i’m not familar with openstack as it’s not something that we’re currently using in work.

Also there was an idea about ripping out the puppet components for packstack, but i think doing a specific ansible-openstack repo full of tasks and playbooks is more desirable.

Jimmy.

Actually, just to skip the discussion on what to setup and how, lets just wing it for now and see what happens. Here’s a start of a repo with a vagrant file which will boot up a controller and compute vm - currently has no provisioning at all in it. It’s at least a start for pulling things together, testing and development.

Jimmy

heres the link

https://github.com/jcftang/ansible-openstack

BTW, our setup should not use Vagrant.

It should be a generic OpenStack config where you specify the host file.

If someone wants to use Vagrant, they *can* (and just put things in
the host file), but our goal here if we want to collaborate should be
for real deployments.

I could move the vagrant and test/dev specific material into a hacking
directory and have an env-setup script like the ansible repo.

Jimmy

Sounds good!

-- Michael

BTW, our setup should not use Vagrant.

It should be a generic OpenStack config where you specify the host file.

If someone wants to use Vagrant, they *can* (and just put things in
the host file), but our goal here if we want to collaborate should be
for real deployments.

What is a real deployment?

Sure, vagrant on the side, but I think being a part of the repo in some
fashion would be nice. I'll deploy many, perhaps hundreds, of times to a
virtual environment vs a small number of "real deployments" (assuming that
means hardware). My two cents anyways. :slight_smile:

Thanks,
Curtis.

BTW, our setup should not use Vagrant.

It should be a generic OpenStack config where you specify the host file.

If someone wants to use Vagrant, they *can* (and just put things in
the host file), but our goal here if we want to collaborate should be
for real deployments.

What is a real deployment?

Sure, vagrant on the side, but I think being a part of the repo in some
fashion would be nice. I'll deploy many, perhaps hundreds, of times to a
virtual environment vs a small number of "real deployments" (assuming that
means hardware). My two cents anyways. :slight_smile:

Being part of the repo is ok, but personally I use Vmware fusion and
KVM a HECK of a lot more than VirtualBox.

i.e. I don't want it to only work with vagrant.

I just made some of the suggested changes, the top level repo doesn't
have any vagrant stuff at all. All the vagrant related stuff for
devel/testing is inside the hacking directory.

Sourcing the hacking/env-setup bash script sets up the hosts file and
aliases ansible and ansible-playbook so that it uses the vagrant keys
and user name. The assumption is that anyone who wants to test/develop
the scripts will want to do it with vagrant. devs can choose to not
use it and do their own thing, prefer to use vagrant myself as it
keeps gives me a repeatable way of deploying a test system.

Jimmy

https://github.com/jcftang/ansible-openstack/blob/master/playbooks/folsom-stable-setup.yml
<- doesn't appear to do anything yet :slight_smile:

--Michael

I'll look into getting one of our guys to start something based on
Lorin's in the short term, and see if we can't start getting it
adapted for Folsom.

Stay tuned :slight_smile:

heh, yea, i just wanted to get a base system going first before i
start (or anyone else) plugging stuff in. My lack of understanding of
openstack will mean it will be a slow start.

Jimmy

Would be nice to do all the endpoint stuff in ansible as well instead of in a separate script at some point.

one of the things I liked about packstack is that folks working on that
are also actively working on openstack. So, in terms of deploying
openstack they really know what they're doing. (not saying y'all don't,
of course). The idea was puppet is, imo, an extremely poor fit for
multi-system orchestration - and since packstack was already in python
I figured grafting ansible into it in place of puppet modules wouldn't
be very hard and would end up producing an output quicker.

That was the whole crux of suggesting it.

I may pursue it on my own - but I thought I'd mention it nevertheless.

-sv

Hi,

I think that this is a great idea. I have built a single node OpenStack setup for Centos 6 with EPEL that mostly works (still working on understanding Quantum) which I am willing to contribute.

One thing I did is build modules to configure various OpenStack services if not already set up. However, it will not recognize if an option has changed just whether the component is present or absent. Here is an example usage:

  • name: create user $name
    tags:
  • add
    action: keystone_user name=“$name” password=“$password” tenant=“$tenant” email=“$name@rexden.us” role=“$role”
    register: keyuser

I have attached this very rough module. I have modules for keystone_user, keystone_service, keystone_endpoint, quantum_net, quantum_subnet, quantum_router, and glance_image. Let me know if folks want it and I will clean them up and create a pull request. However it might be a while due to pressing work commitments that have drawn me away from this personal project.

I also wrote a simple openstack_config as the ini_file module did not like the DEFAULTS section in most OpenStack ini files. Its sample usage is:

  • name: folsom and later glance-registry config to use keystone
    tags:
  • glance
    openstack_config: dest=“/etc/glance/glance-registry.conf” section=keystone_authtoken keyvalue=“$item”
    with_items:
  • “admin_tenant_name=service”
  • “admin_user=glance”
  • “admin_password=servicepass”

Again, let me know if folks want me to clean it up and generate a pull request.

Thanks,
David

(attachments)

keystone_user.py (8.94 KB)

I just got a large chunk of the basic configuration done for a folsom controller node, i can at least go to the web interface in my test vm. I think I might let it sit for a day or so to figure out how to do the network in my test environment first. There are some choices to be made, which aren’t really a problem of ansibles; but its a question of taste and available hardware/software for setting up openstack.

Jimmy.