Skip to content

Repository files navigation

Firestack

Description

A set of rake tasks to build packages and install OpenStack.

Features:

  • Integrates with Kytoon to create groups of servers for installation.

  • Build packages and create a package repo.

  • Install and configure packages on nodes (via Puppet).

  • Tasks to configure keystone data, load glance images, etc.

  • Run various test suites (Torpedo, Tempest, Nova Smoke Tests)

Useful for developmental and functional testing.

Requirements

-Kytoon: https://github.com/dprince/kytoon

Tasks

Available tasks:

rake fedora:create_rpm_repo # Create an RPM repo.
rake fedora:fill_cache # Upload packages to the cache URL.
rake glance:build_packages # Build Glance packages.
rake glance:install_source # Install local Glance source code into the g...
rake kytoon:create # Create a new group of cloud servers
rake kytoon:delete # Delete a cloud server group
rake kytoon:gateway_ip # Print the VPN gateway IP address
rake kytoon:list # List existing cloud server groups.
rake kytoon:show # Print information for a cloud server group
rake keystone:build_packages # Build Keystone packages.
rake keystone:configure # Configure keystone
rake nova:build_packages # Build Nova packages.
rake nova:install_source # Install local Nova source code into the group.
rake nova:smoke_tests # Run the nova smoke tests.
rake nova:tail_logs # Tail nova logs.
rake puppet:install # Install and configure packages on clients w...
rake ssh # SSH into the most recently created VPN gate...
rake stackattack:install # Install stack attack and dependencies on SE...
rake swift:build_packages # Build Swift packages.
rake tail_logs # Tail nova, glance, keystone logs.
rake tempest # Install and run Tempest.
rake torpedo # Install and run Torpedo: Fast Openstack tests
rake usage # Print help and usage information
rake xen:install_plugins # Install plugins into the XenServer dom0.

Quickstart on Fedora 17 and RHEL 6

# Before using Firestack w/ Libvirt you need to have an image and a libvirt# XML dom file on disk that will be used to clone new VM's for each # Firestack group.
LIBVIRT_XML_FILE=/path/to/libvirt/dom/xml
set -x
# install rubygems, rubygem-json, and Git, make, gcc, etcforXin rubygems ruby-devel rubygem-bundler git make gcc;do
rpm -q $X&> /dev/null || yum install -q -y $Xdone# Some older RHEL/Fedora distro don't have a bundler packageif! gem list | grep bundler &> /dev/null;then
gem install --no-rdoc --no-ri bundler
fi
git clone git://github.com/dprince/firestack.git
cd firestack
bundle install
# Configure the server group XML for Kytoon
cat >> config/server_group_libvirt.json <<EOF_CAT{ "name": "Fedora", "servers": [	{ "hostname": "nova1", "memory": "4", "gateway": "true", "original_xml": "$LIBVIRT_XML_FILE", "create_cow": "true"	} ]}EOF_CAT# Configure kytoon.conf# NOTE: This config assumes you have configured libvirt to run with your# username. Alternately you can have Kytoon use sudo via the libvirt_use_sudo.## See this puppet module if you are interested in quickly configuring worker# nodes to allow a 'smokestack' user to make use of libvirt:# https://github.com/dprince/smokestack-puppet/blob/master/modules/smokestack/manifests/libvirt.pp
cat >>~/.kytoon.conf <<EOF_CAT# The default group type.# Set to one of: openstack, libvirt, xenservergroup_type: libvirt# Libvirt settings# Whether commands to create local group should use sudolibvirt_use_sudo: FalseEOF_CAT# Generate an ssh keypair if you don't already have oneif [ !-f~/.ssh/id_rsa ];then
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ""fi# Now you are ready to run the example_libvirt.bash# From here on out just run this directly!
bash example_libvirt.bash

Example Commands

Typically you'll want to create a runner script that creates a new group, builds packages, installs them, etc. See example_libvirt.bash as an example. The following commands are commonly used:

#create a group
rake kytoon:create SERVER_GROUP_JSON="config/server_group_fedora.json"#build Nova packages
rake nova:build_packages \
RPM_PACKAGER_URL="git://github.com/redhat-openstack/openstack-nova.git" \
SOURCE_URL="git://github.com/openstack/nova.git" \
SOURCE_BRANCH="master"#create an RPM repo
rake fedora:create_rpm_repo
#install/configure packages with Puppet
rake puppet:install SOURCE_URL="git://github.com/redhat-openstack/openstack-puppet.git" PUPPET_CONFIG="single_node_mysql"#configure keystone
rake keystone:configure
#load glance images
rake glance:load_images
#Run test suites
rake torpedo
rake tempest

See the example bash script in this directory for detailed example using libvirt.

About

smokestack helper tasks: packages, puppet, tests

Resources

Stars

18 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages