Updated Installation (markdown)
authorTodd Lyons <tlyons@ivenue.com>
Wed, 13 Nov 2013 14:45:47 +0000 (06:45 -0800)
committerTodd Lyons <tlyons@ivenue.com>
Wed, 13 Nov 2013 14:45:47 +0000 (06:45 -0800)
Installation.md

index 1c910cef887c0220d84bcdf86238e5935ac07eab..61c6a0a74e4261d5a77db87e1dcd0105e7d56948 100644 (file)
@@ -37,10 +37,17 @@ This will create the repo checkout in the directory *~/code/*.
 export PATH="/usr/local/bin:/sbin:/usr/sbin:$PATH"
 $HOME/code/run_cron.sh --run-all $@
 </code></pre>
-Then I make my cronjob call: `6 * * * * $HOME/bin/build_farm.sh`
+Then I make my cronjob call: `6 * * * * $HOME/bin/build_farm.sh` .... but ...
 20. My cronjob ran great for a couple weeks.  Then another problem popped up running the cron job in that the test portion suddenly started failing with an odd error:
 <pre><code>** runtest error: Failed to open /dev/tty: No such device or address</code></pre>
-This is not a sudo issue, this is because the cron daemon does not give a tty to the cronjob that it starts.  To fix this, I used an old ssh trick to start my *build_farm.sh* script:
+This is not a sudo issue.  This is happening because the cron daemon does not give a tty to the cronjob that it starts.  (How the heck did it ever work?)  The runtest script needs a tty in normal operation.  To fix this, I used an old trick of ssh'ing to localhost with the *-tt* option to **force** allocation of a local tty when starting the *build_farm.sh* script.  To do this, you need to configure the **farm** user to use key-based authentication with its own key.  Assuming you have not generated an ssh key yet:
+<pre><code># Press Enter to use defaults for all questions in
+# next command, including no password
+ssh-keygen -t dsa
+cat .ssh/id_dsa.pub >> .ssh/authorized_keys
+# Do the following command once to accept the new host key
+ssh farm@localhost</code></pre>
+Once that works properly, then the cron command changes to:
 <pre><code>6 * * * * ssh -tt farm@localhost $HOME/bin/build_farm.sh</code></pre>
 
 ## Multiple build clients on one machine