<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Tate Eskew</title>
	<atom:link href="http://www.tateeskew.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tateeskew.com</link>
	<description></description>
	<lastBuildDate>Thu, 11 Apr 2013 05:05:18 +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>
		<item>
		<title>Lawrence Lessig: We the People, and the Republic we must reclaim</title>
		<link>http://www.tateeskew.com/2013/04/05/lawrence-lessig-we-the-people-and-the-republic-we-must-reclaim/</link>
		<comments>http://www.tateeskew.com/2013/04/05/lawrence-lessig-we-the-people-and-the-republic-we-must-reclaim/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 21:45:47 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[other videos]]></category>
		<category><![CDATA[lawrence lessig]]></category>
		<category><![CDATA[lessig]]></category>
		<category><![CDATA[ted talk]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=1086</guid>
		<description><![CDATA[Lawrence has done wonderful things over the years with Creative Commons.]]></description>
				<content:encoded><![CDATA[<p><center><iframe src="http://embed.ted.com/talks/lawrence_lessig_we_the_people_and_the_republic_we_must_reclaim.html" width="500" height="750" frameborder="0" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></center></p>
<p>Lawrence has done wonderful things over the years with <a href="http://creativecommons.org/">Creative Commons</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2013/04/05/lawrence-lessig-we-the-people-and-the-republic-we-must-reclaim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jon Jandai &#8211; Life is easy. Why do we make it so hard?</title>
		<link>http://www.tateeskew.com/2013/04/03/jon-jandai-life-is-easy-why-do-we-make-it-so-hard/</link>
		<comments>http://www.tateeskew.com/2013/04/03/jon-jandai-life-is-easy-why-do-we-make-it-so-hard/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 03:21:21 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[other videos]]></category>
		<category><![CDATA[jon jandai]]></category>
		<category><![CDATA[ted talk]]></category>
		<category><![CDATA[tedx]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=1080</guid>
		<description><![CDATA[http://www.punpunthailand.org]]></description>
				<content:encoded><![CDATA[<p><center><iframe width="640" height="360" src="http://www.youtube.com/embed/21j_OCNLuYg?rel=0" frameborder="0" allowfullscreen></iframe></iframe></center></p>
<p><a href="http://www.punpunthailand.org" title="http://www.punpunthailand.org" target="_blank">http://www.punpunthailand.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2013/04/03/jon-jandai-life-is-easy-why-do-we-make-it-so-hard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ron Finley: A guerilla gardener in South Central LA</title>
		<link>http://www.tateeskew.com/2013/03/08/ron-finley-a-guerilla-gardener-in-south-central-la/</link>
		<comments>http://www.tateeskew.com/2013/03/08/ron-finley-a-guerilla-gardener-in-south-central-la/#comments</comments>
		<pubDate>Fri, 08 Mar 2013 15:48:52 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[permaculture]]></category>
		<category><![CDATA[food forest]]></category>
		<category><![CDATA[gardening]]></category>
		<category><![CDATA[gardens]]></category>
		<category><![CDATA[ron finley]]></category>
		<category><![CDATA[sustainability]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=1073</guid>
		<description><![CDATA[This is a wonderful talk from Ron Finley about &#8216;guerilla gardening&#8217;. Let&#8217;s get to planting, people!]]></description>
				<content:encoded><![CDATA[<p><center><iframe src="http://embed.ted.com/talks/ron_finley_a_guerilla_gardener_in_south_central_la.html" width="500" height="750" frameborder="0" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></center></p>
<p>This is a wonderful talk from Ron Finley about &#8216;guerilla gardening&#8217;.  Let&#8217;s get to planting, people!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2013/03/08/ron-finley-a-guerilla-gardener-in-south-central-la/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating Dynamic DNS updating with AWS Instances and Route53</title>
		<link>http://www.tateeskew.com/2013/03/06/automating-dynamic-dns-updating-with-aws-instances-and-route53/</link>
		<comments>http://www.tateeskew.com/2013/03/06/automating-dynamic-dns-updating-with-aws-instances-and-route53/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 06:11:27 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[computing]]></category>
		<category><![CDATA[amazon web services]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[route53]]></category>
		<category><![CDATA[systems engineering]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=986</guid>
		<description><![CDATA[Recently I&#8217;ve been building the underlying system platform for development of our distributed application on AWS. We do a lot of clustering using Storm and Hadoop, which means that we sometimes spin up hundreds of instances that may only live for a few hours during a run. Getting metrics, logs and all of those &#8216;must [...]]]></description>
				<content:encoded><![CDATA[<p><span class="largestartfont">R</span>ecently I&#8217;ve been building the underlying system platform for development of our distributed application on AWS.  We do a lot of clustering using <a href="http://storm-project.net/">Storm</a> and <a href="http://hadoop.apache.org/">Hadoop</a>, which means that we sometimes spin up hundreds of instances that may only live for a few hours during a run.  Getting metrics, logs and all of those &#8216;must haves&#8217; centralized has been part of this build out.  When working with large amounts of machines in short lived clusters, it becomes a real pain in the ass to use the built in DNS/naming mechanism/scheme that AWS provides by default.  Everything starts to look the same inside of your reporting/metrics/monitoring tools when working with the arbitrary names given to the instances.  Hence, this article.</p>
<p><span id="more-986"></span></p>
<p>If you are not aware, there are thousands of machine instances running in AWS and Amazon only has a limited number of IPv4 addresses in their block(s), so all of the virtual machines are provided with DHCP addresses via NAT inside Amazon’s network.  This means that most of the time when you reboot an instance it will come up with a new IP address/hostname, so the setup described below not only provides us with an easy to remember hostname, it also dynamically updates our Route53 DNS with the new hostname provided by Amazon.  One other reason you might use the information here is that Amazon limits the number of <a href="http://aws.amazon.com/ec2/#features">Elastic IPs</a> that you receive with your account (5).  You can <a href="http://aws.amazon.com/contact-us/eip_limit_request/">request more</a>, but with this setup and/or utilizing <a href="http://aws.amazon.com/elasticloadbalancing/">Elastic Load Balancing (ELB)</a> you won&#8217;t need to.</p>
<p>We are also going to make sure our script we use to update our DNS information uses the Name tag of the instance for the hostname.  This is a great way to set hostnames automatically with configuration management or your preferred tool for provisioning.  I use <a href="https://github.com/saltstack/salt-cloud">salt-cloud</a> to spin up instances and it automatically sets the Name tag to the name you provide when initiating your instance.  Perhaps there will be a post here about salt-cloud in the future.</p>
<p>It should be noted that the info below is specific to CentOS instances.  With a little massaging this can easily be adapted to your distribution of choice.  Let&#8217;s get started.</p>
<h3>First things first&#8230;Setup Route53 as your DNS Provider</h3>
<p>If you are a very large organization, you might only want to delegate a subdomain to Route53.  To do that, <a href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html">go here for direction</a> to make this happen.</p>
<p>If you are wanting Route53 to handle everything for your domain, it&#8217;s super easy to setup as well.  <a href="http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html">Go here for easy instructions</a> on how to do this.</p>
<h3>Setup IAM role and permissions for updating Route53</h3>
<p>We will want to setup a new user and group in <a href="http://aws.amazon.com/iam/">IAM</a> that will have specific permissions to update our DNS and read our Name tag.  Let&#8217;s create a group in IAM first.  I called my group dns-admin, but feel free to name your group whatever you want as long as you can remember what the group is for.  When you are creating the group, select &#8220;No Permissions&#8221; in the wizard when it asks about setting a policy.  Once you have the group created you need to add two policies to it.  The first policy described here is to give any user within the dns-admin group permission to read the tags associated with an instance.  Remember, we are going to use the Name tag of our instance to set our hostname.  The second policy will be used to give permissions to update Route53 with the correct information.</p>
<p>So, select the group you just created and go to the &#8220;Permissions&#8221; tab.  You will see a button to &#8220;Attach a Policy&#8221;.  Click it and select &#8220;Custom Policy&#8221;.  For the policy name, I used &#8216;describe-tags&#8217; for my first policy.  In the policy document area you will want to copy and paste the text from below:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="json"><div class="devcodeoverflow"><ol><li>{</li><li>&nbsp;&nbsp;"Statement": [</li><li>&nbsp;&nbsp;&nbsp;&nbsp;{</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Sid": "Stmt1358183399710",</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Action": [</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"ec2:DescribeTags"</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;],</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Effect": "Allow",</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Resource": [</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"*"</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</li><li>&nbsp;&nbsp;&nbsp;&nbsp;}</li><li>&nbsp;&nbsp;]</li><li>}</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Repeat the above process, but this time name your policy &#8216;edit-dns&#8217; and copy and paste the text from below in the policy document form field. NOTE: Make sure you change the text where it says YOUR_ZONE_ID with the zone id for the domain you are using in Route53.  To get the ID, just go to the Route53 web console, select the domain zone and you will see the Hosted Zone ID number in the right side column.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="json"><div class="devcodeoverflow"><ol><li>{</li><li>&nbsp;&nbsp; "Statement":[</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Action":[</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"route53:ChangeResourceRecordSets",</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"route53:GetHostedZone",</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"route53:ListResourceRecordSets"</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ],</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Effect":"Allow",</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Resource":[</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"arn:aws:route53:::hostedzone/YOUR_ZONE_ID"</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Action":[</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"route53:ListHostedZones"</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ],</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Effect":"Allow",</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Resource":[</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"*"</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</li><li>&nbsp;&nbsp; ]</li><li>}</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Now, let&#8217;s create the user that we will add to this group. I named my user the same as my group, &#8216;dns-admin&#8217;.  You will be asked to download the credentials/keys for this user as soon as you create the user.  If you&#8217;ve created users before, you know that this is the ONLY time you get this information, so make sure you download it and keep it safe.  We will need these keys in a minute.<br />
Once you download your keys, add the user to the group we just created and we are done with IAM.</p>
<h3>Fire up an instance</h3>
<p>Once you have Route53 and your IAM user/group setup to use with your domain, fire up and instance using your base AMI.  I&#8217;m sure you already have a base AMI that you configure with an init script or perhaps configuration management tools like Salt, Puppet or Chef.  Right?</p>
<p>After your instance comes up we need to log into the instance and grab the tools that we will utilize in our scripts.</p>
<h3>Tools we need</h3>
<ul id="linklist">
<li>cli53 &#8211; <a href="https://github.com/barnybug/cli53">https://github.com/barnybug/cli53</a></li>
<li>ec2 API Tools &#8211; <a href="http://aws.amazon.com/developertools/351">http://aws.amazon.com/developertools/351</a></li>
<li>ec2-metadata &#8211; <a href="http://aws.amazon.com/code/1825">http://aws.amazon.com/code/1825</a></li>
</ul>
<p></p>
<h3>Install and configure cli53</h3>
<p>cli53 is a great tool that interfaces easily with the Route53 API, making it easy to do updates.  The easiest way to install cli53 is to just use &#8216;pip&#8217;.  On CentOS machines, pip&#8217;s executable is &#8216;pip-python&#8217;. Other distributions just use the name &#8216;pip&#8217;. Run the following command to check if the &#8216;python-pip&#8217; package is installed.  If it&#8217;s not, the command will install it for you.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #7a0874; font-weight: bold;">command</span> <span style="color: #660033;">-v</span> pip-python <span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #c20cb9; font-weight: bold;">yum install</span> <span style="color: #660033;">-y</span> python-pip; <span style="color: #7a0874; font-weight: bold;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Now, the command to install &#8216;cli53&#8242; using pip.<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li>pip-python <span style="color: #c20cb9; font-weight: bold;">install</span> cli53</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Now, let&#8217;s configure the cli53 tool with our AWS keys and other settings.  We will create the the file &#8216;/etc/route53/config&#8217; and enter the details there.  Enter the following to create the file and set permissions correctly:<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>route53; <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">700</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>route53; <span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>route53<span style="color: #000000; font-weight: bold;">/</span>config; <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">600</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>route53<span style="color: #000000; font-weight: bold;">/</span>config</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Paste the following in the &#8216;/etc/route52/config&#8217; file.  Make sure to replace the text within the quotes for each setting with your own keys, domain/subdomain and TTL.  I use a very short TTL because sometimes instances will be initiated and shortly thereafter rebooted.  Use the keys that you downloaded earlier when we created the &#8216;dns-admin&#8217; user in IAM.<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="/etc/route53/config"><div class="devcodeoverflow"><ol><li># Set access and secret key of a user that </li><li>#only has access to the following AWS objects/privileges:</li><li>#"ec2:DescribeTags"</li><li>#"route53:ChangeResourceRecordSets",</li><li>#"route53:GetHostedZone",</li><li>#"route53:ListResourceRecordSets"</li><li>#"route53:ListHostedZones"</li><li></li><li>AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID_HERE"</li><li>AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY_HERE"</li><li>ZONE="THE_NAME_OF_YOUR_DOMAIN_OR_SUBDOMAIN"</li><li>TTL="30"</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<h3>Install and configure ec2 API Tools</h3>
<p>The ec2 API tools require Java.  The application servers I use require Oracle&#8217;s Java, so I bake that into my base AMI.  Therefore my $JAVA_HOME env variable is set accordingly.  Just make sure that if you use the openjdk or jre, that you point $JAVA_HOME to the correct place in the config below. So, install java however you like and then continue on.</p>
<p>Run the following commands to install the API tools to /opt/aws<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws</li><li><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">--q</span> http:<span style="color: #000000; font-weight: bold;">//</span>s3.amazonaws.com<span style="color: #000000; font-weight: bold;">/</span>ec2-downloads<span style="color: #000000; font-weight: bold;">/</span>ec2-api-tools.zip</li><li><span style="color: #c20cb9; font-weight: bold;">unzip</span> <span style="color: #660033;">-qq</span> ec2-api-tools.zip</li><li>rsync <span style="color: #660033;">-a</span> <span style="color: #660033;">--no-o</span> <span style="color: #660033;">--no-g</span> ec2-api-tools-<span style="color: #000000; font-weight: bold;">*/</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws<span style="color: #000000; font-weight: bold;">/</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Make sure to add &#8216;/opt/aws&#8217; to your PATH and set the following env variables.  You can do so by editing or creating the file &#8216;/etc/profile.d/aws.sh&#8217; and adding the following:<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">EC2_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws<span style="color: #000000; font-weight: bold;">/</span>ec2</li><li><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$EC2_HOME</span></li><li><span style="color: #000000; font-weight: bold;">do</span></li><li>&nbsp;&nbsp;<span style="color: #007800;">PATH</span>=<span style="color: #007800;">$i</span><span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #007800;">$PATH</span></li><li><span style="color: #000000; font-weight: bold;">done</span></li><li><span style="color: #007800;">PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws<span style="color: #000000; font-weight: bold;">/</span>:<span style="color: #007800;">$PATH</span></li></ol></div></pre><!--END_DEVFMTCODE--><br />
Source the &#8216;/etc/profile.d/aws.sh&#8217; file to make sure the PATH is added in your current session.<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #7a0874; font-weight: bold;">source</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile.d<span style="color: #000000; font-weight: bold;">/</span>aws.sh</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Also, as mentioned above, make sure the $JAVA_HOME is set.  I do this by creating the file &#8216;/etc/profile.d/java.sh&#8217; and adding the following for Oracle Java:<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #007800;">JAVA_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>java<span style="color: #000000; font-weight: bold;">/</span>default</li><li><span style="color: #7a0874; font-weight: bold;">export</span> JAVA_HOME</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<h3>Install and configure ec2-metadata</h3>
<p>The only thing we have to do to install &#8216;ec2-metadata&#8217; is to download it from the link above, place it in &#8216;/opt/aws&#8217; and make it executable. That&#8217;s it!<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws</li><li><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> http:<span style="color: #000000; font-weight: bold;">//</span>s3.amazonaws.com<span style="color: #000000; font-weight: bold;">/</span>ec2metadata<span style="color: #000000; font-weight: bold;">/</span>ec2-metadata</li><li><span style="color: #c20cb9; font-weight: bold;">chmod</span> +x ec2-metadata</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<h3>Create the script to update Route53 and set hostname</h3>
<p>Next on our list is to create the script we will use that will update Route53 and set our hostname based on the Name tag of our instance.  Create the file /usr/sbin/update-dns-route53 and paste the script printed below into the file.  Make sure to replace the YOUR_DOMAIN_HERE text with the domain you are using.  Also, make the file executable after saving it.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">#!/bin/sh</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;">#This script will get the Name tag of the instance from EC2 and apply it both as a CNAME record</span></li><li><span style="color: #666666; font-style: italic;">#in Route53 for the specified domain below and update the hostname on the machine and</span></li><li><span style="color: #666666; font-style: italic;">#in the hosts file.</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Make sure only root can run our script</span></li><li><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$(id -u)</span>&quot;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span></li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;This script must be run as root&quot;</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span></li><li><span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span></li><li><span style="color: #000000; font-weight: bold;">fi</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Load configuration</span></li><li>. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>route53<span style="color: #000000; font-weight: bold;">/</span>config</li><li>. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile.d<span style="color: #000000; font-weight: bold;">/</span>java.sh</li><li>. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile.d<span style="color: #000000; font-weight: bold;">/</span>aws.sh</li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Export access key ID and secret for our tools</span></li><li><span style="color: #7a0874; font-weight: bold;">export</span> AWS_ACCESS_KEY_ID</li><li><span style="color: #7a0874; font-weight: bold;">export</span> AWS_SECRET_ACCESS_KEY</li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Replace this with your domain</span></li><li><span style="color: #007800;">DOMAIN</span>=YOUR_DOMAIN_HERE</li><li>&nbsp;</li><li><span style="color: #007800;">HOSTNAME</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws<span style="color: #000000; font-weight: bold;">/</span>ec2<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>ec2-describe-tags \</li><li>&nbsp;&nbsp;<span style="color: #660033;">--filter</span> <span style="color: #ff0000;">&quot;resource-type=instance&quot;</span> \</li><li>&nbsp;&nbsp;<span style="color: #660033;">--filter</span> <span style="color: #ff0000;">&quot;resource-id=<span style="color: #007800;">$(/opt/aws/ec2-metadata -i | cut -d ' ' -f2)</span>&quot;</span> \</li><li>&nbsp;&nbsp;<span style="color: #660033;">--filter</span> <span style="color: #ff0000;">&quot;key=Name&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> -f5<span style="color: #7a0874; font-weight: bold;">&#41;</span></li><li>&nbsp;</li><li><span style="color: #007800;">IPV4</span>=<span style="color: #000000; font-weight: bold;">`/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>curl <span style="color: #660033;">-s</span> http:<span style="color: #000000; font-weight: bold;">//</span>169.254.169.254<span style="color: #000000; font-weight: bold;">/</span>latest<span style="color: #000000; font-weight: bold;">/</span>meta-data<span style="color: #000000; font-weight: bold;">/</span>public-ipv4<span style="color: #000000; font-weight: bold;">`</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Set the host name</span></li><li><span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">hostname</span> <span style="color: #007800;">$HOSTNAME</span>.<span style="color: #007800;">$DOMAIN</span></li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$HOSTNAME</span>.<span style="color: #007800;">$DOMAIN</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">hostname</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Set host name on Red Hat variants</span></li><li><span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span> <span style="color: #ff0000;">'/HOSTNAME/d'</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>network</li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">HOSTNAME</span>=<span style="color: #007800;">$HOSTNAME</span>.<span style="color: #007800;">$DOMAIN</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>network</li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Add fqdn to hosts file</span></li><li><span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">cat</span><span style="color: #000000; font-weight: bold;">&lt;&lt;</span>EOF <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>hosts</li><li><span style="color: #666666; font-style: italic;"># This file is automatically genreated by /usr/sbin/update-route53-dns script</span></li><li>127.0.0.1 localhost</li><li><span style="color: #007800;">$IPV4</span> <span style="color: #007800;">$HOSTNAME</span>.<span style="color: #007800;">$DOMAIN</span> <span style="color: #007800;">$HOSTNAME</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># The following lines are desirable for IPv6 capable hosts</span></li><li>::<span style="color: #000000;">1</span> ip6-localhost ip6-loopback</li><li>fe00::<span style="color: #000000;">0</span> ip6-localnet</li><li>ff00::<span style="color: #000000;">0</span> ip6-mcastprefix</li><li>ff02::<span style="color: #000000;">1</span> ip6-allnodes</li><li>ff02::<span style="color: #000000;">2</span> ip6-allrouters</li><li>ff02::<span style="color: #000000;">3</span> ip6-allhosts</li><li>EOF</li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Use command line scripts to get public hostname</span></li><li><span style="color: #007800;">PUBLIC_HOSTNAME</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws<span style="color: #000000; font-weight: bold;">/</span>ec2-metadata <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">'public-hostname:'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">' '</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Create a new CNAME record on Route 53, replacing the old entry if nessesary</span></li><li><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cli53 rrcreate <span style="color: #ff0000;">&quot;<span style="color: #007800;">$ZONE</span>&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$HOSTNAME</span>&quot;</span> CNAME <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PUBLIC_HOSTNAME</span>&quot;</span> <span style="color: #660033;">--replace</span> <span style="color: #660033;">--ttl</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$TTL</span>&quot;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Now that we have our script, we will want to run it at boot time every time the instance is started.  To do that, let&#8217;s put the following in &#8216;/etc/rc.local&#8217;<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="/etc/rc"><div class="devcodeoverflow"><ol><li>/bin/bash /usr/sbin/update-route53-dns 1> /tmp/updatedns 2>&1</li></ol></div></pre><!--END_DEVFMTCODE--><br />
Notice that we are redirecting the output to &#8216;/tmp/updatedns&#8217;.  I&#8217;ve done this so that if there is a problem with the image not updating it&#8217;s name, you can look in this file for errors.  Keep that in mind when getting this to work.</p>
<h3>Create &#8216;delete-dns-route53&#8242; script and initscript</h3>
<p>So, we&#8217;ll want to delete these entries each time the machine shuts down, so we need a delete script, too.  Create a new file &#8216;/usr/sbin/delete-dns-route53&#8242; and paste the following into it.  Also, make sure to make the file executable after saving it.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">#!/bin/sh</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># This script will delete the hostname from Route53 on shutdown of the machine</span></li><li><span style="color: #666666; font-style: italic;">#</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Make sure only root can run our script</span></li><li><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$(id -u)</span>&quot;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span></li><li><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;This script must be run as root&quot;</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span></li><li><span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span></li><li><span style="color: #000000; font-weight: bold;">fi</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Load configuration</span></li><li>. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>route53<span style="color: #000000; font-weight: bold;">/</span>config</li><li>. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile.d<span style="color: #000000; font-weight: bold;">/</span>java.sh</li><li>. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile.d<span style="color: #000000; font-weight: bold;">/</span>aws.sh</li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Export access key ID and secret for our tools</span></li><li><span style="color: #7a0874; font-weight: bold;">export</span> AWS_ACCESS_KEY_ID</li><li><span style="color: #7a0874; font-weight: bold;">export</span> AWS_SECRET_ACCESS_KEY</li><li>&nbsp;</li><li><span style="color: #007800;">HOSTNAME</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>aws<span style="color: #000000; font-weight: bold;">/</span>ec2<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>ec2-describe-tags \</li><li>&nbsp;&nbsp;<span style="color: #660033;">--filter</span> <span style="color: #ff0000;">&quot;resource-type=instance&quot;</span> \</li><li>&nbsp;&nbsp;<span style="color: #660033;">--filter</span> <span style="color: #ff0000;">&quot;resource-id=<span style="color: #007800;">$(/opt/aws/ec2-metadata -i | cut -d ' ' -f2)</span>&quot;</span> \</li><li>&nbsp;&nbsp;<span style="color: #660033;">--filter</span> <span style="color: #ff0000;">&quot;key=Name&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> -f5<span style="color: #7a0874; font-weight: bold;">&#41;</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># Delete the hostname from DNS on shutdown</span></li><li><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cli53 rrdelete <span style="color: #ff0000;">&quot;<span style="color: #007800;">$ZONE</span>&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$HOSTNAME</span>&quot;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>We want to make sure this delete script runs every time the machine is powered down, because every single time it&#8217;s powered down, could be it&#8217;s last and we don&#8217;t want our zone to become full of obsolete entries.  Create the file &#8216;/etc/init.d/removednsfromroute53&#8242; and add paste the following text in it:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">#!/bin/bash</span></li><li>&nbsp;</li><li><span style="color: #666666; font-style: italic;"># chkconfig: 35 10 10</span></li><li><span style="color: #666666; font-style: italic;"># description: Removed DNS entries from Route53</span></li><li><span style="color: #666666; font-style: italic;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li>&nbsp;</li><li>. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>functions</li><li><span style="color: #007800;">lockfile</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lock<span style="color: #000000; font-weight: bold;">/</span>subsys<span style="color: #000000; font-weight: bold;">/</span>removednsfromroute53</li><li>&nbsp;</li><li><span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;start<span style="color: #7a0874; font-weight: bold;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #007800;">$lockfile</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">;;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;stop<span style="color: #7a0874; font-weight: bold;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>delete-dns-route53 <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>deletedns <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$lockfile</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">;;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;restart<span style="color: #7a0874; font-weight: bold;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #007800;">$0</span> stop</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #007800;">$0</span> start</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">;;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: $0 {start|stop|restart|status}&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">;;</span></li><li><span style="color: #000000; font-weight: bold;">esac</span></li><li>&nbsp;</li><li><span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>As you can see, we call the &#8216;delete-dns-route53&#8242; script within the init script.<br />
Now, add it to the correct runlevels by issuing the following command:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li>chkconfig <span style="color: #660033;">--add</span> removednsfromroute53</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Well, there you have it&#8230;short and sweet, right?  You might now want to create a new AMI based on this instance for your new base image.  Moving forward if you spin up your instances with a Name tag, the name within the tag will be set as the hostname, the hosts file will be updated and a new CNAME will be created within Route53.  Get DNS&#8217;ing&#8230;or something like that!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2013/03/06/automating-dynamic-dns-updating-with-aws-instances-and-route53/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allan Savory: How to green the world&#8217;s deserts and reverse climate change</title>
		<link>http://www.tateeskew.com/2013/03/04/allan-savory-how-to-green-the-worlds-deserts-and-reverse-climate-change/</link>
		<comments>http://www.tateeskew.com/2013/03/04/allan-savory-how-to-green-the-worlds-deserts-and-reverse-climate-change/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 03:23:56 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[other videos]]></category>
		<category><![CDATA[permaculture]]></category>
		<category><![CDATA[allan savory]]></category>
		<category><![CDATA[holistic management]]></category>
		<category><![CDATA[sustainability]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=980</guid>
		<description><![CDATA[Want more information on holistic management. Go here: http://holisticmanagement.org/]]></description>
				<content:encoded><![CDATA[<p><center><iframe src="http://embed.ted.com/talks/allan_savory_how_to_green_the_world_s_deserts_and_reverse_climate_change.html" width="500" height="750" frameborder="0" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></center></p>
<p>Want more information on holistic management. Go here: <a href="http://holisticmanagement.org/" title="Holistic Management">http://holisticmanagement.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2013/03/04/allan-savory-how-to-green-the-worlds-deserts-and-reverse-climate-change/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Permaculture, where do you start?</title>
		<link>http://www.tateeskew.com/2013/03/02/permaculture-where-do-you-start/</link>
		<comments>http://www.tateeskew.com/2013/03/02/permaculture-where-do-you-start/#comments</comments>
		<pubDate>Sun, 03 Mar 2013 04:25:41 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[permaculture]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[food forest]]></category>
		<category><![CDATA[gardening]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[PDC]]></category>
		<category><![CDATA[permaculture design course]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=877</guid>
		<description><![CDATA[Just ask anyone that knows me and they will surely tell you that I am constantly spelling out the virtues of permaculture. After they hear my passionate ramblings, they are often as excited as I am about the possibilities it provides and they soon realize that it&#8217;s not a matter of &#8216;should they get involved&#8217;, [...]]]></description>
				<content:encoded><![CDATA[<p><span class="largestartfont">J</span>ust ask anyone that knows me and they will surely tell you that I am constantly spelling out the virtues of permaculture.  After they hear my passionate ramblings, they are often as excited as I am about the possibilities it provides and they soon realize that it&#8217;s not a matter of &#8216;should they get involved&#8217;, but a matter of &#8216;how to get involved&#8217;.  I&#8217;ve been getting this &#8216;how do I get started&#8217; question a lot lately, so I thought it was time to put some things in a post here so that I could point people to a single spot to branch out from.  This missive will not be an intro to permaculture itself, but rather a &#8220;getting started&#8221; post with resources to use to start educating yourself and taking action. </p>
<p>For those of you that don&#8217;t know what permaculture is, the definition of it changes ever so slightly depending on the person you are talking to in the ever growing community, but I particularly like this one:</p>
<p><strong>per·ma·cul·ture  /ˈpərməˌkəlCHər/</strong><br />
Noun:</p>
<blockquote><p>Permaculture is the study of the design of those sustainable or enduring systems that support human society, both agricultural &#038; intellectual, traditional &#038; scientific, architectural, financial &#038; legal. It is the study of integrated systems, for the purpose of better design &#038; application of such systems.</p></blockquote>
<p>At it&#8217;s core, permaculture adheres to three ethics:</p>
<ul>
<li>Earth care</li>
<li>People care</li>
<li>Fair share</li>
</ul>
<p>There are also twelve design principles involved.  You can see in the graphic below the three ethics in the middle and the twelve design principles circling them.</p>
<p><a href="http://tateeskew.s3.amazonaws.com/2013/03/PermaculturePrinciples.jpg" rel="lightbox[877]"><img src="http://tateeskew.s3.amazonaws.com/2013/03/PermaculturePrinciples.jpg" alt="Permaculture Ethics &amp; Principles" width="650" height="443" class="aligncenter size-full wp-image-924" /></a></p>
<p>The importance of all of this cannot be stressed enough.  Trust me that when I say that you will be infected by knowledge, ideas, process and action once you really start to educate yourself on all of these things.  During your education, self or otherwise, you will see examples of changing landscapes at massive scale that will invigorate you to no end.  You will see how simple observation and small actions can lead to major change. You will ask yourself, &#8220;Why hasn&#8217;t anyone pointed all of this out to me before?&#8221;. There will be a lot of moments where dots that were seemingly at odds, connect.  There will be what I like to call &#8220;lightbulb&#8221; moments happening at every page turn of a book on the subject, every click on a permaculture topic, or every video you take in.</p>
<p>A lot of what I will post here will be targeted at people who don&#8217;t necessarily have a lot of land to work with.  In essence, small scale permaculture that you can practice nearly anywhere.  There will be some posts in the future about large scale regenerative design, but for now we&#8217;ll get everyone excited about designing and creating these systems in neighborhoods and small lots.  Some of these resources will be posted just to get you excited and to show you what is possible by utilizing permaculture to it&#8217;s fullest extent.  This isn&#8217;t an exhaustive list by any means, but one to get you motivated and taking action in your local community.  For instance, I&#8217;ve not listed the original Permaculture: Designers Manual book by one of the founders of permaculture, Bill Mollison.  As it suggests, the manual is a textbook and will be a huge resource for you in the future, but for now let&#8217;s get you motivated!</p>
<h3>Permaculture resources to help get started</h3>
<ul id="linklist">
<h5>Video</h5>
<li><a href="http://youtu.be/H6b7zJ-hx_c">Redesigning Civilization &#8212; with Permaculture</a></li>
<li><a href="http://youtu.be/YBLZmwlPa8A">Green Gold &#8211; Documentary by John D. Liu</a></li>
<li><a href="http://youtu.be/ySydk4R77po">Peter Bane &#8211; How I&#8217;m Preparing for the Local Future: Permaculture</a></li>
<li><a href="http://youtu.be/ASNVqSEEk1U">Permaculture Research Institute Zaytuna Farm Tour &#8211; Apr/May 2012 w/ Geoff Lawton
<li><a href="http://www.youtube.com/watch?v=QhwTtbSYf68">Farming with Nature &#8211; A Case Study of Successful Temperate Permaculture w/ Sepp Holzer</a></li>
<li><a href="http://www.youtube.com/watch?v=kb_t-sVVzF0">Mark Shepard on Restoration Agriculture</a></li>
<li><a href="http://www.youtube.com/watch?v=_X-BMbLBozA">Permaculture Keyline Water Systems: Don Tipping @ Seven Seeds Farm</a></li>
<li><a href="http://archive.org/details/EstablishingAFoodForestThePermacultureWay">Establishing a Food Forest the Permaculture Way</a></li>
<li><a href="http://youtu.be/HEH5HVbVTb4">Backyard Permaculture</a></li>
<li><a href="http://www.youtube.com/watch?v=yScINihX_z8">The Agro Rebel w/ Sepp Holzer</a></li>
</ul>
<ul id="linklist">
<h5>Books</h5>
<li><a href="http://www.amazon.com/gp/product/1603580298/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1603580298&#038;linkCode=as2&#038;tag=theeskhom-20">Gaia&#8217;s Garden, Second Edition: A Guide To Home-Scale Permaculture</a><img src="http://www.assoc-amazon.com/e/ir?t=theeskhom-20&#038;l=as2&#038;o=1&#038;a=1603580298" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></li>
<li><a href="http://www.amazon.com/gp/product/0646418440/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0646418440&#038;linkCode=as2&#038;tag=theeskhom-20">Permaculture: Principles and Pathways Beyond Sustainability</a><img src="http://www.assoc-amazon.com/e/ir?t=theeskhom-20&#038;l=as2&#038;o=1&#038;a=0646418440" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></li>
<li><a href="http://www.amazon.com/gp/product/1590173139/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1590173139&#038;linkCode=as2&#038;tag=theeskhom-20">The One-Straw Revolution: An Introduction to Natural Farming (New York Review Books Classics)</a><img src="http://www.assoc-amazon.com/e/ir?t=theeskhom-20&#038;l=as2&#038;o=1&#038;a=1590173139" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></li>
<li><a href="http://www.amazon.com/gp/product/1604692707/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1604692707&#038;linkCode=as2&#038;tag=theeskhom-20">The Vegetable Gardener&#8217;s Guide to Permaculture: Creating an Edible Ecosystem</a><img src="http://www.assoc-amazon.com/e/ir?t=theeskhom-20&#038;l=as2&#038;o=1&#038;a=1604692707" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></li>
<li><a href="http://www.forestag.com/book.html">Restoration Agriculture: Perennial Permaculture for the Farm</a></li>
<li><a href="http://www.wholesystemsdesign.com/resilient-farm-homestead-book/">The Resilient Farm and Homestead: An Innovative Permaculture and Whole Systems Design Approach</a></li>
<li><a href="http://www.amazon.com/gp/product/1603583998/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1603583998&#038;linkCode=as2&#038;tag=theeskhom-20">Paradise Lot: Two Plant Geeks, One-Tenth of an Acre, and the Making of an Edible Garden Oasis in the City</a><img src="http://www.assoc-amazon.com/e/ir?t=theeskhom-20&#038;l=as2&#038;o=1&#038;a=1603583998" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></li>
</ul>
<ul id="linklist">
<h5>Websites</h5>
<li><a href="http://en.wikipedia.org/wiki/Permaculture" title="Permaculture: Wikipedia Entry">Permaculture: Wikipedia Entry</a></li>
<li><a href="http://www.permaculture.org/">The Permaculture Institute</a></li>
<li><a href="http://permacultureprinciples.com/">Permaculture Principles</a></li>
<li><a href="http://en.wikipedia.org/wiki/Bill_Mollison">Bill Mollison: Co-developer of permaculture</a></li>
<li><a href="http://en.wikipedia.org/wiki/David_Holmgren">David Holmgren: Co-developer of permaculture</a></li>
<li><a href="http://www.edibleforestgardens.com/">Edible Forest Gardens w/ Dave Jacke</a>
<li><a href="http://www.permies.com/forums">Permaculture forums at permies.com</a></li>
<li><a href="http://www.permacultureglobal.com/">Worldwide Permaculture Network</a></li>
</ul>
<ul id="linklist">
<h5>Permaculture design courses</h5>
<li>I must point out that one of the quickest ways to dive straight in is to take a permaculture design course (PDC).  These are intensive training courses taught by people who themselves at some point took a PDC and have a lot of information and knowledge to share.  If you are looking to take a course near middle Tennessee, my good friends Cliff Davis, Jennifer Albanese and Jessie Smith have courses setup quite frequently.  You can visit Cliff and Jen&#8217;s family business website here to register for a course: <a href="http://www.spiralridgepermaculture.com">Spiral Ridge Permaculture</a>
<p>Below you can find a list of other places that you can take a permaculture design course.
</li>
<li><a href="http://www.wholesystemsdesign.com/permaculture-design-course/">Whole Systems Design &#8211; Vermont</a></li>
<li><a href="http://siskiyoupermaculture.com/">Siskiyou Permaculture &#8211; Oregon</a></li>
<li><a href="http://midwestpermaculture.com/about/our-certification-courses/">Midwest Permaculture &#8211; Illinois</a></li>
<li><a href="http://www.regenerativedesign.org/">Regenerative Design Institute &#8211; Northern California</a></li>
<p>There are a number of other places offering permaculture design courses.  If you don&#8217;t see one in your area listed here, just search around and you will find one.  If you run a course and want it listed here, please <a href="http://www.tateeskew.com/contact/" title="Contact Tate">contact me</a>.
</ul>
<p>I genuinely hope that the information here moves you to action.  I know that nearly everyone I introduce these concepts to becomes engulfed with them. I&#8217;m quite available for your questions and love to share information.<br />
Do you have some resources that I should post here? <a href="http://www.tateeskew.com/contact/" title="Contact me">Contact me</a>, let me know and I will add it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2013/03/02/permaculture-where-do-you-start/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Records and Pipes. Perfect.</title>
		<link>http://www.tateeskew.com/2012/12/19/860/</link>
		<comments>http://www.tateeskew.com/2012/12/19/860/#comments</comments>
		<pubDate>Thu, 20 Dec 2012 03:13:20 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=860</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><a href="http://tateeskew.s3.amazonaws.com/2012/12/record_player.gif" rel="lightbox[860]"><img src="http://tateeskew.s3.amazonaws.com/2012/12/record_player.gif" alt="Smoking Record Playing" width="500" height="375" class="aligncenter size-full wp-image-861" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2012/12/19/860/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recording == Danger</title>
		<link>http://www.tateeskew.com/2012/11/26/855/</link>
		<comments>http://www.tateeskew.com/2012/11/26/855/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 17:57:55 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[images]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[recording]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=855</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><a href="http://tateeskew.s3.amazonaws.com/2012/11/recording_lion.jpg" rel="lightbox[855]"><img src="http://tateeskew.s3.amazonaws.com/2012/11/recording_lion.jpg" alt="" title="Recording lion" width="570" height="396" class="aligncenter size-full wp-image-856" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2012/11/26/855/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Ecology</title>
		<link>http://www.tateeskew.com/2012/11/18/open-source-ecology-2/</link>
		<comments>http://www.tateeskew.com/2012/11/18/open-source-ecology-2/#comments</comments>
		<pubDate>Sun, 18 Nov 2012 15:39:42 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[other videos]]></category>
		<category><![CDATA[ecology]]></category>
		<category><![CDATA[marcin jakubowski]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=845</guid>
		<description><![CDATA[I&#8217;ve written about Open Source Ecology a while back. I think it&#8217;s a super important project and I&#8217;m always keeping up with how things are progressing. They&#8217;ve recently created this video in hopes of landing a $100k prize from the Focus Forward competition. Enjoy the video and please vote if you enjoy what they are [...]]]></description>
				<content:encoded><![CDATA[<p><center><iframe src="http://player.vimeo.com/video/51764445" width="600" height="500" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></center></p>
<p>I&#8217;ve written about <a href="http://www.opensourceecology.org">Open Source Ecology</a> a <a href="http://www.tateeskew.com/2010/11/13/open-source-ecology/">while back</a>.  I think it&#8217;s a super important project and I&#8217;m always keeping up with how things are progressing.  They&#8217;ve recently created this video in hopes of landing a $100k prize from the Focus Forward competition.  Enjoy the video and please vote if you enjoy what they are doing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2012/11/18/open-source-ecology-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Homestead Land Searching</title>
		<link>http://www.tateeskew.com/2012/11/11/839/</link>
		<comments>http://www.tateeskew.com/2012/11/11/839/#comments</comments>
		<pubDate>Sun, 11 Nov 2012 18:40:36 +0000</pubDate>
		<dc:creator>tate.eskew</dc:creator>
				<category><![CDATA[images]]></category>
		<category><![CDATA[permaculture]]></category>
		<category><![CDATA[country life]]></category>
		<category><![CDATA[homesteading]]></category>
		<category><![CDATA[sustainability]]></category>
		<category><![CDATA[wooded dreams]]></category>

		<guid isPermaLink="false">http://www.tateeskew.com/?p=839</guid>
		<description><![CDATA[Last week we were out driving trying to find a possible site for our eco-village. A cold front was coming from the north and could be spotted through this hollow.]]></description>
				<content:encoded><![CDATA[<p><a href="http://tateeskew.s3.amazonaws.com/2012/11/autumn.jpg" rel="lightbox[839]"><img src="http://tateeskew.s3.amazonaws.com/2012/11/autumn-1024x576.jpg" alt="" title="Tennessee Autumn" width="1024" height="576" class="aligncenter size-large wp-image-840" /></a></p>
<p>Last week we were out driving trying to find a possible site for our eco-village.  A cold front was coming from the north and could be spotted through this hollow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tateeskew.com/2012/11/11/839/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
