• Sales: 1-800-961-2888
  • Support: 1-800-961-4454

Rackspace Private Cloud Software - Cookbook Update Procedure


This information is intended for Rackspace Private Cloud customers who want to apply an updated Rackspace-provided cookbook update to an Essex Private Cloud. These instructions are for modifying Essex only and should not be used to upgrade from Essex to other versions of OpenStack. You may also download a PDF version of this guide.

This guide does not include an in-depth discussion of chef; refer to Opscode's chef documentation for detailed information about that product. This document discusses the following topics:

  • Preparing for the installation
  • Updating the cookbooks
  • Verifying the installation

NOTE: This procedure should be used to apply official Rackspace Private Cloud Software cookbook updates as provided and designated by Rackspace. If you choose to modify the cookbooks independently, support from Rackspace will be limited.

Download Current Cookbooks

The public, read-only URL for the cookbooks is git://github.com/rcbops/chef-cookbooks.git

Rackspace recommends that you log into the controller node and use git rev-parse before performing an upgrade:

$ git rev-parse HEAD | cut -b -6

Preparing the Nodes

In the following procedure, you will prepare the nodes for installation and document the instances and images that are currently active. You will refer to this information at the end of the process to verify that the cookbook update was performed successfully.

  1. Log into each controller and compute node via SSH and stop the chef-client service.
    $ service chef-client stop
    
  2. Log into the controller node via SSH and switch to root user access with sudo -i
  3. Make a copy of /root/.novarc.
    $ cp /root/.novarc /root/.novarc.bak
    
  4. Document the instances and images that are active with the nova image-list, nova list, and nova-manage service listcommands, as in the following example:
    $ nova image-list
                                    
    +-------------------------+------------------+--------+----------+
    |          ID             |      Name        | Status |  Server  |
    +-------------------------+------------------+--------+----------+
    | 033c0027-[id truncated] | cirros-image     | ACTIVE |          |
    | 85a0a926-[id truncated] | precise-image    | ACTIVE |          |
    | e07bb350-[id truncated] | test_snap        | ACTIVE |          |
    | e555ac90-[id truncated] | My Image         | ACTIVE |          |
    +-------------------------+------------------+--------+----------+
                                    
    $ nova list
                                    
    +-------------------------+------+--------+-------------------+
    |          ID             | Name | Status |      Networks     |
    +-------------------------+------+--------+-------------------+
    | c5508f15-[id truncated] | test | ACTIVE | public=172.31.0.2 |
    +-------------------------+------+--------+-------------------+
                                    
    $ nova-manage service list
                                    
    2012-08-29 11:26:05 
    Binary           Host       Zone   Status     State Updated_At
    nova-scheduler   ctrl       nova    enabled    :-)   2012-08-29 15:26:03
    nova-consoleauth ctrl       nova    enabled    :-)   2012-08-29 15:26:04
    nova-network     compute1   nova    enabled    :-)   2012-08-29 15:25:55
    nova-compute     compute1   nova    enabled    :-)   2012-08-29 15:26:01
     

Update the Cookbooks

In the following procedure, you will update the cookbooks on the chef server.

You must perform this procedure as the root user on the controller and compute nodes. To do so, log in with the OS user ID that you created during installation and use sudo -i to switch to root user access.

  1. Navigate to the cookbook directory:
    $ cd /opt/rpcs/chef-cookbooks               
  2. Run the following git commands to pull the cookbook files.
    $ git checkout iso
    $ git pull
    $ git submodule init
    $ git submodule update
    
  3. Run the following knife commands to update the cookbooks on the chef server.
    $ knife role from file roles/*.rb
    $ knife cookbook upload -a          
    

Run chef-client

In the following procedure, you will run chef-client on each node, which will implement the cookbooks on each node.

You must perform this procedure as the root user on the controller and compute nodes. To do so, log in with the OS user ID that you created during installation and use sudo -i to switch to root user access.

  1. On the controller, run chef-client and start the chef-client service:
    $ chef-client
    $ service chef-client start
    
  2. Log onto each compute node via SSH and run chef-client and start the chef-client service on each node.
    $ chef-client
    $ service chef-client start
    
  3. Open /root/.novarc and compare the contents to .novarc.bak, created in Step 3 of Preparing the Nodes.
  4. Verify that all services are running with the nova image-list, nova list, and nova-manage service list commands. The results should match the results obtained in Step 4 of Preparing the Nodes.






© 2011-2013 Rackspace US, Inc.

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License


See license specifics and DISCLAIMER