<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Configuration Management on SmartOS</title>
	<atom:link href="http://cuddletech.com/blog/?feed=rss2&#038;p=772" rel="self" type="application/rss+xml" />
	<link>http://cuddletech.com/blog/?p=772&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=configuration-management-on-smartos</link>
	<description>The Blog of Ben Rockwood</description>
	<lastBuildDate>Sat, 18 May 2013 03:46:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
	<item>
		<title>By: Rainer</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27339</link>
		<dc:creator>Rainer</dc:creator>
		<pubDate>Sat, 29 Sep 2012 20:51:00 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27339</guid>
		<description>I may be wrong but ISTRM having read his pseudonom before, on the c0t0d0s0 blog...
Why anybody would package up a set of configuration-files is beyond me, though.
Maybe for special circumstances (interstellar satellite?) - but not in a dynamic environment like cloud-hosted services - or just a &quot;simple&quot; datacenter with a few hundred servers.</description>
		<content:encoded><![CDATA[<p>I may be wrong but ISTRM having read his pseudonom before, on the c0t0d0s0 blog&#8230;<br />
Why anybody would package up a set of configuration-files is beyond me, though.<br />
Maybe for special circumstances (interstellar satellite?) &#8211; but not in a dynamic environment like cloud-hosted services &#8211; or just a &#8220;simple&#8221; datacenter with a few hundred servers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mark slatem</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27324</link>
		<dc:creator>mark slatem</dc:creator>
		<pubDate>Fri, 28 Sep 2012 04:38:52 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27324</guid>
		<description>Any chance of sharing a decent SmartOS zabbix template as well?</description>
		<content:encoded><![CDATA[<p>Any chance of sharing a decent SmartOS zabbix template as well?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: UX-admin</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27251</link>
		<dc:creator>UX-admin</dc:creator>
		<pubDate>Tue, 25 Sep 2012 18:47:46 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27251</guid>
		<description>First you say &quot;let&#039;s duke it out&quot;, then you say &quot;it&#039;s a troll&quot;. If I don&#039;t see it your way (and people often disagree), then we&#039;re suddenly not &quot;duking it out&quot; any more.

I am not interested in a philosophical discussion because I do not want to argue. I want to compare and demonstrate. Let the code speak.</description>
		<content:encoded><![CDATA[<p>First you say &#8220;let&#8217;s duke it out&#8221;, then you say &#8220;it&#8217;s a troll&#8221;. If I don&#8217;t see it your way (and people often disagree), then we&#8217;re suddenly not &#8220;duking it out&#8221; any more.</p>
<p>I am not interested in a philosophical discussion because I do not want to argue. I want to compare and demonstrate. Let the code speak.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: UX-admin</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27250</link>
		<dc:creator>UX-admin</dc:creator>
		<pubDate>Tue, 25 Sep 2012 18:44:04 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27250</guid>
		<description>I did, and I found Chef to be the wrong way to do things. Needless to say, I view using &quot;orchestration frameworks&quot; instead of integrated change, asset and deployment management solutions as automation of hacking a file in vi, just on a massive scale.

You don&#039;t have to argue with me, just give me a file and let me demonstrate my way, then do (or not) what you want after that. I still think you do not understand what I am talking about, and I think that because you mention things like &quot;SmartOS is a hypervisor&quot; -- we all know that. It has been beaten to death enough times. It&#039;s a hypervisor. It&#039;s not perfect, but it&#039;s the best. That&#039;s not the issue.

And I&#039;m not a troll; all I am asking you to do is provide a simple configuration file, and I can demonstrate.</description>
		<content:encoded><![CDATA[<p>I did, and I found Chef to be the wrong way to do things. Needless to say, I view using &#8220;orchestration frameworks&#8221; instead of integrated change, asset and deployment management solutions as automation of hacking a file in vi, just on a massive scale.</p>
<p>You don&#8217;t have to argue with me, just give me a file and let me demonstrate my way, then do (or not) what you want after that. I still think you do not understand what I am talking about, and I think that because you mention things like &#8220;SmartOS is a hypervisor&#8221; &#8212; we all know that. It has been beaten to death enough times. It&#8217;s a hypervisor. It&#8217;s not perfect, but it&#8217;s the best. That&#8217;s not the issue.</p>
<p>And I&#8217;m not a troll; all I am asking you to do is provide a simple configuration file, and I can demonstrate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: UX-admin</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27249</link>
		<dc:creator>UX-admin</dc:creator>
		<pubDate>Tue, 25 Sep 2012 18:38:35 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27249</guid>
		<description>Chef simply hacks configuration files based on a &quot;recipe&quot;. That is in essence what it does, and it does it on a massive scale. It can also start and stop processes on a mass scale, and it can overwrite a file which does not match what it is told that a file should contain.

As you can imagine, I have a huge problem with a daemon arbitrarily overwriting a set of files it has been told to watch over, because to me, that means someone has logged onto the system and changed something manually. And that in turn signals that process is deficient.

In my view, other than to perhaps setup storage, nobody should ever be allowed to log into a system for any reason, let alone hack any files by hand so that a solution like Chef would have to overwrite them. That means that somework should have been packaged and it was not, or that some framework that a component could call needed to be designed and was not.

Solutions like Chef and Puppet are treatments for a symptom, not a cure for the root cause. That is my experience anyway.

Now, if I missed anything, feel free to correct me.</description>
		<content:encoded><![CDATA[<p>Chef simply hacks configuration files based on a &#8220;recipe&#8221;. That is in essence what it does, and it does it on a massive scale. It can also start and stop processes on a mass scale, and it can overwrite a file which does not match what it is told that a file should contain.</p>
<p>As you can imagine, I have a huge problem with a daemon arbitrarily overwriting a set of files it has been told to watch over, because to me, that means someone has logged onto the system and changed something manually. And that in turn signals that process is deficient.</p>
<p>In my view, other than to perhaps setup storage, nobody should ever be allowed to log into a system for any reason, let alone hack any files by hand so that a solution like Chef would have to overwrite them. That means that somework should have been packaged and it was not, or that some framework that a component could call needed to be designed and was not.</p>
<p>Solutions like Chef and Puppet are treatments for a symptom, not a cure for the root cause. That is my experience anyway.</p>
<p>Now, if I missed anything, feel free to correct me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: benr</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27245</link>
		<dc:creator>benr</dc:creator>
		<pubDate>Tue, 25 Sep 2012 17:58:51 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27245</guid>
		<description>No... its not worth my time.  This is a troll, not a discussion.  If you want to understand the practical advantages and disadvantages of both approaches you can do that work yourself.  I did many many moons ago.</description>
		<content:encoded><![CDATA[<p>No&#8230; its not worth my time.  This is a troll, not a discussion.  If you want to understand the practical advantages and disadvantages of both approaches you can do that work yourself.  I did many many moons ago.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: UX-admin</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27244</link>
		<dc:creator>UX-admin</dc:creator>
		<pubDate>Tue, 25 Sep 2012 17:40:32 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27244</guid>
		<description>There are many points you have made here which I would like to address, but before I do, I want to make sure I am understood in what I am writing about. This is why I have offered to write an example package. Once I do that, I will happy for you to come and rip me apart if you still disagree with me. But the code will be there, and then what I mean will be clear.

Please give me a configuration file, and tell me what it needs to look after the fact. I will implement each and every point you made in a package. Then feel free to rip me apart if you still think what I did is incorrect and will not scale. 

I think that you and I want the same thing, but that we are speaking about completely different things, and want to get that out of the way first. What do you say?</description>
		<content:encoded><![CDATA[<p>There are many points you have made here which I would like to address, but before I do, I want to make sure I am understood in what I am writing about. This is why I have offered to write an example package. Once I do that, I will happy for you to come and rip me apart if you still disagree with me. But the code will be there, and then what I mean will be clear.</p>
<p>Please give me a configuration file, and tell me what it needs to look after the fact. I will implement each and every point you made in a package. Then feel free to rip me apart if you still think what I did is incorrect and will not scale. </p>
<p>I think that you and I want the same thing, but that we are speaking about completely different things, and want to get that out of the way first. What do you say?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Weiss</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27241</link>
		<dc:creator>Bill Weiss</dc:creator>
		<pubDate>Tue, 25 Sep 2012 13:26:59 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27241</guid>
		<description>Where does the term &quot;automated hacking solution&quot; come from in relation to configuration management?  A quick Google doesn&#039;t find it in use anywhere, and I suspect your use of it implies a profound misunderstanding of what these systems do.</description>
		<content:encoded><![CDATA[<p>Where does the term &#8220;automated hacking solution&#8221; come from in relation to configuration management?  A quick Google doesn&#8217;t find it in use anywhere, and I suspect your use of it implies a profound misunderstanding of what these systems do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: benr</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27236</link>
		<dc:creator>benr</dc:creator>
		<pubDate>Tue, 25 Sep 2012 09:03:26 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27236</guid>
		<description>Lets first understand that SmartOS is a distribution of Illumos intended to do one thing and do it extremely well... visualization.  It doesn&#039;t compete with Ubuntu or Solaris, it competes with ESXi.  There is no native packaging for OS installation because there is little to do there.  It can be done by bootstrapping PKG-SRC, but in the JPC I don&#039;t do it, but others do and that&#039;s each administrators decision to make.

On to Configuration Management (CM) versus configuration rolled into packaging.  This is not a new or unique conversion, in fact it was hotly debated at DevOps Days Mountain View in 2010 (pretty sure it was 2010).  Some people we packaging their configuration up and overlaying it as a version controlled RPM/Deb, there were others who were adding them to packages as pre-/post- install scripts.  The debate was fierce.  Some people felt, as you obviously do, that the software and the configuration were inextricably linked and therefore should be managed as a single asset.  Others felt, as I do, that the systems configuration should be entirely independent of the packaging system so that it was both portable and consistent.  There are advantages and disadvantages to both approaches.  Package based configuration is extremely precise however it is also extremely inflexible.  If your managing a medical device (several do) the consistency is extremely important and flexibility isn&#039;t.  However, if your deploying a web service on Joyent and then wish to deploy a cold standby on SoftLayer, flexibility is of prime importance.  So lets be clear, the choice you make depends on the problem your solving.

You clearly have a very old and primitive view of Configuration Management, which is not uncommon.  That is, you see it as little more than a hodge podge of shell scripts in a specialty language not worth your time to learn.  Many have felt this way... &quot;I can do all this in a bash script, screw Puppet&quot; or the like.  

The power of CM is in its consistency, idempotence, and versatility.  With Chef, for instance, attributes can be applied to a server or group of servers to tailor a single generic cookbook for the task at hand.  I have different Zabbix servers in each of my data centers, but I use a single cookbook for all of them, I just change the &quot;zabbix/server&quot; attribute as appropriate and I&#039;m done.  More importantly, I can change that configuration in seconds by simply updating the attribute file and having Chef re-run.  If that configuration was in a package I&#039;d have a heart attack reinstalling or updating the zabbix-client package.  

Keep in mind the type of automation your preforming.  If its just adding a user for a daemon, sure that goes in the package post-install.... if your configuring which of 10 different syslog aggregators it should point to, that&#039;s not so easy.

Finally, keep in mind that CM is and should be idempotent.  That is, you can re-run it over and over and it will preform not function unless it needs to be done.  For instance, if a config file already matches the configuration I want, it does nothing, otehrwise it makes it (declarative) right.  Therefore, if I want to ensure everything in my datacenter is configured properly I just let my CM tool run and if everything is good, nothing happens, if anything is wrong, it fixes it.  This is something you CAN NOT DO in a Jumpstarted environment.  Trust me, I had a world class Jumpstart infrastructure for a very long time... everything was perfect when deployed, but after 6 months validating that things hadn&#039;t drifted was nearly impossible and fixing anything that had changed was a daunting task.

If that doesn&#039;t convince you I don&#039;t know what else to day.  CM isn&#039;t the future any more, its the present accepted standard.  Those who haven&#039;t moved to CM are now at least 2 years behind the curve.  CM is industry standard in all but legacy environments and many of those will back fill it simply for sanity sake in the future.</description>
		<content:encoded><![CDATA[<p>Lets first understand that SmartOS is a distribution of Illumos intended to do one thing and do it extremely well&#8230; visualization.  It doesn&#8217;t compete with Ubuntu or Solaris, it competes with ESXi.  There is no native packaging for OS installation because there is little to do there.  It can be done by bootstrapping PKG-SRC, but in the JPC I don&#8217;t do it, but others do and that&#8217;s each administrators decision to make.</p>
<p>On to Configuration Management (CM) versus configuration rolled into packaging.  This is not a new or unique conversion, in fact it was hotly debated at DevOps Days Mountain View in 2010 (pretty sure it was 2010).  Some people we packaging their configuration up and overlaying it as a version controlled RPM/Deb, there were others who were adding them to packages as pre-/post- install scripts.  The debate was fierce.  Some people felt, as you obviously do, that the software and the configuration were inextricably linked and therefore should be managed as a single asset.  Others felt, as I do, that the systems configuration should be entirely independent of the packaging system so that it was both portable and consistent.  There are advantages and disadvantages to both approaches.  Package based configuration is extremely precise however it is also extremely inflexible.  If your managing a medical device (several do) the consistency is extremely important and flexibility isn&#8217;t.  However, if your deploying a web service on Joyent and then wish to deploy a cold standby on SoftLayer, flexibility is of prime importance.  So lets be clear, the choice you make depends on the problem your solving.</p>
<p>You clearly have a very old and primitive view of Configuration Management, which is not uncommon.  That is, you see it as little more than a hodge podge of shell scripts in a specialty language not worth your time to learn.  Many have felt this way&#8230; &#8220;I can do all this in a bash script, screw Puppet&#8221; or the like.  </p>
<p>The power of CM is in its consistency, idempotence, and versatility.  With Chef, for instance, attributes can be applied to a server or group of servers to tailor a single generic cookbook for the task at hand.  I have different Zabbix servers in each of my data centers, but I use a single cookbook for all of them, I just change the &#8220;zabbix/server&#8221; attribute as appropriate and I&#8217;m done.  More importantly, I can change that configuration in seconds by simply updating the attribute file and having Chef re-run.  If that configuration was in a package I&#8217;d have a heart attack reinstalling or updating the zabbix-client package.  </p>
<p>Keep in mind the type of automation your preforming.  If its just adding a user for a daemon, sure that goes in the package post-install&#8230;. if your configuring which of 10 different syslog aggregators it should point to, that&#8217;s not so easy.</p>
<p>Finally, keep in mind that CM is and should be idempotent.  That is, you can re-run it over and over and it will preform not function unless it needs to be done.  For instance, if a config file already matches the configuration I want, it does nothing, otehrwise it makes it (declarative) right.  Therefore, if I want to ensure everything in my datacenter is configured properly I just let my CM tool run and if everything is good, nothing happens, if anything is wrong, it fixes it.  This is something you CAN NOT DO in a Jumpstarted environment.  Trust me, I had a world class Jumpstart infrastructure for a very long time&#8230; everything was perfect when deployed, but after 6 months validating that things hadn&#8217;t drifted was nearly impossible and fixing anything that had changed was a daunting task.</p>
<p>If that doesn&#8217;t convince you I don&#8217;t know what else to day.  CM isn&#8217;t the future any more, its the present accepted standard.  Those who haven&#8217;t moved to CM are now at least 2 years behind the curve.  CM is industry standard in all but legacy environments and many of those will back fill it simply for sanity sake in the future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: UX-admin</title>
		<link>http://cuddletech.com/blog/?p=772#comment-27230</link>
		<dc:creator>UX-admin</dc:creator>
		<pubDate>Mon, 24 Sep 2012 15:52:16 +0000</pubDate>
		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772#comment-27230</guid>
		<description>I have an idea. Pick a small configuration file for something, and let us each devise our own solution: you write a Chef recipe, I will make a SVR4 package. Then we will have something solid to look at and we can discuss scalability. Please pick some simple file and provide what the configuration inside of it should be, and let&#039;s have at it. Then rather than philosophically, we can compare and contrast real solutions.</description>
		<content:encoded><![CDATA[<p>I have an idea. Pick a small configuration file for something, and let us each devise our own solution: you write a Chef recipe, I will make a SVR4 package. Then we will have something solid to look at and we can discuss scalability. Please pick some simple file and provide what the configuration inside of it should be, and let&#8217;s have at it. Then rather than philosophically, we can compare and contrast real solutions.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
