<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.christophchamp.com/index.php?action=history&amp;feed=atom&amp;title=Pyrax</id>
		<title>Pyrax - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.christophchamp.com/index.php?action=history&amp;feed=atom&amp;title=Pyrax"/>
		<link rel="alternate" type="text/html" href="http://wiki.christophchamp.com/index.php?title=Pyrax&amp;action=history"/>
		<updated>2026-04-30T08:55:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://wiki.christophchamp.com/index.php?title=Pyrax&amp;diff=7754&amp;oldid=prev</id>
		<title>Christoph at 12:11, 29 February 2020</title>
		<link rel="alternate" type="text/html" href="http://wiki.christophchamp.com/index.php?title=Pyrax&amp;diff=7754&amp;oldid=prev"/>
				<updated>2020-02-29T12:11:28Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 12:11, 29 February 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div style=&amp;quot;margin: 10px; padding: 5px; border: 2px solid red; text-align: center&amp;quot;&amp;gt;'''NOTE:''' This article was written in 2014 and is no longer maintained.&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''&amp;lt;code&amp;gt;pyrax&amp;lt;/code&amp;gt;''' is the official Python SDK for OpenStack/Rackspace APIs.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''&amp;lt;code&amp;gt;pyrax&amp;lt;/code&amp;gt;''' is the official Python SDK for OpenStack/Rackspace APIs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christoph</name></author>	</entry>

	<entry>
		<id>http://wiki.christophchamp.com/index.php?title=Pyrax&amp;diff=5997&amp;oldid=prev</id>
		<title>Christoph: New page: '''&lt;code&gt;pyrax&lt;/code&gt;''' is the official Python SDK for OpenStack/Rackspace APIs.  ==Example== ''Note: See my [https://gist.github.com/christophchamp/8450845 gist of this script].'' &lt;pre&gt; ...</title>
		<link rel="alternate" type="text/html" href="http://wiki.christophchamp.com/index.php?title=Pyrax&amp;diff=5997&amp;oldid=prev"/>
				<updated>2014-01-30T15:43:24Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;pyrax&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; is the official Python SDK for OpenStack/Rackspace APIs.  ==Example== &amp;#039;&amp;#039;Note: See my [https://gist.github.com/christophchamp/8450845 gist of this script].&amp;#039;&amp;#039; &amp;lt;pre&amp;gt; ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''&amp;lt;code&amp;gt;pyrax&amp;lt;/code&amp;gt;''' is the official Python SDK for OpenStack/Rackspace APIs.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
''Note: See my [https://gist.github.com/christophchamp/8450845 gist of this script].''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# NAME: pyrax_create_cloud_server&lt;br /&gt;
# AUTHOR: Christoph Champ&lt;br /&gt;
# DESCRIPTION: This script creates a Cloud Server in your Rackspace account.&lt;br /&gt;
# It then creates an image of that server, and, finally, creates a new server&lt;br /&gt;
# from that saved image.&lt;br /&gt;
#&lt;br /&gt;
# NOTES: Within each of the created VMs, the generated credentials are in&lt;br /&gt;
# master_server.adminPass and clone_server.adminPass. To access the box, use&lt;br /&gt;
# master_server.accessIPv4 and clone_server.accessIPv4.&lt;br /&gt;
# However, it is _much_ better/safer/wiser to use SSH keypairs.&lt;br /&gt;
#&lt;br /&gt;
# SEE: https://github.com/rackspace/pyrax&lt;br /&gt;
# SOURCE: https://gist.github.com/christophchamp/8450845&lt;br /&gt;
import os&lt;br /&gt;
import pyrax&lt;br /&gt;
 &lt;br /&gt;
USERNAME = &amp;quot;&amp;quot; # This is your Rackspace account username&lt;br /&gt;
API_KEY = &amp;quot;&amp;quot;&lt;br /&gt;
REGION = &amp;quot;&amp;quot; # E.g., DFW, HKG, IAD, LON, ORD, SYD&lt;br /&gt;
 &lt;br /&gt;
# Authenticate with Rackspace&lt;br /&gt;
pyrax.set_setting('identity_type', 'rackspace')&lt;br /&gt;
pyrax.set_credentials(USERNAME, API_KEY, region=REGION)&lt;br /&gt;
 &lt;br /&gt;
cs = pyrax.connect_to_cloudservers()&lt;br /&gt;
 &lt;br /&gt;
# NOTE: You could use the API to get an image ID instead&lt;br /&gt;
image_id = u'f70ed7c7-b42e-4d77-83d8-40fa29825b85' # CentOS 6.4&lt;br /&gt;
flavor = u'performance1-1'&lt;br /&gt;
 &lt;br /&gt;
# Create the master server&lt;br /&gt;
print &amp;quot;Creating master_server...\n&amp;quot;&lt;br /&gt;
master_server = cs.servers.create(&amp;quot;master_server&amp;quot;, image_id, flavor)&lt;br /&gt;
 &lt;br /&gt;
# It takes time to create the server, so poll it until it completes&lt;br /&gt;
master_server = pyrax.utils.wait_for_build(master_server, verbose=True)&lt;br /&gt;
 &lt;br /&gt;
# Create an image of the master server&lt;br /&gt;
print &amp;quot;\nCreating image of master_server...\n&amp;quot;&lt;br /&gt;
im = master_server.create_image(&amp;quot;master_image&amp;quot;)&lt;br /&gt;
image = cs.images.get(im)&lt;br /&gt;
 &lt;br /&gt;
# Wait for image creation to finish before moving on to clone&lt;br /&gt;
image = pyrax.utils.wait_until(image, &amp;quot;status&amp;quot;, [&amp;quot;ACTIVE&amp;quot;,&amp;quot;ERROR&amp;quot;], attempts=0)&lt;br /&gt;
 &lt;br /&gt;
# NOTE: This clone can be a larger flavor (VM size), if needed/wanted&lt;br /&gt;
# Here we use the same flavor of the master server&lt;br /&gt;
print &amp;quot;Creating clone_server from master_image...\n&amp;quot;&lt;br /&gt;
clone_server = cs.servers.create(name=&amp;quot;clone_server&amp;quot;,&lt;br /&gt;
image=image.id,&lt;br /&gt;
flavor=master_server.flavor['id'])&lt;br /&gt;
 &lt;br /&gt;
clone_server = pyrax.utils.wait_for_build(clone_server, verbose=True)&lt;br /&gt;
 &lt;br /&gt;
print &amp;quot;Master_root_password: %s&amp;quot; % master_server.adminPass&lt;br /&gt;
print &amp;quot;Master_public_IPv4: %s&amp;quot; % master_server.accessIPv4&lt;br /&gt;
print &amp;quot;Clone_root_password: %s&amp;quot; % clone_server.adminPass&lt;br /&gt;
print &amp;quot;Clone_public_IPv4: %s&amp;quot; % clone_server.accessIPv4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://github.com/rackspace/pyrax pyrax] on GitHub&lt;br /&gt;
&lt;br /&gt;
[[Category:Rackspace]]&lt;/div&gt;</summary>
		<author><name>Christoph</name></author>	</entry>

	</feed>