Note: Please go to docs.rightscale.com to access the current RightScale documentation set. Also, feel free to Chat with us!
Home > Guides > Chef Cookbooks Developer Guide > End User > RightScale Support of Chef > Repose

Repose

Overview

In order to reduce dependencies on third party services, RightScale provides a mirroring service that stores cached copies of referenced cookbook repositories hosted on third party source control management systems (e.g. GitHub) that will be used to launch and configure servers. 

What is Repose?

Repose is RightScale's hosted caching service for storing the following resource types:

  • Chef cookbooks and recipes
  • RightScript attachments


Repose consists of a set of replicated and distributed caching stores to ensure the successful retrieval of requested Chef resources and RightScripts.

Repose improves instance boot-time reliability by providing a mirroring infrastructure for retrieving the cookbooks required to run a script or series of scripts. It's critical that any request for a resource (Chef recipe or RightScript attachment) is not reliant upon third party services that RightScale cannot control. For example, if you launch a server and the source control management system that hosts your code repositories is not accessible at the time of a request, RightScale wants to make sure that your server will still launch successfully. Therefore, any cookbooks that are used by a ServerTemplate must be mirrored in Repose so that when a server is launched, the Chef recipes and RightScript attachments are retrieved from Repose instead of from the actually source code repositories themselves.

There are two different ways to add cookbooks into your RightScale account.

  1. Import a ServerTemplate from the MultiCloud Marketplace. When you import a ServerTemplate into your RightScale account, all of its attached cookbooks are imported into the alternate namespace, which will allow you to follow a cookbook so that newer versions (of that cookbook) will automatically be imported into your account when they become available. See Primary and Alternate Namespaces.
  2. Add a Repository. Under Design > Repositories, you can create a Repository object, which points to a third-party source repository (e.g. GitHub or SVN) where the contents of that repository can be fetched and stored in Repose. Cookbooks can then be imported into the primary or alternate namespace.

 

RightScale periodically scrapes specified repositories (approximately every 12 hours) to update the cached version in Repose. However, you can also manually scrape a repository at any time by using the "refetch" action.

 

diag-Repose_Architecture-v4.png

How is Repose used to launch servers?

 

diag-BreakdownChefRun-Launch-v5.png

  1. Create a server from a ServerTemplate. If a Chef-based ServerTemplate is not available, you can import one from the MultiCloud Marketplace. (Requires the 'library' user role privilege.)
  2. Launch the server.
  3. A virtual machine instance is provisioned by the cloud provider. A machine image is loaded onto the instance. If you are using a ServerTemplate published by 'RightScale' the machine image will be a RightImage. 
  4. Once the operating system is loaded onto the instance and RightLink is started, it calls back to the RightScale core system to retrieve all of the Chef resources and RightScripts that are necessary to run the boot sequence (i.e. the list of scripts to execute at boot time). 
  5. The required cookbooks and RightScripts are sent from Repose to the instance as a tarball. The RightLink agent on the instance unpacks the tarball and saves the cookbooks in a local directory (/var/cache/rightscale/cookbooks/default/<SHA>). A single Chef run list is created to execute the script or series of scripts on the instance to complete the boot process. Remember, cookbooks are not retrieved from the original source repositories themselves. (e.g. GitHub, SVN, etc.)  If all of the scripts are executed properly, the instance will transition into the "operational" state.

Images that support Repose

The version of a server's underlying image will determine whether it supports Repose. If you are using ServerTemplates that use RightImages, you will need to check the RightImage's version to see if its version of RightLink supports Repose.

  • Version 5.6 and newer RightImages* - Servers launched with Version 5.6 and later RightImages will always pull cookbooks directly from the Repose. They will never pull cookbooks directly from third-party source control repositories. Repose is automatically refreshed daily. You can also manually trigger a refresh at any time by refreshing a cookbook's repositories in the dashboard.
  • Version 5.5 and older RightImages - For instances using legacy RightImages (e.g. Version 5.5), cookbooks are pulled directly from the public/private source control repositories and not from Repose. It's strongly recommended that you upgrade to newer RightImages that support Repose.
     

* If you are starting RightImage-5.6-based servers in a virtual private cloud (VPC) or behind a firewall, you must allow outgoing HTTPS traffic from your servers to repose1.rightscale.com (which has multiple IP addresses for redundancy purposes).

You must to post a comment.
Last modified
09:41, 7 Oct 2014

Tags

Classifications

This page has no classifications.

Announcements

None


© 2006-2014 RightScale, Inc. All rights reserved.
RightScale is a registered trademark of RightScale, Inc. All other products and services may be trademarks or servicemarks of their respective owners.