<?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 for Thoughts on System Administration</title>
	<atom:link href="http://plathrop.tertiusfamily.net/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://plathrop.tertiusfamily.net/blog</link>
	<description>Paul Lathrop discusses systems administration.</description>
	<pubDate>Thu, 11 Mar 2010 08:52:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Naming Is A Hard Problem by plathrop</title>
		<link>http://plathrop.tertiusfamily.net/blog/2009/01/20/naming-is-a-hard-problem/comment-page-1/#comment-660</link>
		<dc:creator>plathrop</dc:creator>
		<pubDate>Thu, 29 Jan 2009 01:43:54 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=31#comment-660</guid>
		<description>I completely disagree with you here, actually. CNAMEs grant you a HUGE benefit when you want to move a service from one machine/cluster to another. Fail-over becomes as simple as updating the CNAME.

I used to follow the idea of functional names with meta-data until I started working on large-scale installations with a lot of re-purposing of servers.</description>
		<content:encoded><![CDATA[<p>I completely disagree with you here, actually. CNAMEs grant you a HUGE benefit when you want to move a service from one machine/cluster to another. Fail-over becomes as simple as updating the CNAME.</p>
<p>I used to follow the idea of functional names with meta-data until I started working on large-scale installations with a lot of re-purposing of servers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Naming Is A Hard Problem by plathrop</title>
		<link>http://plathrop.tertiusfamily.net/blog/2009/01/20/naming-is-a-hard-problem/comment-page-1/#comment-659</link>
		<dc:creator>plathrop</dc:creator>
		<pubDate>Thu, 29 Jan 2009 01:41:26 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=31#comment-659</guid>
		<description>But what do you do when you move the server to a different rack location? Or repurpose it from a app/dns/whatever to something else?</description>
		<content:encoded><![CDATA[<p>But what do you do when you move the server to a different rack location? Or repurpose it from a app/dns/whatever to something else?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Naming Is A Hard Problem by plathrop</title>
		<link>http://plathrop.tertiusfamily.net/blog/2009/01/20/naming-is-a-hard-problem/comment-page-1/#comment-658</link>
		<dc:creator>plathrop</dc:creator>
		<pubDate>Thu, 29 Jan 2009 01:40:39 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=31#comment-658</guid>
		<description>I like themes a lot, but I have definitely run into issues before. I think hostnames shouldn't matter as much as they do.</description>
		<content:encoded><![CDATA[<p>I like themes a lot, but I have definitely run into issues before. I think hostnames shouldn&#8217;t matter as much as they do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Naming Is A Hard Problem by egon</title>
		<link>http://plathrop.tertiusfamily.net/blog/2009/01/20/naming-is-a-hard-problem/comment-page-1/#comment-657</link>
		<dc:creator>egon</dc:creator>
		<pubDate>Thu, 29 Jan 2009 00:06:29 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=31#comment-657</guid>
		<description>I use arbitrary names for sets of machines that are distinct.  Names of the moons of Jupiter, literature mentioned in "Ghostbusters", interesting words from the dictionary...

For clusters or grids of machines, or pooled common machines, I use functional or positional names.  app1,app2,appN : dns1,dns2, or r1p1,r1p2 for names of machines that fill up rack 1, all of which are in a common cluster or grid.</description>
		<content:encoded><![CDATA[<p>I use arbitrary names for sets of machines that are distinct.  Names of the moons of Jupiter, literature mentioned in &#8220;Ghostbusters&#8221;, interesting words from the dictionary&#8230;</p>
<p>For clusters or grids of machines, or pooled common machines, I use functional or positional names.  app1,app2,appN : dns1,dns2, or r1p1,r1p2 for names of machines that fill up rack 1, all of which are in a common cluster or grid.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Naming Is A Hard Problem by Nathan</title>
		<link>http://plathrop.tertiusfamily.net/blog/2009/01/20/naming-is-a-hard-problem/comment-page-1/#comment-656</link>
		<dc:creator>Nathan</dc:creator>
		<pubDate>Wed, 28 Jan 2009 15:35:38 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=31#comment-656</guid>
		<description>I work with a guy who uses names of Transformers.</description>
		<content:encoded><![CDATA[<p>I work with a guy who uses names of Transformers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Naming Is A Hard Problem by jtimberman</title>
		<link>http://plathrop.tertiusfamily.net/blog/2009/01/20/naming-is-a-hard-problem/comment-page-1/#comment-655</link>
		<dc:creator>jtimberman</dc:creator>
		<pubDate>Wed, 21 Jan 2009 01:06:28 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=31#comment-655</guid>
		<description>I like being able to look at a hostname or fqdn and know what function that server provides, optionally which environment it belongs to. For example:

web1prod
web1.prod.example.com

For multiple customer systems in a hosted environment that have the same domain:

custid-web1prod
web1prod.custid.example.com

Etc.

I don't like "theme" hostnames. They're not useful, especially in an environment that has high sysadmin turnover or even growth, because then each new person needs to be trained to know that systems named after star wars planets are web servers and star trek races are database servers. "What does chewbacca do again?" Sure, CNAMEs can be used, but thats extra hassle for very little practical gain. 

Instead, have fun with comments in your configuration code and git commit messages :-).</description>
		<content:encoded><![CDATA[<p>I like being able to look at a hostname or fqdn and know what function that server provides, optionally which environment it belongs to. For example:</p>
<p>web1prod<br />
web1.prod.example.com</p>
<p>For multiple customer systems in a hosted environment that have the same domain:</p>
<p>custid-web1prod<br />
web1prod.custid.example.com</p>
<p>Etc.</p>
<p>I don&#8217;t like &#8220;theme&#8221; hostnames. They&#8217;re not useful, especially in an environment that has high sysadmin turnover or even growth, because then each new person needs to be trained to know that systems named after star wars planets are web servers and star trek races are database servers. &#8220;What does chewbacca do again?&#8221; Sure, CNAMEs can be used, but thats extra hassle for very little practical gain. </p>
<p>Instead, have fun with comments in your configuration code and git commit messages :-).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Getting Started With Puppet by Alex Loddengaard</title>
		<link>http://plathrop.tertiusfamily.net/blog/2007/12/13/getting-started-with-puppet/comment-page-1/#comment-654</link>
		<dc:creator>Alex Loddengaard</dc:creator>
		<pubDate>Wed, 03 Dec 2008 08:24:36 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=14#comment-654</guid>
		<description>Great post!</description>
		<content:encoded><![CDATA[<p>Great post!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SSH tab completion by AJ</title>
		<link>http://plathrop.tertiusfamily.net/blog/2008/03/24/ssh-tab-completion/comment-page-1/#comment-653</link>
		<dc:creator>AJ</dc:creator>
		<pubDate>Mon, 17 Nov 2008 03:46:48 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/2008/03/24/ssh-tab-completion/#comment-653</guid>
		<description>From Ubuntu 7.04+'s /etc/bash_completion:

&lt;code&gt;
_known_hosts()
{
       local cur curd ocur user suffix aliases global_kh user_kh hosts i host
       local -a kh khd config

  COMPREPLY=()
  cur=`_get_cword`
  ocur=$cur

  [ "$1" = -a ] &#124;&#124; [ "$2" = -a ] &#38;&#38; aliases='yes'
  [ "$1" = -c ] &#124;&#124; [ "$2" = -c ] &#38;&#38; suffix=':'
  [[ $cur == *@* ]] &#38;&#38; user=${cur%@*}@ &#38;&#38; cur=${cur#*@}
  kh=()

  # ssh config files
  [ -r /etc/ssh/ssh_config ] &#38;&#38;
    config=( "${config[@]}" "/etc/ssh/ssh_config" )
  [ -r "${HOME}/.ssh/config" ] &#38;&#38;
    config=( "${config[@]}" "${HOME}/.ssh/config" )
  [ -r "${HOME}/.ssh2/config" ] &#38;&#38;
    config=( "${config[@]}" "${HOME}/.ssh2/config" )

  if [ ${#config[@]} -gt 0 ]; then
      # expand path (if present) to global known hosts file
      global_kh=$( eval echo $( sed -ne 's/^[ \t]*[Gg][Ll][Oo][Bb][Aa][Ll][Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/\1/p' "${config[@]}" ) )
      # expand path (if present) to user known hosts file
      user_kh=$( eval echo $( sed -ne 's/^[ \t]*[Uu][Ss][Ee][Rr][Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/\1/p' "${config[@]}" ) )
  fi

  # Global known_hosts files
  [ -r "$global_kh" ] &#38;&#38;
      kh=( "${kh[@]}" "$global_kh" )
  [ -r /etc/ssh/ssh_known_hosts ] &#38;&#38;
      kh=( "${kh[@]}" /etc/ssh/ssh_known_hosts )
  [ -r /etc/ssh/ssh_known_hosts2 ] &#38;&#38;
      kh=( "${kh[@]}" /etc/ssh/ssh_known_hosts2 )
  [ -r /etc/known_hosts ] &#38;&#38;
      kh=( "${kh[@]}" /etc/known_hosts )
  [ -r /etc/known_hosts2 ] &#38;&#38;
      kh=( "${kh[@]}" /etc/known_hosts2 )
  [ -d /etc/ssh2/knownhosts ] &#38;&#38;
      khd=( "${khd[@]}" /etc/ssh2/knownhosts/*pub )

  # User known_hosts files
  [ -r "$user_kh" ] &#38;&#38;
      kh=( "${kh[@]}" "$user_kh" )
  [ -r ~/.ssh/known_hosts ] &#38;&#38;
      kh=( "${kh[@]}" ~/.ssh/known_hosts )
  [ -r ~/.ssh/known_hosts2 ] &#38;&#38;
      kh=( "${kh[@]}" ~/.ssh/known_hosts2 )
  [ -d ~/.ssh2/hostkeys ] &#38;&#38;
      khd=( "${khd[@]}" ~/.ssh2/hostkeys/*pub )

  # If we have known_hosts files to use
  if [ ${#kh[@]} -gt 0 -o ${#khd[@]} -gt 0 ]; then
      # Escape slashes and dots in paths for awk
      cur=${cur//\//\\\/}
      cur=${cur//\./\\\.}
      curd=$cur

      if [[ "$cur" == [0-9]*.* ]]; then
    # Digits followed by a dot - just search for that
    cur="^$cur.*"
      elif [[ "$cur" == [0-9]* ]]; then
    # Digits followed by no dot - search for digits followed
    # by a dot
    cur="^$cur.*\."
      elif [ -z "$cur" ]; then
    # A blank - search for a dot or an alpha character
    cur="[a-z.]"
      else
    cur="^$cur"
      fi

      if [ ${#kh[@]} -gt 0 ]; then

    # FS needs to look for a comma separated list
    COMPREPLY=( $( awk 'BEGIN {FS=","}
        /^[^&#124;]/ {for (i=1; i/dev/null ) )
      fi
      if [ ${#khd[@]} -gt 0 ]; then
    # Needs to look for files called
    # .../.ssh2/key_22_.pub
    # dont fork any processes, because in a cluster environment,
    # there can be hundreds of hostkeys
    for i in "${khd[@]}" ; do
        if [[ "$i" == *key_22_$curd*.pub ]] &#38;&#38; [ -r "$i" ] ; then
      host=${i/#*key_22_/}
      host=${host/%.pub/}
      COMPREPLY=( "${COMPREPLY[@]}" $host )
        fi
    done
      fi

      # append any available aliases from config files
      if [ ${#config[@]} -gt 0 ] &#38;&#38; [ -n "$aliases" ]; then
    local host_aliases=$( sed -ne 's/^[Hh][Oo][Ss][Tt]\([Nn][Aa][Mm][Ee]\)\?['"$'\t '"']\+\([^*?]*\)$/\2/p' "${config[@]}" )
    hosts=$( compgen -W "$host_aliases" -- $ocur )
    COMPREPLY=( "${COMPREPLY[@]}" $hosts )
      fi

      # Now add results of normal hostname completion
      COMPREPLY=( "${COMPREPLY[@]}" $( compgen -A hostname -- $ocur ) )

      # apply suffix
      for (( i=0; i &#60; ${#COMPREPLY[@]}; i++ )); do
    COMPREPLY[i]=$user${COMPREPLY[i]}$suffix
      done
  else
      # Just do normal hostname completion
      COMPREPLY=( $( compgen -A hostname -S "$suffix" -- $cur ) )
  fi

  return 0
}
&lt;/code&gt;

Although, simply enough, with recent versions of bash most will just need (bashrc):
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi</description>
		<content:encoded><![CDATA[<p>From Ubuntu 7.04+&#8217;s /etc/bash_completion:</p>
<p><code><br />
_known_hosts()<br />
{<br />
       local cur curd ocur user suffix aliases global_kh user_kh hosts i host<br />
       local -a kh khd config</p>
<p>  COMPREPLY=()<br />
  cur=`_get_cword`<br />
  ocur=$cur</p>
<p>  [ "$1" = -a ] || [ "$2" = -a ] &amp;&amp; aliases=&#8217;yes&#8217;<br />
  [ "$1" = -c ] || [ "$2" = -c ] &amp;&amp; suffix=&#8217;:&#8217;<br />
  [[ $cur == *@* ]] &amp;&amp; user=${cur%@*}@ &amp;&amp; cur=${cur#*@}<br />
  kh=()</p>
<p>  # ssh config files<br />
  [ -r /etc/ssh/ssh_config ] &amp;&amp;<br />
    config=( &#8220;${config[@]}&#8221; &#8220;/etc/ssh/ssh_config&#8221; )<br />
  [ -r "${HOME}/.ssh/config" ] &amp;&amp;<br />
    config=( &#8220;${config[@]}&#8221; &#8220;${HOME}/.ssh/config&#8221; )<br />
  [ -r "${HOME}/.ssh2/config" ] &amp;&amp;<br />
    config=( &#8220;${config[@]}&#8221; &#8220;${HOME}/.ssh2/config&#8221; )</p>
<p>  if [ ${#config[@]} -gt 0 ]; then<br />
      # expand path (if present) to global known hosts file<br />
      global_kh=$( eval echo $( sed -ne &#8217;s/^[ \t]*[Gg][Ll][Oo][Bb][Aa][Ll][Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/\1/p&#8217; &#8220;${config[@]}&#8221; ) )<br />
      # expand path (if present) to user known hosts file<br />
      user_kh=$( eval echo $( sed -ne &#8217;s/^[ \t]*[Uu][Ss][Ee][Rr][Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/\1/p&#8217; &#8220;${config[@]}&#8221; ) )<br />
  fi</p>
<p>  # Global known_hosts files<br />
  [ -r "$global_kh" ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; &#8220;$global_kh&#8221; )<br />
  [ -r /etc/ssh/ssh_known_hosts ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; /etc/ssh/ssh_known_hosts )<br />
  [ -r /etc/ssh/ssh_known_hosts2 ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; /etc/ssh/ssh_known_hosts2 )<br />
  [ -r /etc/known_hosts ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; /etc/known_hosts )<br />
  [ -r /etc/known_hosts2 ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; /etc/known_hosts2 )<br />
  [ -d /etc/ssh2/knownhosts ] &amp;&amp;<br />
      khd=( &#8220;${khd[@]}&#8221; /etc/ssh2/knownhosts/*pub )</p>
<p>  # User known_hosts files<br />
  [ -r "$user_kh" ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; &#8220;$user_kh&#8221; )<br />
  [ -r ~/.ssh/known_hosts ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; ~/.ssh/known_hosts )<br />
  [ -r ~/.ssh/known_hosts2 ] &amp;&amp;<br />
      kh=( &#8220;${kh[@]}&#8221; ~/.ssh/known_hosts2 )<br />
  [ -d ~/.ssh2/hostkeys ] &amp;&amp;<br />
      khd=( &#8220;${khd[@]}&#8221; ~/.ssh2/hostkeys/*pub )</p>
<p>  # If we have known_hosts files to use<br />
  if [ ${#kh[@]} -gt 0 -o ${#khd[@]} -gt 0 ]; then<br />
      # Escape slashes and dots in paths for awk<br />
      cur=${cur//\//\\\/}<br />
      cur=${cur//\./\\\.}<br />
      curd=$cur</p>
<p>      if [[ "$cur" == [0-9]*.* ]]; then<br />
    # Digits followed by a dot - just search for that<br />
    cur=&#8221;^$cur.*&#8221;<br />
      elif [[ "$cur" == [0-9]* ]]; then<br />
    # Digits followed by no dot - search for digits followed<br />
    # by a dot<br />
    cur=&#8221;^$cur.*\.&#8221;<br />
      elif [ -z "$cur" ]; then<br />
    # A blank - search for a dot or an alpha character<br />
    cur=&#8221;[a-z.]&#8221;<br />
      else<br />
    cur=&#8221;^$cur&#8221;<br />
      fi</p>
<p>      if [ ${#kh[@]} -gt 0 ]; then</p>
<p>    # FS needs to look for a comma separated list<br />
    COMPREPLY=( $( awk &#8216;BEGIN {FS=&#8221;,&#8221;}<br />
        /^[^|]/ {for (i=1; i/dev/null ) )<br />
      fi<br />
      if [ ${#khd[@]} -gt 0 ]; then<br />
    # Needs to look for files called<br />
    # &#8230;/.ssh2/key_22_.pub<br />
    # dont fork any processes, because in a cluster environment,<br />
    # there can be hundreds of hostkeys<br />
    for i in &#8220;${khd[@]}&#8221; ; do<br />
        if [[ "$i" == *key_22_$curd*.pub ]] &amp;&amp; [ -r "$i" ] ; then<br />
      host=${i/#*key_22_/}<br />
      host=${host/%.pub/}<br />
      COMPREPLY=( &#8220;${COMPREPLY[@]}&#8221; $host )<br />
        fi<br />
    done<br />
      fi</p>
<p>      # append any available aliases from config files<br />
      if [ ${#config[@]} -gt 0 ] &amp;&amp; [ -n "$aliases" ]; then<br />
    local host_aliases=$( sed -ne &#8217;s/^[Hh][Oo][Ss][Tt]\([Nn][Aa][Mm][Ee]\)\?['"$'\t '"']\+\([^*?]*\)$/\2/p&#8217; &#8220;${config[@]}&#8221; )<br />
    hosts=$( compgen -W &#8220;$host_aliases&#8221; &#8212; $ocur )<br />
    COMPREPLY=( &#8220;${COMPREPLY[@]}&#8221; $hosts )<br />
      fi</p>
<p>      # Now add results of normal hostname completion<br />
      COMPREPLY=( &#8220;${COMPREPLY[@]}&#8221; $( compgen -A hostname &#8212; $ocur ) )</p>
<p>      # apply suffix<br />
      for (( i=0; i &lt; ${#COMPREPLY[@]}; i++ )); do<br />
    COMPREPLY[i]=$user${COMPREPLY[i]}$suffix<br />
      done<br />
  else<br />
      # Just do normal hostname completion<br />
      COMPREPLY=( $( compgen -A hostname -S &#8220;$suffix&#8221; &#8212; $cur ) )<br />
  fi</p>
<p>  return 0<br />
}<br />
</code></p>
<p>Although, simply enough, with recent versions of bash most will just need (bashrc):<br />
# enable bash completion in interactive shells<br />
if [ -f /etc/bash_completion ]; then<br />
    . /etc/bash_completion<br />
fi</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bash History by Mashmore</title>
		<link>http://plathrop.tertiusfamily.net/blog/2008/03/12/bash-history/comment-page-1/#comment-649</link>
		<dc:creator>Mashmore</dc:creator>
		<pubDate>Fri, 10 Oct 2008 19:21:05 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/2008/03/12/bash-history/#comment-649</guid>
		<description>My favorite bash history recipe (in .bash_profile, .bashrc, wherever ...):
 
# remove duplicate entries from history ...
export HISTCONTROL=erasedups

# keep a good size backlog ...
export HISTSIZE=10000

# bind up and down arrow keys
bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward

# append history to .bash_history on shell exit, rather than overwriting
shopt -s histappend

With this, you can type the first few characters of anything in your history, then use the up and down arrow keys to search for the appropriate entry. Sweet!</description>
		<content:encoded><![CDATA[<p>My favorite bash history recipe (in .bash_profile, .bashrc, wherever &#8230;):</p>
<p># remove duplicate entries from history &#8230;<br />
export HISTCONTROL=erasedups</p>
<p># keep a good size backlog &#8230;<br />
export HISTSIZE=10000</p>
<p># bind up and down arrow keys<br />
bind &#8216;&#8221;\e[A&#8221;&#8216;:history-search-backward<br />
bind &#8216;&#8221;\e[B&#8221;&#8216;:history-search-forward</p>
<p># append history to .bash_history on shell exit, rather than overwriting<br />
shopt -s histappend</p>
<p>With this, you can type the first few characters of anything in your history, then use the up and down arrow keys to search for the appropriate entry. Sweet!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on My First Conference by Andrew Shafer</title>
		<link>http://plathrop.tertiusfamily.net/blog/2008/06/23/my-first-conference/comment-page-1/#comment-252</link>
		<dc:creator>Andrew Shafer</dc:creator>
		<pubDate>Sun, 06 Jul 2008 08:52:58 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=28#comment-252</guid>
		<description>I'm just barely recovering from the conferences :/

We'll have to get you good and socialized.

I hope we can have a Puppet conference in a year and get at least 100+ and some interesting sessions.

Puppet is such a part of the dev fabric of a client that Luke did an onsite training with a while back, that he said the devs have to provide puppet code to manage the apps, or ops opens bugs.

How would it be?</description>
		<content:encoded><![CDATA[<p>I&#8217;m just barely recovering from the conferences :/</p>
<p>We&#8217;ll have to get you good and socialized.</p>
<p>I hope we can have a Puppet conference in a year and get at least 100+ and some interesting sessions.</p>
<p>Puppet is such a part of the dev fabric of a client that Luke did an onsite training with a while back, that he said the devs have to provide puppet code to manage the apps, or ops opens bugs.</p>
<p>How would it be?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some Background by Jaymoon</title>
		<link>http://plathrop.tertiusfamily.net/blog/2007/12/08/some-background/comment-page-1/#comment-80</link>
		<dc:creator>Jaymoon</dc:creator>
		<pubDate>Fri, 11 Apr 2008 07:32:20 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=15#comment-80</guid>
		<description>Looks perfectly straight to me. Of course, I'm also the type of person who allegedly [ahem! allegedly] agree with everything.</description>
		<content:encoded><![CDATA[<p>Looks perfectly straight to me. Of course, I&#8217;m also the type of person who allegedly [ahem! allegedly] agree with everything.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Capistrano by taeyoungchoon</title>
		<link>http://plathrop.tertiusfamily.net/blog/2008/02/03/capistrano/comment-page-1/#comment-31</link>
		<dc:creator>taeyoungchoon</dc:creator>
		<pubDate>Tue, 18 Mar 2008 02:19:21 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/2008/02/03/capistrano/#comment-31</guid>
		<description>I'm glad to hear that your words.. no nice.. but I'm not read this yet.. but I'll be back after read the print.. 2 pages.. bye..</description>
		<content:encoded><![CDATA[<p>I&#8217;m glad to hear that your words.. no nice.. but I&#8217;m not read this yet.. but I&#8217;ll be back after read the print.. 2 pages.. bye..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Puppet Modules and Apt by plathrop</title>
		<link>http://plathrop.tertiusfamily.net/blog/2008/01/02/puppet-modules-and-apt/comment-page-1/#comment-8</link>
		<dc:creator>plathrop</dc:creator>
		<pubDate>Fri, 08 Feb 2008 02:11:35 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=11#comment-8</guid>
		<description>Andy,

I guess I wasn't clear that this post builds on earlier posts and assumes you already have puppet installed, and are just upgrading.

--Paul</description>
		<content:encoded><![CDATA[<p>Andy,</p>
<p>I guess I wasn&#8217;t clear that this post builds on earlier posts and assumes you already have puppet installed, and are just upgrading.</p>
<p>&#8211;Paul</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Puppet Modules and Apt by whoarghhh</title>
		<link>http://plathrop.tertiusfamily.net/blog/2008/01/02/puppet-modules-and-apt/comment-page-1/#comment-7</link>
		<dc:creator>whoarghhh</dc:creator>
		<pubDate>Fri, 08 Feb 2008 00:36:05 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=11#comment-7</guid>
		<description>Hi Paul,

Thanks for your howto.. Only thing you missed was to add the user puppet.

useradd puppet

Cheers,

Andy</description>
		<content:encoded><![CDATA[<p>Hi Paul,</p>
<p>Thanks for your howto.. Only thing you missed was to add the user puppet.</p>
<p>useradd puppet</p>
<p>Cheers,</p>
<p>Andy</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some Background by Erek Dyskant</title>
		<link>http://plathrop.tertiusfamily.net/blog/2007/12/08/some-background/comment-page-1/#comment-5</link>
		<dc:creator>Erek Dyskant</dc:creator>
		<pubDate>Sat, 02 Feb 2008 17:25:07 +0000</pubDate>
		<guid isPermaLink="false">http://plathrop.tertiusfamily.net/blog/?p=15#comment-5</guid>
		<description>You have some real gems in here, and I appreciate the mix between analysis about our profession and practical information.

Keep it up.

--Erek Dyskant</description>
		<content:encoded><![CDATA[<p>You have some real gems in here, and I appreciate the mix between analysis about our profession and practical information.</p>
<p>Keep it up.</p>
<p>&#8211;Erek Dyskant</p>
]]></content:encoded>
	</item>
</channel>
</rss>
