<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
Hi Jay,
<div><br>
</div>
<div>The chef cookbooks at <a href="https://github.com/osops">https://github.com/osops</a> are no longer maintained.  Our current cookbooks are at  <a href="https://github.com/rcbops/chef-cookbooks">https://github.com/rcbops/chef-cookbooks</a></div>
<div><br>
</div>
<div><br>
</div>
<div><br>
<div apple-content-edited="true">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div>---</div>
<div>Joseph Breu</div>
<div>Deployment Engineer</div>
<div>Rackspace Cloud Builders</div>
<div>210-312-3508</div>
</div>
</div>
<br>
<div>
<div>On Jul 9, 2012, at 8:01 AM, Jay Pipes wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div>Vish and Ron, just getting back to this... see inline continued<br>
questions for you both.<br>
<br>
On 07/02/2012 04:24 PM, Vishvananda Ishaya wrote:<br>
<blockquote type="cite"><br>
</blockquote>
<blockquote type="cite">On Jul 2, 2012, at 7:28 AM, Jay Pipes wrote:<br>
</blockquote>
<blockquote type="cite"><br>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">Hi Ron, cc'ing the openstack ML for extra eyes and opinions...<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">So, Nati and I are looking to use either the osops chef-repo or<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">something similar as the basis of the new TryStack zone chef deployment.<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">I've been going through the recipes and roles and I have a question on<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">the nova-compute *role*:<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><a href="https://github.com/osops/chef-repo/blob/master/roles/nova-compute.rb">https://github.com/osops/chef-repo/blob/master/roles/nova-compute.rb</a><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">I'm wondering why the nova-api recipe is in the runlist for nova-compute?<br>
</blockquote>
</blockquote>
<blockquote type="cite"><br>
</blockquote>
<blockquote type="cite">Because metadata needs to run on the compute hosts in the default layout. This should<br>
</blockquote>
<blockquote type="cite">be switched to use nova-api-metadata instead of nova-api, but the split out hasn't been done yet.<br>
</blockquote>
<br>
OK, I will work on splitting this out a bit more effectively.<br>
<br>
One additional question, though. In opening up the<br>
/cookbooks/nova/recipes/nova/compute.rb file, you will notice this at<br>
the top:<br>
<br>
include_recipe "nova::api"<br>
<br>
Therefore, unless I am mistaken, the nova-compute *role*'s runlist<br>
actually doesn't need to contain both nova-api AND nova-compute since<br>
apparently the nova-compute *recipe* already includes all of the<br>
nova-api recipe.<br>
<br>
Would you agree with that?<br>
<br>
<blockquote type="cite">
<blockquote type="cite">In addition, I was wondering if y'all had considered making more use of<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">roles instead of recipes to allow most of the attribute assignment and<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">variation to be in the combination of roles assigned to a host, instead<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">of recipes combined in a role?<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">For example, right now, there is a "nova-controller" role that looks<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">like this:<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">name "nova-controller"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">description "Nova controller node (vncproxy + rabbit)"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">run_list(<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"role[base]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[nova::controller]"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">)<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">Because most of the special sauce is in the nova::controller recipe, I<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">have to go into that recipe to see what the role is composed of:<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "mysql::server"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "openssh::default"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "rabbitmq::default"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "keystone::server"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "glance::registry"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "glance::api"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "nova::nova-setup"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "nova::scheduler"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "nova::api"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">if platform?(%w{fedora})<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"># Fedora skipping vncproxy for right now<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">else<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">include_recipe "nova::vncproxy"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">end<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">But what this recipe really is is an opinionated description of a<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"controller role". If the role was, instead, structured like so:<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">name "nova-controller"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">description "Nova Controller - All major API services and control<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">servers like MySQL and Rabbit"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">run_list(<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"role[base]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[mysql::server]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[openssh::default]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[rabbitmq::default]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[keystone::server]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[glance::api]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[glance::registry]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[nova::scheduler]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[nova::api]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">)<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">Then the deployer can more easily switch up the way they deploy<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">OpenStack servers by merely changing the role -- say, removing the<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">Rabbit service and putting it somewhere else -- WITHOUT having to modify<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">a recipe in a Git submodule in the upstream cookbooks.<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">Furthermore, if we broke out more roles -- such as "control-services"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">which might be MySQL and Rabbit only -- than we could make the "super<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">roles" ,like the nova-controller role above, more of a "put this and<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">that role together, like so:<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">name "nova-controller"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">description "Nova Controller - All major API services and control<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">servers like MySQL and Rabbit"<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">run_list(<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"role[base]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"role[control_services]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[keystone::server]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[glance::api]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[glance::registry]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[nova::scheduler]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">"recipe[nova::api]",<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">)<br>
</blockquote>
</blockquote>
<blockquote type="cite"><br>
</blockquote>
<blockquote type="cite">This all makes sense to me.  Ron?<br>
</blockquote>
<br>
Ron, any disagreement here?<br>
<br>
<blockquote type="cite">
<blockquote type="cite">Finally, I've noticed that there are aren't any HA options in the osops<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">recipes -- specifically around MySQL. Are there plans to do so? We use<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">heartbeat/Pacemaker/DRBD in the original TryStack cookbooks [1] and<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">environments to get simple HA solutions up and would love to see those<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">in the upstream.<br>
</blockquote>
</blockquote>
<br>
Either of you, any thoughts on this front?<br>
<br>
Thanks!<br>
-jay<br>
<br>
<blockquote type="cite">
<blockquote type="cite">Thanks and all the best guys,<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">-jay<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">[1]<br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><a href="https://github.com/trystack/openstack-chef/tree/stable/diablo/cookbooks/heartbeat">https://github.com/trystack/openstack-chef/tree/stable/diablo/cookbooks/heartbeat</a><br>
</blockquote>
</blockquote>
<blockquote type="cite"><br>
</blockquote>
<br>
<br>
_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br>
</div>
</blockquote>
</div>
<br>
</div>
</body>
</html>