<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ryan D Lane</title>
	
	<link>http://ryandlane.com/blog</link>
	<description />
	<lastBuildDate>Tue, 19 Feb 2013 00:32:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RyanLanesBlog" /><feedburner:info uri="ryanlanesblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://superfeedr.com/hubbub" /><item>
		<title>OpenStack wiki migration</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/DVLC7Q15KQg/</link>
		<comments>http://ryandlane.com/blog/2013/02/19/openstack-wiki-migration/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 00:32:52 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[OpenStack]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=600</guid>
		<description><![CDATA[On Feb 15th we migrated the MoinMoin powered OpenStack wiki to a new wiki powered by MediaWiki. Overall the migration went well. There was a large amount of cleanup that needed to get done, but we followed up the migration with a doc cleanup sprint. The wiki should be in a mostly good state. If [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2012/01/06/fixing-a-very-broken-instance-live-migration-manually/' rel='bookmark' title='Fixing a very broken instance live migration manually'>Fixing a very broken instance live migration manually</a></li>
<li><a href='http://ryandlane.com/blog/2010/03/29/helpdesk-system-and-datacenter-inventory-semantic-mediawiki-prototypes-added-to-my-prototype-wiki/' rel='bookmark' title='Helpdesk system and datacenter inventory Semantic MediaWiki prototypes added to my prototype wiki'>Helpdesk system and datacenter inventory Semantic MediaWiki prototypes added to my prototype wiki</a></li>
<li><a href='http://ryandlane.com/blog/2010/06/25/new-mediawiki-extension-jsbreadcrumbs-0-1-released/' rel='bookmark' title='New MediaWiki extension JSBreadCrumbs 0.1 released'>New MediaWiki extension JSBreadCrumbs 0.1 released</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>On Feb 15th we migrated the MoinMoin powered OpenStack wiki to a new wiki powered by MediaWiki. Overall the migration went well. There was a large amount of cleanup that needed to get done, but we followed up the migration with a doc cleanup sprint. The wiki should be in a mostly good state. If you happen to find any articles that need cleanup, be bold!</p>
<p>So, what&#8217;s new with the wiki?</p>
<ol>
<li>All articles now have discussion pages</li>
<li>It&#8217;s possible to make <a href="https://wiki.openstack.org/w/index.php?title=Special:Book&amp;bookcmd=render_article&amp;arttitle=Cinder&amp;oldid=17287&amp;writer=rl">PDFs out of individual pages</a> or to <a href="https://wiki.openstack.org/w/index.php?title=Special:Book&amp;bookcmd=book_creator&amp;referer=Main+Page">create a book</a> (as a PDF or an actual physical book) from collections of articles</li>
<li>Uploads are global and can be used in multiple articles</li>
<li>Templates can be <a href="http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual">written using Lua</a></li>
<li><a href="http://www.mediawiki.org/wiki/Extension:Gadgets">Gadgets can be written using Javascript and CSS</a> and shared with all wiki users</li>
<li>Layout of articles can use <a href="http://twitter.github.com/bootstrap">Twitter&#8217;s Bootstrap</a>, thanks to the <a href="https://github.com/OSAS/strapping-mediawiki">strapping-mediawiki skin</a></li>
<li>There&#8217;s <a href="https://wiki.openstack.org/wiki/Quantum?useformat=mobile">a mobile view</a>, though mobile device detection won&#8217;t be enabled until next Wikimedia branch-point release (1-2 weeks)</li>
<li>Many more features available in MediaWiki that don&#8217;t exist in MoinMoin</li>
</ol>
<p>Let me know if there&#8217;s any issues you run into with the new wiki.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2012/01/06/fixing-a-very-broken-instance-live-migration-manually/' rel='bookmark' title='Fixing a very broken instance live migration manually'>Fixing a very broken instance live migration manually</a></li>
<li><a href='http://ryandlane.com/blog/2010/03/29/helpdesk-system-and-datacenter-inventory-semantic-mediawiki-prototypes-added-to-my-prototype-wiki/' rel='bookmark' title='Helpdesk system and datacenter inventory Semantic MediaWiki prototypes added to my prototype wiki'>Helpdesk system and datacenter inventory Semantic MediaWiki prototypes added to my prototype wiki</a></li>
<li><a href='http://ryandlane.com/blog/2010/06/25/new-mediawiki-extension-jsbreadcrumbs-0-1-released/' rel='bookmark' title='New MediaWiki extension JSBreadCrumbs 0.1 released'>New MediaWiki extension JSBreadCrumbs 0.1 released</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/DVLC7Q15KQg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2013/02/19/openstack-wiki-migration/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2013/02/19/openstack-wiki-migration/</feedburner:origLink></item>
		<item>
		<title>Extending a flatdhcp network the hard way</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/0MQQPcjXMxQ/</link>
		<comments>http://ryandlane.com/blog/2012/10/03/extending-a-flatdhcp-network-the-hard-way/#comments</comments>
		<pubDate>Wed, 03 Oct 2012 18:57:20 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=581</guid>
		<description><![CDATA[The title may make you think there&#8217;s an easy way. No such luck. Nova has no facility for extending a flatdhcp network, and as far as I can tell Quantum also has no facility for doing so. Extending the flatdhcp network can be kind of a pain in the ass, so here&#8217;s how I handled [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/' rel='bookmark' title='Announcing OpenStackManager extension for MediaWiki'>Announcing OpenStackManager extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/' rel='bookmark' title='OpenStackManager version 1.2 released'>OpenStackManager version 1.2 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/11/01/sharing-home-directories-to-instances-within-a-project-using-puppet-ldap-autofs-and-nova/' rel='bookmark' title='Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova'>Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>The title may make you think there&#8217;s an easy way. No such luck. Nova has no facility for extending a flatdhcp network, and as far as I can tell Quantum also has no facility for doing so.</p>
<p>Extending the flatdhcp network can be kind of a pain in the ass, so here&#8217;s how I handled it:</p>
<h2>Assumptions</h2>
<ul>
<li>Network before extension:
<ul>
<li>Network CIDR: 10.4.0.0/24</li>
<li>Broadcast: 10.4.0.255</li>
<li>Netmask: 255.255.255.0</li>
<li>Network ID: 2</li>
</ul>
</li>
<li>Network after extension:
<ul>
<li>Network CIDR: 10.4.0.0/21</li>
<li>Broadcast: 10.4.7.255</li>
<li>Netmask: 255.255.248.0</li>
<li>Network ID: 2</li>
</ul>
</li>
</ul>
<h2>Modify the network</h2>
<p>First modify the network via the database:</p>
<pre>mysql nova -e "UPDATE networks SET netmask=\"255.255.248.0\",cidr=\"10.4.0.0/21\",broadcast=\"10.4.7.255\" WHERE id=2;"</pre>
<h2>Add the fixed IPs</h2>
<p>Now it&#8217;s necessary to add all of the IP addresses in the range into the <em>fixed_ips</em> table. Additionally, the broadcast address in the original range should be modified so that it&#8217;s no longer reserved, and the new broadcast address should be marked as reserved.</p>
<pre>for i in {1..7}
do
    for j in {0..255}
    do
        mysql nova -e "INSERT INTO fixed_ips SET created_at=\"2012-10-01 19:24:21\",updated_at=\"2012-10-01 19:24:21\",deleted=0,address=\"10.4.${i}.${j}\",network_id=2,allocated=0,reserved=0,leased=0"
    done
done
mysql nova -e "UPDATE fixed_ips SET reserved=0 WHERE address=\"10.4.0.255\""
mysql nova -e "UPDATE fixed_ips SET reserved=1 WHERE address=\"10.4.7.255\""</pre>
<h2>Restart nova-network and nova-compute services</h2>
<p>I tried launching some instances after making this change, and got the following error popping up in my logs:</p>
<pre>2012-10-01 20:04:48 TRACE nova.rpc.amqp DetachedInstanceError: Parent instance &lt;Instance at 0x46fa150&gt; is not bound to a Session; lazy load operation of attribute 'instance_type' cannot proceed</pre>
<p>In the #openstack channel, zynzel mentioned that it&#8217;s because I needed to restart my nova-network service. Actually, I needed to restart all nova-network and all nova-compute services.</p>
<p>I ran into a likely unrelated issue during this as well. My nova-compute services were deadlocked. I&#8217;ve actually noticed this in the past as well. Clearing the lock files from <em>/var/lock/nova</em> then restarting the services fixed that issue, though I still need to trace this issue down.</p>
<h2>Remove the old gateway addresses</h2>
<p>The old gateway addresses, with the /24 CIDR, need to be removed from the bridge and from the routing table on the network nodes.</p>
<h2>Restart dnsmasq and nova-network</h2>
<p>After removing the addresses, it&#8217;s necessary to restart dnsmasq. Kill the processes, then restart nova-network again.</p>
<h2>Why doesn&#8217;t Nova and Quantum have this functionality?</h2>
<p>Neither Nova, nor Quantum seem to have operations to modify a network. It&#8217;s not a completely abnormal task to need to extend a network, to re-vlan it, or to change IP ranges. Hell, I still need to add IPv6 to my network and I need to make it multi-network-node; when I created the network neither of these features existed and there&#8217;s no way simple way to enable them now.</p>
<p>You can delete and re-create a network, but what happens to IP address assignments? What happens to DNS entries that were created via the DNS plugin for Nova? We really need the ability to modify networks, not just create and delete them.</p>
<h2>A user-unfriendly experience</h2>
<p>The above steps don&#8217;t really seem very difficult, but the actual steps involved assume fairly involved knowledge of the code. When in the middle of doing this, things are stressful and things are failing. It&#8217;s pretty user-unfriendly.</p>
<p>Additionally, when I asked about this in the #openstack channel, I was treated like I was stupid for not wanting to muck around with the database. I was told that it was my fault for creating a network that was too small and that it isn&#8217;t Nova&#8217;s job to fix my mistakes. I was told that I should &#8220;use Windows&#8221;; meaning that I&#8217;m expecting the software to hold my noob-ish hand.</p>
<p>I can muck in the database and trace code, but I think if users are forced to do that then we&#8217;re failing from a usability perspective.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/' rel='bookmark' title='Announcing OpenStackManager extension for MediaWiki'>Announcing OpenStackManager extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/' rel='bookmark' title='OpenStackManager version 1.2 released'>OpenStackManager version 1.2 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/11/01/sharing-home-directories-to-instances-within-a-project-using-puppet-ldap-autofs-and-nova/' rel='bookmark' title='Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova'>Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/0MQQPcjXMxQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2012/10/03/extending-a-flatdhcp-network-the-hard-way/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2012/10/03/extending-a-flatdhcp-network-the-hard-way/</feedburner:origLink></item>
		<item>
		<title>OpenStack Foundation Board Candidacy</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/PsuIl9YEoJM/</link>
		<comments>http://ryandlane.com/blog/2012/08/20/openstack-foundation-board-candidacy/#comments</comments>
		<pubDate>Mon, 20 Aug 2012 19:23:48 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[OpenStack]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=572</guid>
		<description><![CDATA[Voting has started for the OpenStack board and I&#8217;m one of the 39 candidates. Many of the candidates have posted answers to a set of questions asked of all candidates. You can read my responses at the candidate site. Rather than reiterating those answers, I&#8217;d like to bring up some of the specific things I&#8217;d [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/10/10/thoughts-on-openstack-foundation/' rel='bookmark' title='Thoughts on OpenStack Foundation'>Thoughts on OpenStack Foundation</a></li>
<li><a href='http://ryandlane.com/blog/2012/06/19/ive-been-with-the-wikimedia-foundation-for-a-second-year-have-i-met-my-goals/' rel='bookmark' title='I&#8217;ve been with the Wikimedia Foundation for a second year. Have I met my goals?'>I&#8217;ve been with the Wikimedia Foundation for a second year. Have I met my goals?</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/02/building-a-test-and-development-infrastructure-using-openstack/' rel='bookmark' title='Building a test and development infrastructure using OpenStack'>Building a test and development infrastructure using OpenStack</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Voting has started for the OpenStack board and I&#8217;m one of the 39 candidates. Many of the candidates have posted answers to a set of questions asked of all candidates. You can read <a href="http://www.openstack.org/election/2012-board-election/candidates/#RyanLane">my responses at the candidate site</a>. Rather than reiterating those answers, I&#8217;d like to bring up some of the specific things I&#8217;d like to do as a board member.</p>
<h2>Fight for the users</h2>
<p>Being an OpenStack user is difficult, currently. Unless you have an OpenStack developer on your team, it&#8217;s difficult to even run OpenStack, let alone migrate between versions. Many deployments will run into bugs in the stable version of OpenStack and getting those bugs fixed and moved into the stable branch is difficult.</p>
<p>Even if your team has a developer, the process for getting fixes into stable is more difficult than getting fixes into master. In fact, it&#8217;s at minimum twice as hard, since a requirement of getting a fix into stable is that it it must be fixed in master first. Additionally, all fixes require tests. My complaint isn&#8217;t necessarily about the process, but about how there&#8217;s not much support wrapped around it.</p>
<p>It would be ideal to have a team that helps developers through the process of getting stable fixed. Additionally, the team should fix bugs on behalf of users who can&#8217;t fix the bugs themselves.</p>
<h2>Support the support team</h2>
<p>There&#8217;s a number of core infrastructure services that the community relies on: the blog, the wiki, Gerrit, Jenkins, etc. These services are supported by a great team sponsored by community members. Occasionally this team needs additional long-term or short-term resources, though. It&#8217;s not always easy to get a community member to sponsor contracts for development and support that don&#8217;t directly benefit them.</p>
<p>Additionally, we can&#8217;t fully rely on community members for core services. If a community member sponsors the majority of our core services, and later decides to leave the community, then the core services are at risk. We need to ensure we can keep the lights on, at minimum.</p>
<h2>Provide resources to solve support issues</h2>
<p>For both of the above issues, I&#8217;d like the foundation to reserve a portion of its budget to hire employees or contractors, and to buy hardware to help support the users and the support team.</p>
<p>The foundation should, of course, as a first priority encourage community members to provide needed resources, but it should also ensure that any gaps are covered, especially in regards to user engagement and ensuring the lights stay on. These must be top priorities if we want to continue to grow our community.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/10/10/thoughts-on-openstack-foundation/' rel='bookmark' title='Thoughts on OpenStack Foundation'>Thoughts on OpenStack Foundation</a></li>
<li><a href='http://ryandlane.com/blog/2012/06/19/ive-been-with-the-wikimedia-foundation-for-a-second-year-have-i-met-my-goals/' rel='bookmark' title='I&#8217;ve been with the Wikimedia Foundation for a second year. Have I met my goals?'>I&#8217;ve been with the Wikimedia Foundation for a second year. Have I met my goals?</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/02/building-a-test-and-development-infrastructure-using-openstack/' rel='bookmark' title='Building a test and development infrastructure using OpenStack'>Building a test and development infrastructure using OpenStack</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/PsuIl9YEoJM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2012/08/20/openstack-foundation-board-candidacy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2012/08/20/openstack-foundation-board-candidacy/</feedburner:origLink></item>
		<item>
		<title>I’ve been with the Wikimedia Foundation for a second year. Have I met my goals?</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/4Cus4saKmgg/</link>
		<comments>http://ryandlane.com/blog/2012/06/19/ive-been-with-the-wikimedia-foundation-for-a-second-year-have-i-met-my-goals/#comments</comments>
		<pubDate>Tue, 19 Jun 2012 13:47:13 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=552</guid>
		<description><![CDATA[I&#8217;m actually on time for this update, this year! Here&#8217;s my goals from last year; I&#8217;ll give feedback inline: Continue with the Labs project. Finish set up of test/dev Labs, and begin work and make major progress on tool Labs. Partial success: Test/dev Labs is going really well. At the time of this writing we [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/09/19/ive-been-with-the-wikimedia-foundation-for-a-year-have-i-met-my-goals/' rel='bookmark' title='I&#8217;ve been with the Wikimedia Foundation for a year. Have I met my goals?'>I&#8217;ve been with the Wikimedia Foundation for a year. Have I met my goals?</a></li>
<li><a href='http://ryandlane.com/blog/2010/09/27/now-full-time-operations-engineer-for-wikimedia-foundation/' rel='bookmark' title='Now full time Operations Engineer for Wikimedia Foundation'>Now full time Operations Engineer for Wikimedia Foundation</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m actually on time for this update, this year! Here&#8217;s my goals from last year; I&#8217;ll give feedback inline:</p>
<ol>
<li>Continue with the Labs project. Finish set up of test/dev Labs, and begin work and make major progress on tool Labs.
<ul>
<li><em>Partial success</em>: Test/dev Labs is going <em>really</em> well. At the time of this writing we have 99 projects, 174 instances, and 446 users. We have per-project nagios, ganglia, puppet, and sudo. We also have an all-in-one MediaWiki puppet configuration. We currently have one zone with 5 compute nodes, and will mostly triple the capacity of that in the next month. We have another zone coming up in another datacenter that will be 8 large compute nodes. Stability is still currently a concern, and we haven&#8217;t come out of closed beta, yet, though. Also, work on Tool Labs is mostly not started. We do have a bots cluster that&#8217;s community managed, but we don&#8217;t have database replication and don&#8217;t have a simple way for tool authors to contribute.</li>
</ul>
</li>
<li>Hire a devops contractor for work on Labs.
<ul>
<li><em>Success</em>: Not only did we hire a devops contractor, we built a larger team. We now have <a href="http://www.mediawiki.org/wiki/User:Andrew_Bogott">Andrew Bogott</a> (developer), Sara Smollett (operations), Faidon Liambotis (operations) and <a href="http://www.mediawiki.org/wiki/User:Ryan_lane">myself</a> (operations).</li>
</ul>
</li>
<li>Build a devops community around the Wikimedia architecture.
<ul>
<li><em>Success</em>: We had roughly <a href="https://gerrit.wikimedia.org/r/#/q/project:operations/puppet+-owner:%2522Ryan+Lane%2522+-owner:%2522Asher%2522+-owner:%2522Pyoungmeister%2522+-owner:%2522Mark+Bergsma%2522+-owner:%2522Faidon%2522+-owner:%2522Lcarr%2522+-owner:%2522Jgreen%2522++-owner:%2522Andrew+Bogott%2522+-owner:%2522Sara%2522+-owner:%2522Tim+Starling%2522+-owner:%2522ArielGlenn%2522+-owner:%2522Bhartshorne%2522+-owner:%2522Dzahn%2522+-owner:%2522RobH%2522,n,z">700 changes</a> pushed into the operations/puppet repository from people who are not operations team members. A number of our larger Labs projects were built by volunteers (<a href="https://labsconsole.wikimedia.org/wiki/Nova_Resource:bots">bots</a>, <a href="https://labsconsole.wikimedia.org/wiki/Nova_Resource:deployment-prep">deployment-prep</a>, <a href="https://labsconsole.wikimedia.org/wiki/Nova_Resource:nagios">nagios</a>, for instance). Volunteers are members of most of <a href="https://labsconsole.wikimedia.org/wiki/Special:Ask/-5B-5BResource-20Type::project-5D-5D/-3F/-3FMember/-3FDescription/mainlabel%3D-2D/searchlabel%3Dprojects/offset%3D0">the projects that exist in Labs</a>.</li>
</ul>
</li>
<li>Finish the HTTPS project. This will hopefully be complete from the ops perspective by the end of this year.
<ul>
<li><em>Partial success</em>: <a href="http://blog.wikimedia.org/2011/10/03/native-https-support-enabled-for-all-wikimedia-foundation-wikis/">HTTPS is fully enabled on all sites</a>, for both IPv4 and IPv6. I&#8217;ve listed this as a partial success, because I&#8217;d like the default for logged-in users to be HTTPS. Also, I wanted secure.wikimedia.org to redirect properly to HTTPS by now, and haven&#8217;t found time to do so.</li>
</ul>
</li>
<li>On-board new employees.
<ul>
<li><em>Success</em>: We brought on a lot of new Operations Engineers last year and I helped on-board nearly all of them. That said, I wish I would have written more documentation on the process as I was doing it.</li>
</ul>
</li>
<li>Enable OpenID as a provider and oAuth on Wikimedia (this goal still needs consensus).
<ul>
<li><em>Partial failure, again</em>: That said, I&#8217;ve been pushing for oAuth very strongly internally and it looks like this is now a stated goal of next year! oAuth is crucial to the success of Labs, so I&#8217;m very happy this is happening.</li>
</ul>
</li>
</ol>
<p>What did I accomplish that was outside of my stated goals?</p>
<ol>
<li>Installed Gerrit, moved our operations repositories from SVN to Git and <a href="http://blog.wikimedia.org/2011/09/19/ever-wondered-how-the-wikimedia-servers-are-configured/">released our puppet repository</a> as open source and cloneable to the world.</li>
<li>Assisted the core services team with the migration from SVN to Git.</li>
<li>Launched Labs (in October 2011 at the New Orleans MediaWiki hackathon).</li>
<li>Wrote the <a href="http://www.mediawiki.org/wiki/Extension:OpenStackManager">OpenStackManager</a> and <a href="http://www.mediawiki.org/wiki/Extension:OATHAuth">OATHAuth</a> MediaWiki extensions.</li>
<li>Massively refactored the <a href="http://www.mediawiki.org/wiki/Extension:LDAP_Authentication">LdapAuthentication</a> MediaWiki extension.</li>
<li>Rewrote a couple IRC bots (<a href="http://svn.wikimedia.org/viewvc/mediawiki/trunk/debs/ircecho/">ircecho</a> and <a href="https://gerrit.wikimedia.org/r/#/c/11732/">adminbot</a>).</li>
<li><a href="https://gerrit.wikimedia.org/r/#/c/8732/">Wrote a new deployment system</a> that may replace our production deployment system.</li>
<li>Did the operations portion of the <a href="http://blog.wikimedia.org/2012/01/20/the-message-from-the-wikipedia-blackout-please-leave-the-internet-alone/">SOPA blackout</a>.</li>
<li>Organized the <a href="http://www.mediawiki.org/wiki/NOLA_Hackathon_2011">New Orleans MediaWiki hackathon</a>.</li>
<li>Organized an <a href="http://www.meetup.com/openstack/events/55240842/">OpenStack meetup held at the Wikimedia Foundation offices</a>.</li>
<li>Pushed <a href="https://gerrit.wikimedia.org/r/#/q/owner:%2522Ryan+Lane%2522,n,z">790 changes</a> into Gerrit.</li>
<li>Made 1,100 edits to <a href="https://labsconsole.wikimedia.org">labsconsole</a> (those edits include project creations, modification of projects, creation/deletion of instances and actual writing of documentation).</li>
<li>Got the <a href="https://www.mediawiki.org/wiki/Special:Code/MediaWiki/100000">100,000th revision in Wikimedia SVN</a>, much to the dismay of others!</li>
</ol>
<p>What are my goals for next year?</p>
<ol>
<li>Stabilize Labs.</li>
<li>Add a second Labs zone in eqiad.</li>
<li>Make major progress on Tool Labs.</li>
<li>Add a real queue to the Wikimedia infrastructure, for jobs and other needs.</li>
<li>Continue building a solid community around Labs.</li>
<li>Continue to improve the HTTPS infrastructure.</li>
</ol>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/09/19/ive-been-with-the-wikimedia-foundation-for-a-year-have-i-met-my-goals/' rel='bookmark' title='I&#8217;ve been with the Wikimedia Foundation for a year. Have I met my goals?'>I&#8217;ve been with the Wikimedia Foundation for a year. Have I met my goals?</a></li>
<li><a href='http://ryandlane.com/blog/2010/09/27/now-full-time-operations-engineer-for-wikimedia-foundation/' rel='bookmark' title='Now full time Operations Engineer for Wikimedia Foundation'>Now full time Operations Engineer for Wikimedia Foundation</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/4Cus4saKmgg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2012/06/19/ive-been-with-the-wikimedia-foundation-for-a-second-year-have-i-met-my-goals/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2012/06/19/ive-been-with-the-wikimedia-foundation-for-a-second-year-have-i-met-my-goals/</feedburner:origLink></item>
		<item>
		<title>Announcing OATHAuth, a two-factor authentication extension for MediaWiki</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/6_lOpFnNARw/</link>
		<comments>http://ryandlane.com/blog/2012/05/14/announcing-oathauth-a-two-factor-authentication-extension-for-mediawiki/#comments</comments>
		<pubDate>Mon, 14 May 2012 20:12:15 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=522</guid>
		<description><![CDATA[I&#8217;ve just released OATHAuth 0.1 for MediaWiki. This is an HMAC based One Time Password (HOTP) implementation providing two factor authentication. This is the same technology used for Google&#8217;s two-factor authentication. OATHAuth is an opt-in feature that adds more security accounts in a wiki. It provides two-factor authentication, using your phone as the something you [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/' rel='bookmark' title='Announcing OpenStackManager extension for MediaWiki'>Announcing OpenStackManager extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2009/06/08/announcing-the-plotters-extension-for-mediawiki/' rel='bookmark' title='Announcing the Plotters extension for MediaWiki'>Announcing the Plotters extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2009/06/18/semi-anonymous-users-in-mediawiki-using-the-ldap-authentication-extension/' rel='bookmark' title='Semi-anonymous users in MediaWiki using the LDAP Authentication extension'>Semi-anonymous users in MediaWiki using the LDAP Authentication extension</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve just released <a href="http://www.mediawiki.org/wiki/Extension:OATHAuth">OATHAuth</a> 0.1 for MediaWiki. This is an HMAC based One Time Password (<a href="http://en.wikipedia.org/wiki/HOTP">HOTP</a>) implementation providing two factor authentication. This is the same technology used for Google&#8217;s two-factor authentication.</p>
<p>OATHAuth is an opt-in feature that adds more security accounts in a wiki. It provides two-factor authentication, using your phone as the something you have, and your username/password as the something you know. If you are using iPhone or Android, you can use the Google Authenticator app as a client. There are also clients for most other phones and desktops; Wikipedia has a <a href="http://en.wikipedia.org/wiki/HOTP#Tokens">good list of clients</a>.</p>
<p>If you have an account in Wikimedia Labs, you can enable two-factor authentication via the sidebar now.</p>
<p>As of version 0.1, OATHAuth only works when chained with LDAPAuthentication. Version 0.2 will work in a standalone manner. See the following image gallery for how it&#8217;s used:</p>
<div class="rps-image-gallery gallery-columns-1 gallery-size-thumbnail" style="text-align:left"><ul><li class="gallery-icon"><a rel="rps-image-group-522" href="http://ryandlane.com/blog/wp-content/uploads/2012/05/enable-oath.png" title="enable-oath"><img alt="enable-oath" src="http://ryandlane.com/blog/wp-content/uploads/2012/05/enable-oath.png" /></a></li><li class="gallery-icon"><a rel="rps-image-group-522" href="http://ryandlane.com/blog/wp-content/uploads/2012/05/validate-oath.png" title="validate-oath"><img alt="validate-oath" src="http://ryandlane.com/blog/wp-content/uploads/2012/05/validate-oath.png" /></a></li><li class="gallery-icon"><a rel="rps-image-group-522" href="http://ryandlane.com/blog/wp-content/uploads/2012/05/validated-oath.png" title="validated-oath"><img alt="validated-oath" src="http://ryandlane.com/blog/wp-content/uploads/2012/05/validated-oath.png" /></a></li><li class="gallery-icon"><a rel="rps-image-group-522" href="http://ryandlane.com/blog/wp-content/uploads/2012/05/login-using-oath.png" title="login-using-oath"><img class="last" alt="login-using-oath" src="http://ryandlane.com/blog/wp-content/uploads/2012/05/login-using-oath.png" /></a></li></ul></div>
<p>&nbsp;</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/' rel='bookmark' title='Announcing OpenStackManager extension for MediaWiki'>Announcing OpenStackManager extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2009/06/08/announcing-the-plotters-extension-for-mediawiki/' rel='bookmark' title='Announcing the Plotters extension for MediaWiki'>Announcing the Plotters extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2009/06/18/semi-anonymous-users-in-mediawiki-using-the-ldap-authentication-extension/' rel='bookmark' title='Semi-anonymous users in MediaWiki using the LDAP Authentication extension'>Semi-anonymous users in MediaWiki using the LDAP Authentication extension</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/6_lOpFnNARw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2012/05/14/announcing-oathauth-a-two-factor-authentication-extension-for-mediawiki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2012/05/14/announcing-oathauth-a-two-factor-authentication-extension-for-mediawiki/</feedburner:origLink></item>
		<item>
		<title>Per-project sudo policies using sudo-ldap and puppet</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/XWF79bOlgo0/</link>
		<comments>http://ryandlane.com/blog/2012/04/24/per-project-sudo-policies-using-sudo-ldap-and-puppet/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 00:58:54 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[LDAP]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=511</guid>
		<description><![CDATA[In Wikimedia Labs, we don&#8217;t manage authentication and authorization in the normal public cloud way. We don&#8217;t assume that an instance creator is managing auth for instances they create. Instead, all of Labs uses a single auth system for all projects and instances and a community manages project membership and auth. In the original design, [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/11/01/sharing-home-directories-to-instances-within-a-project-using-puppet-ldap-autofs-and-nova/' rel='bookmark' title='Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova'>Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova</a></li>
<li><a href='http://ryandlane.com/blog/2011/04/09/why-i-chose-mediawiki-for-my-openstack-manager-project/' rel='bookmark' title='Why I chose MediaWiki for my OpenStack Manager project'>Why I chose MediaWiki for my OpenStack Manager project</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/02/building-a-test-and-development-infrastructure-using-openstack/' rel='bookmark' title='Building a test and development infrastructure using OpenStack'>Building a test and development infrastructure using OpenStack</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>In Wikimedia Labs, we don&#8217;t manage authentication and authorization in the normal public cloud way. We don&#8217;t assume that an instance creator is managing auth for instances they create. Instead, all of Labs uses a single auth system for all projects and instances and a community manages project membership and auth.</p>
<p>In the original design, being a project member in <a href="https://labsconsole.wikimedia.org/wiki/Help:Terminology"><em>specific</em> projects</a> would automatically give you root via sudo and being a project member in a <a href="https://labsconsole.wikimedia.org/wiki/Help:Terminology"><em>global</em> project</a> would give you shell, but not root. We were handling this through puppet configuration. This was a fairly limiting system. Giving fine grained permissions wasn&#8217;t easy. The instances knew which users were a member of a project since the projects were also posix groups; however, they didn&#8217;t know which users were in the roles of that project, so there was no fined grained way to handle this.</p>
<p>sudo-ldap to the rescue. With sudo-ldap, we can manage sudo policies in LDAP, and those can be done in a per-project basis. Let me explain how we&#8217;re handling this while also ensuring the original assumed design still applies to old projects.</p>
<h2>Handling the sudo policies in LDAP</h2>
<p>To make sudo work per-project, we need to make a sudoers OU for each project. Projects are located at <em>ou=projects,dc=wikimedia,dc=org</em>. We have an example project at <em>cn=testproject,ou=projects,dc=wikimedia,dc=org</em>. We can create a new sudoers OU for this project, with a default policy (for backwards compatibility):</p>
<pre style="padding-left: 30px;">dn: ou=sudoers,cn=testproject,ou=projects,dc=wikimedia,dc=org
ou: sudoers
objectclass: organizationalunit
objectclass: top

dn: cn=default,ou=sudoers,cn=testproject,ou=projects,dc=wikimedia,dc=org
cn: default
objectClass: sudorole
objectClass: top
sudoCommand: ALL
sudoHost: ALL
sudoUser: ALL</pre>
<p>The above creates a sudoers OU underneath the project&#8217;s object and creates a default policy for that project that gives all users the ability to run all commands via sudo.</p>
<p>For every pre-existing <em>specific</em> project, I created an OU and a default policy, then for every pre-existing global project I only created the OU, ensuring everything continued working how things worked in the original design. Whenever a project is created the OU and a default policy is also now automatically created with the project.</p>
<h2>Configuring sudo on the instances</h2>
<p>Now we must configure the instances to pull their sudo policies from this OU. Here&#8217;s the puppet template we&#8217;re using for <em>/etc/sudo-ldap.conf</em>:</p>
<pre style="padding-left: 30px;">BASE            &lt;%= basedn %&gt;
URI             &lt;% servernames.each do |servername| -%&gt;ldap://&lt;%= servername %&gt;:389 &lt;% end -%&gt;

BINDDN          cn=proxyagent,ou=profile,&lt;%= basedn %&gt;
BINDPW          &lt;%= proxypass %&gt;
SSL             start_tls
TLS_CHECKPEER   yes
TLS_REQCERT     demand
TLS_CACERTDIR   /etc/ssl/certs
TLS_CACERTFILE  /etc/ssl/certs/&lt;%= ldap_ca %&gt;
TLS_CACERT      /etc/ssl/certs/&lt;%= ldap_ca %&gt;
&lt;% if ldapincludes.include?('sudo') then %&gt;SUDOERS_BASE    &lt;%= sudobasedn %&gt;&lt;% end %&gt;</pre>
<p>The <em>sudobasedn</em> variable is being set as this:</p>
<pre style="padding-left: 30px;">$sudobasedn = "ou=sudoers,cn=${instanceproject},ou=projects,${basedn}"</pre>
<p>For a more in-context view, you can <a href="https://labsconsole.wikimedia.org/wiki/Git#Restrictions_and_Anonymous_access">clone our repo</a>, or <a href="https://gerrit.wikimedia.org/r/gitweb?p=operations/puppet.git;a=tree;hb=production">browse it via gitweb</a>.</p>
<h2>Managing the sudo policies</h2>
<p>In the trunk version of the <a href="http://www.mediawiki.org/wiki/Extension:OpenStackManager">OpenStackManager extension</a>, I&#8217;ve added support for managing per-project sudo. Users must be a member of the sysadmin role to do so.<div class="rps-image-gallery gallery-columns-3 gallery-size-thumbnail" style="text-align:left"><ul><li class="gallery-icon gallery-icon-begin-row"><a rel="rps-image-group-511" href="http://ryandlane.com/blog/wp-content/uploads/2012/04/sudo-policy-list.png" title="sudo-policy-list"><img alt="sudo-policy-list" src="http://ryandlane.com/blog/wp-content/uploads/2012/04/sudo-policy-list.png" /></a></li><li class="gallery-icon"><a rel="rps-image-group-511" href="http://ryandlane.com/blog/wp-content/uploads/2012/04/modify-sudo-policy.png" title="modify-sudo-policy"><img class="last" alt="modify-sudo-policy" src="http://ryandlane.com/blog/wp-content/uploads/2012/04/modify-sudo-policy.png" /></a></li></ul></div></p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/11/01/sharing-home-directories-to-instances-within-a-project-using-puppet-ldap-autofs-and-nova/' rel='bookmark' title='Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova'>Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova</a></li>
<li><a href='http://ryandlane.com/blog/2011/04/09/why-i-chose-mediawiki-for-my-openstack-manager-project/' rel='bookmark' title='Why I chose MediaWiki for my OpenStack Manager project'>Why I chose MediaWiki for my OpenStack Manager project</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/02/building-a-test-and-development-infrastructure-using-openstack/' rel='bookmark' title='Building a test and development infrastructure using OpenStack'>Building a test and development infrastructure using OpenStack</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/XWF79bOlgo0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2012/04/24/per-project-sudo-policies-using-sudo-ldap-and-puppet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2012/04/24/per-project-sudo-policies-using-sudo-ldap-and-puppet/</feedburner:origLink></item>
		<item>
		<title>OpenStackManager 1.4 released</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/2lB2P9TXXNY/</link>
		<comments>http://ryandlane.com/blog/2012/04/06/openstackmanager-1-4-released/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 00:36:56 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[LDAP]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=506</guid>
		<description><![CDATA[The OpenStackManager extension is a web interface for OpenStack, and a manager for a fully integrated test and development network being written primarily for Wikimedia Foundation use. This release is mostly aimed at performance and usability. Here&#8217;s a list of changes: Added a project filter. Rather than showing all projects, only projects selected in the [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/' rel='bookmark' title='OpenStackManager version 1.3 released'>OpenStackManager version 1.3 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/' rel='bookmark' title='OpenStackManager version 1.2 released'>OpenStackManager version 1.2 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/30/openstackmanager-version-1-1-released/' rel='bookmark' title='OpenStackManager version 1.1 released'>OpenStackManager version 1.1 released</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p><em>The <a href="http://www.mediawiki.org/wiki/Extension:OpenStackManager">OpenStackManager extension</a> is a web interface for <a href="http://www.openstack.org/">OpenStack</a>, and a manager for a fully integrated test and development network being <a href="../2011/01/02/building-a-test-and-development-infrastructure-using-openstack/">written primarily for Wikimedia Foundation use</a>.</em></p>
<p>This release is mostly aimed at performance and usability. Here&#8217;s a list of changes:</p>
<ul>
<li>Added a project filter. Rather than showing all projects, only projects selected in the project filter will show in the management interfaces. This should make the interfaces contain far less text, and should make interfaces load much faster.</li>
<li>Refactored the list pages so that styles can be applied to all pages easily. Applied a couple CSS styles globally across all of the pages. For instance, the table text has been changed to be top aligned, to make large tables easier to handle.</li>
<li>Merged in Platonides&#8217;s change for handling SSH keys uploaded in formats other than OpenSSH format. Keys in non-OpenSSH format will automatically be converted, if possible. If a private key, or a key in a bad formatted is uploaded, it&#8217;ll be rejected.</li>
<li>Changed the project section collapsing behavior. Rather than the project title collapsing the project&#8217;s section, a &#8220;Toggle&#8221; action will do so. The project name has been changed back to being a link to the project&#8217;s page.</li>
<li>Projects are now sorted alphabetically everywhere.</li>
<li>Various fixes related to the PHP aws-sdk.</li>
<li>Move creation forms to list pages for many management pages, to avoid extra clicks where possible.</li>
<li>Various memcache support additions and fixes.</li>
<li>Added a fix to allow user creation through MediaWiki interface.</li>
</ul>
<p>If you&#8217;d like to help develop this extension, I&#8217;ve created a development environment in a project in Wikimedia Labs. Find me on #wikimedia-labs on Freenode or email me to get a labs account and access to the project.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/' rel='bookmark' title='OpenStackManager version 1.3 released'>OpenStackManager version 1.3 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/' rel='bookmark' title='OpenStackManager version 1.2 released'>OpenStackManager version 1.2 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/30/openstackmanager-version-1-1-released/' rel='bookmark' title='OpenStackManager version 1.1 released'>OpenStackManager version 1.1 released</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/2lB2P9TXXNY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2012/04/06/openstackmanager-1-4-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2012/04/06/openstackmanager-1-4-released/</feedburner:origLink></item>
		<item>
		<title>Fixing a very broken instance live migration manually</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/Tyn69kmTxY8/</link>
		<comments>http://ryandlane.com/blog/2012/01/06/fixing-a-very-broken-instance-live-migration-manually/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 02:13:57 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=502</guid>
		<description><![CDATA[I had a situation recently where a number of live migrations failed in a truly nasty way. The live migration failed part way through, but didn&#8217;t properly back-out the changes. This left the instance running nowhere, but in a &#8220;migrate&#8221; state in the database. I tried to reboot the instance, which then left the instance [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2013/02/19/openstack-wiki-migration/' rel='bookmark' title='OpenStack wiki migration'>OpenStack wiki migration</a></li>
<li><a href='http://ryandlane.com/blog/2010/03/19/moved-site-from-a-shared-host-to-an-ec2-instance/' rel='bookmark' title='Moved site from a shared host to an EC2 instance'>Moved site from a shared host to an EC2 instance</a></li>
<li><a href='http://ryandlane.com/blog/2010/03/12/adding-new-hard-drives-live-on-an-ubuntu-guest-with-vmware-esx/' rel='bookmark' title='Adding new hard drives live on an Ubuntu guest with VMware ESX'>Adding new hard drives live on an Ubuntu guest with VMware ESX</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I had a situation recently where a number of live migrations failed in a truly nasty way. The live migration failed part way through, but didn&#8217;t properly back-out the changes. This left the instance running nowhere, but in a &#8220;migrate&#8221; state in the database. I tried to reboot the instance, which then left the instance in the &#8220;running&#8221; state.</p>
<p>Of course, the instance wasn&#8217;t actually running anywhere and the reboot command wouldn&#8217;t start the instance, because it thought it was running. The logs complained that the instance wasn&#8217;t running whether I tried to restart the migration, or reboot. What a full of fail situation.</p>
<p>So, to fix this, I needed to make the instance actually start. In this situation, the database thought the instance was running on host virt2, but the instance&#8217;s libvirt files were on virt4. I copied the nwfilter file across to /etc/libvirt/nwfilter, then the domain file across to /etc/libvirt/qemu. I then created the nwfilter, then the domain:</p>
<pre style="padding-left: 30px;">virsh nwfilter-define /etc/libvirt/nwfilter/&lt;instance-nwfilter&gt;.xml
virsh create /etc/libvirt/qemu/&lt;instance-domain&gt;.xml</pre>
<p>Once the instance was started, I re-migrated the instance and all was good.</p>
<p>As a side note, I think what caused the migration failure was that I tried to migrate too many instances at the same time from a host that was already slightly overloaded. Of course, this is no excuse for nova to fail.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2013/02/19/openstack-wiki-migration/' rel='bookmark' title='OpenStack wiki migration'>OpenStack wiki migration</a></li>
<li><a href='http://ryandlane.com/blog/2010/03/19/moved-site-from-a-shared-host-to-an-ec2-instance/' rel='bookmark' title='Moved site from a shared host to an EC2 instance'>Moved site from a shared host to an EC2 instance</a></li>
<li><a href='http://ryandlane.com/blog/2010/03/12/adding-new-hard-drives-live-on-an-ubuntu-guest-with-vmware-esx/' rel='bookmark' title='Adding new hard drives live on an Ubuntu guest with VMware ESX'>Adding new hard drives live on an Ubuntu guest with VMware ESX</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/Tyn69kmTxY8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2012/01/06/fixing-a-very-broken-instance-live-migration-manually/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2012/01/06/fixing-a-very-broken-instance-live-migration-manually/</feedburner:origLink></item>
		<item>
		<title>OpenStackManager version 1.3 released</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/qkNJ9ys_LRE/</link>
		<comments>http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 15:30:10 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[LDAP]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Semantic MediaWiki]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Wikimedia]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=499</guid>
		<description><![CDATA[The OpenStackManager extension is a web interface for OpenStack, and a manager for a fully integrated test and development network being written primarily for Wikimedia Foundation use. I&#8217;ve been busy enough lately working on our OpenStack infrastructure that I haven&#8217;t made an OpenStackManager release in a while. Over the past seven months I&#8217;ve continued to [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/' rel='bookmark' title='OpenStackManager version 1.2 released'>OpenStackManager version 1.2 released</a></li>
<li><a href='http://ryandlane.com/blog/2012/04/06/openstackmanager-1-4-released/' rel='bookmark' title='OpenStackManager 1.4 released'>OpenStackManager 1.4 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/30/openstackmanager-version-1-1-released/' rel='bookmark' title='OpenStackManager version 1.1 released'>OpenStackManager version 1.1 released</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p><em>The <a href="http://www.mediawiki.org/wiki/Extension:OpenStackManager">OpenStackManager extension</a> is a web interface for <a href="http://www.openstack.org/">OpenStack</a>, and a manager for a fully integrated test and development network being <a href="../2011/01/02/building-a-test-and-development-infrastructure-using-openstack/">written primarily for Wikimedia Foundation use</a>.</em></p>
<p>I&#8217;ve been busy enough lately working on our OpenStack infrastructure that I haven&#8217;t made an OpenStackManager release in a while. Over the past seven months I&#8217;ve continued to make small changes to the software, and the past few weeks I&#8217;ve added features I feel deserve another release.</p>
<p>This is a bugfix and features release. Major changes include compatibility for cactus and diablo releases of nova, and 1.18 compatibility for MediaWiki. The changes in this release focused mainly on making workflow easier. Here&#8217;s a complete list of changes:</p>
<ul>
<li>Added a reboot action for instances</li>
<li>Made compatibility changes for cactus and diablo nova releases</li>
<li>Made compatibility changes for MediaWiki 1.18</li>
<li>Added support for configurable naming attributes</li>
<li>Added support for adding objectclasses and attributes for users that are missing them</li>
<ul>
<li>It&#8217;s now possible for MediaWiki to no longer have to create users, only update select user attributes and objectclasses</li>
</ul>
<li>Made a bunch of bugfixes regarding security groups</li>
<li>Added support for wildcard DNS entries</li>
<li>Added realm and instancename variables to puppet default variables, so that they can be used in puppet runs</li>
<li>Added support for wiki page creation for Projects</li>
<li>Added support for configuring default images for instances</li>
<li>Added support for creating server admin logs per project</li>
<li>Added support for default security group rules on project creation</li>
<li>Added dialog to project creation for adding members to projects and roles upon creation</li>
<li>Added support for managing puppet classes and variables through the interface, rather than LocalSettings.php</li>
<li>Made a usability change to instance creation: the default security group will always be selected by default</li>
<li>Added support for including the ssh key fingerprint of an instance in the &#8220;your instance is ready&#8221; emails</li>
<li>Made a usability change to only show actions to users if they can perform them</li>
<li>Lots of other minor bug fixes</li>
<li>Bugfixes from John Du Hart, Sam Reed and Mark Hershberger</li>
</ul>
<p>If you&#8217;d like to help develop this extension, I&#8217;ve created a development environment in a project in Wikimedia Labs. Find me on #wikimedia-labs on Freenode or email me to get a labs account and access to the project.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/' rel='bookmark' title='OpenStackManager version 1.2 released'>OpenStackManager version 1.2 released</a></li>
<li><a href='http://ryandlane.com/blog/2012/04/06/openstackmanager-1-4-released/' rel='bookmark' title='OpenStackManager 1.4 released'>OpenStackManager 1.4 released</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/30/openstackmanager-version-1-1-released/' rel='bookmark' title='OpenStackManager version 1.1 released'>OpenStackManager version 1.1 released</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/qkNJ9ys_LRE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/</feedburner:origLink></item>
		<item>
		<title>A process for puppetization of a service using Nova</title>
		<link>http://feedproxy.google.com/~r/RyanLanesBlog/~3/eiQj_iZX-70/</link>
		<comments>http://ryandlane.com/blog/2011/11/02/a-process-for-puppetization-of-a-service-using-nova/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 01:20:46 +0000</pubDate>
		<dc:creator>Ryan Lane</dc:creator>
				<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Wikimedia]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://ryandlane.com/blog/?p=490</guid>
		<description><![CDATA[For the proper automation of a service using puppet, it&#8217;s necessary to ensure the service can be installed repeatedly, and that the service is fully up and ready when it is built. To ensure this, I&#8217;m using the following process, using nova: Create an instance and use it to do experimentation with the service. Document [...]<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/11/01/sharing-home-directories-to-instances-within-a-project-using-puppet-ldap-autofs-and-nova/' rel='bookmark' title='Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova'>Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/' rel='bookmark' title='Announcing OpenStackManager extension for MediaWiki'>Announcing OpenStackManager extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/' rel='bookmark' title='OpenStackManager version 1.3 released'>OpenStackManager version 1.3 released</a></li>
</ol>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>For the proper automation of a service using puppet, it&#8217;s necessary to ensure the service can be installed repeatedly, and that the service is fully up and ready when it is built. To ensure this, I&#8217;m using the following process, using nova:</p>
<ol>
<li>Create an instance and use it to do experimentation with the service.</li>
<li>Document the service, along with the installation process on <a href="http://wikitech.wikimedia.org/view/Main_Page">wikitech</a>, after ensuring the service is working properly.</li>
<li>Create a second instance. Following the documentation written, puppetize the service.</li>
<li>Create a third instance. Ensure the puppetized service runs properly when initialized from scratch.</li>
<li>Kill all three instances, and replace the instances in the test cluster.</li>
</ol>
<p>When a service changes in puppet, follow the above cycle as well.</p>
<p>Using this process, I can be assured the puppet manifests, as written, will allow me to repeatedly install this service.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://ryandlane.com/blog/2011/11/01/sharing-home-directories-to-instances-within-a-project-using-puppet-ldap-autofs-and-nova/' rel='bookmark' title='Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova'>Sharing home directories to instances within a project using puppet, LDAP, autofs, and Nova</a></li>
<li><a href='http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/' rel='bookmark' title='Announcing OpenStackManager extension for MediaWiki'>Announcing OpenStackManager extension for MediaWiki</a></li>
<li><a href='http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/' rel='bookmark' title='OpenStackManager version 1.3 released'>OpenStackManager version 1.3 released</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/c59c6ba8efe83b39907a3e0d502aba3a'/>
</div>
<img src="http://feeds.feedburner.com/~r/RyanLanesBlog/~4/eiQj_iZX-70" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ryandlane.com/blog/2011/11/02/a-process-for-puppetization-of-a-service-using-nova/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://ryandlane.com/blog/2011/11/02/a-process-for-puppetization-of-a-service-using-nova/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching using memcached
Object Caching 3059/3239 objects using memcached

 Served from: ryandlane.com @ 2013-05-15 14:15:29 by W3 Total Cache -->
