Hi Folks,<br><br>I've been hacking away at creating an automated deployment system for Swift using Chef.  I'd like to drop a design idea on you folks (most of which I've already implemented) and get feedback from this esteemed group.<br>
<br>My end goal is to have a "manifest" (apologies to Puppet) which will define an entire swift cluster, deploy it automatically, and allow edits to the ingredients to manage the cluster.  In this case, a "manifest" is a combination of a chef databag describing the swift settings, and a spiceweasel infrastructure.yaml file describing the OS configuration.<br>
<br>Ingredients:<br>- swift cookbook with base, proxy and server recipes.  proxy nodes also (provisionally) contain auth services. storage nodes handle object, container and account services.<br>-- Base recipe handles common package install, OS user creation.  Sets up keys.<br>
-- Proxy recipe handles proxy nodes: network config, package install, memcache config, proxy and auth package config, user creation, ring management (including builder file backup), user management<br>-- Storage recipe handles storage nodes: network config, storage device config, package install, ring management.<br clear="all">
<br>- chef databag that describes a swift cluster (eg: mycluster_databag.json)<br>-- proxy config settings<br>-- memcached settings<br>-- settings for all rings and devices<br>-- basic user settings<br>-- account management<br>
<br>- chef "spiceweasel" file that auto-vivifies the infrastructure: (eg: mycluster_infra.yaml)<br>-- uploads cookbooks<br>-- uploads roles<br>-- uploads the cluster's databag<br>-- kicks off node provisioning by requesting from infrastructure API (ec2 or what have you) the following:<br>
--- chef roles applied (role[swift:proxy] or role[swift:storage])<br>--- server flavor<br>--- storage device configs<br>--- hostname<br>--- proxy and storage network details<br><br>By calling this spiceweasel file, the infrastructure can leap into existence.<br>
<br>I'm more or less done with all this stuff - and I'd really appreciate conceptual feedback before I take out all the non-sense code I have in the files and publish.<br><br>Many thanks!  Happy spring, northern hemispherians!<br>
-judd<br><br>Judd Maltin<br>T: 917-882-1270<br>F: 501-694-7809<br>A loving heart is never wrong.<br><br><br><br>