You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by cr...@apache.org on 2006/02/27 08:47:35 UTC

svn commit: r381280 - in /forrest/trunk: site-author/content/xdocs/tools/forrestbot.xml site-author/status.xml tools/forrestbot/core/deploy.xml

Author: crossley
Date: Sun Feb 26 23:47:30 2006
New Revision: 381280

URL: http://svn.apache.org/viewcvs?rev=381280&view=rev
Log:
Forrestbot deploy.scp workstage now uses keyfile/passphrase in preference,
then fallback to remote password.
Issue: FOR-818

Modified:
    forrest/trunk/site-author/content/xdocs/tools/forrestbot.xml
    forrest/trunk/site-author/status.xml
    forrest/trunk/tools/forrestbot/core/deploy.xml

Modified: forrest/trunk/site-author/content/xdocs/tools/forrestbot.xml
URL: http://svn.apache.org/viewcvs/forrest/trunk/site-author/content/xdocs/tools/forrestbot.xml?rev=381280&r1=381279&r2=381280&view=diff
==============================================================================
--- forrest/trunk/site-author/content/xdocs/tools/forrestbot.xml (original)
+++ forrest/trunk/site-author/content/xdocs/tools/forrestbot.xml Sun Feb 26 23:47:30 2006
@@ -19,7 +19,7 @@
 "http://forrest.apache.org/dtd/document-v12.dtd">
 <document>
   <header>
-    <title>Forrestbot</title>
+    <title>Forrestbot - automated building and deploying</title>
   </header>
 
   <body>
@@ -88,6 +88,9 @@
   <property name="deploy.scp.dest" 
       value="username@myhost.com:/var/www/mydomain/htdocs"/>
 
+  <!-- here we declare the ssh keyfile and passphrase in an external file -->
+  <import file="../deploy-settings.xml" optional="true"/>
+
   <!-- here we specify to use two notification implementations -->
   <target name="notify" depends="notify.local, notify.email"/>
 
@@ -469,14 +472,14 @@
         <section id="deploy.scp">
           <title>deploy.scp</title>
 
-          <p><code>${user.home}/.ssh/known_hosts</code> must properly
+          <p>The <code>${user.home}/.ssh/known_hosts</code> must properly
           recognize the host, so you should manually make an ssh connection to
           the host if you never have before.</p>
 
-          <p>Currently only using password-based scp. It would be trivial to add
-          key-based authentication (see
-          <link href="http://issues.apache.org/jira/browse/FOR-818">FOR-818</link>).
-          </p>
+          <p>If <code>${deploy.scp.keyfile}</code>is defined, then it will use
+          key-based authentication in preference. Otherwise it will use
+          <code>${deploy.scp.password}</code></p>
+
           <table>
             <tr>
               <th>Property</th>
@@ -500,13 +503,42 @@
             </tr>
 
             <tr>
+              <td>deploy.scp.keyfile</td>
+
+              <td>Location of the local file holding the private key.
+              Usually /home/me/.ssh/id_dsa or /home/me/.ssh/id_rsa
+              <br />
+              Note that the deploy.scp.passphrase must also be supplied.
+              </td>
+
+              <td></td>
+
+              <td>No. However, if this is not supplied then scp will fallback
+              to use the less secure deploy.scp.password</td>
+            </tr>
+
+            <tr>
+              <td>deploy.scp.passphrase</td>
+
+              <td>Local passphrase for your private key.</td>
+
+              <td></td>
+
+              <td>No. You will be prompted if it is not set.</td>
+            </tr>
+
+            <tr>
               <td>deploy.scp.password</td>
 
               <td>Password for user@host</td>
 
               <td></td>
 
-              <td>No. You will be prompted for it if it is not set.</td>
+              <td>No. You will be prompted if it is not set.
+              <br />
+              Not needed if using the preferred
+              deploy.scp.keyfile/deploy.scp.passphrase
+              </td>
             </tr>
           </table>
         </section>

Modified: forrest/trunk/site-author/status.xml
URL: http://svn.apache.org/viewcvs/forrest/trunk/site-author/status.xml?rev=381280&r1=381279&r2=381280&view=diff
==============================================================================
--- forrest/trunk/site-author/status.xml (original)
+++ forrest/trunk/site-author/status.xml Sun Feb 26 23:47:30 2006
@@ -130,7 +130,12 @@
         Added document to facilitate
         <link href="site:v0.80//upgrading_08">upgrading to v0.8</link>
       </action>
-      
+
+      <action context="code" type="update" dev="DC" fix-for="FOR-818">
+        Forrestbot deploy.scp workstage now uses keyfile/passphrase in preference,
+        then fallback to remote password.
+      </action>
+
       <action dev="TS" type="add" context="code"> New protocol / source factory 
         that is contacting the locationmap module to look up the source. Use it 
         like lm://resolve.contract.html.content-main for source resolving. 
@@ -286,6 +291,10 @@
 <!-- Please keep this action at the top -->
         Added document to facilitate
         <link href="site:v0.70//upgrading_07">upgrading to v0.7</link>
+      </action>
+      <action context="code" type="update" dev="DC" fix-for="FOR-818">
+        Forrestbot deploy.scp workstage now uses keyfile/passphrase in preference,
+        then fallback to remote password.
       </action>
       <action dev="DC" type="update" context="code" importance="high">
         Added new "clean" targets. Doing 'forrest clean-site' will remove

Modified: forrest/trunk/tools/forrestbot/core/deploy.xml
URL: http://svn.apache.org/viewcvs/forrest/trunk/tools/forrestbot/core/deploy.xml?rev=381280&r1=381279&r2=381280&view=diff
==============================================================================
--- forrest/trunk/tools/forrestbot/core/deploy.xml (original)
+++ forrest/trunk/tools/forrestbot/core/deploy.xml Sun Feb 26 23:47:30 2006
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-  Copyright 2005 The Apache Software Foundation or its licensors,
+  Copyright 2004-2006 The Apache Software Foundation or its licensors,
   as applicable.
 
   Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,6 +17,9 @@
 -->
 <project name="deploy">
 
+  <!-- ================================================================= -->
+  <!-- The deploy.local target                                           -->
+  <!-- ================================================================= -->
   <property name="deploy.local.dir" location="sites/${ant.project.name}"/>
 
   <target name="deploy.local" unless="build.failed" description="FB: Deploy to a local location">
@@ -34,7 +37,6 @@
   <!-- ================================================================= -->
   <!-- The deploy.ftp target                                             -->
   <!-- ================================================================= -->
-  <!-- properties for deploy.ftp -->
   <property name="deploy.ftp.server" value="localhost"/>
   <property name="deploy.ftp.user" value="anonymous"/>
   <property name="deploy.ftp.password" value="forrestbot@"/>
@@ -53,21 +55,51 @@
       </fileset>
     </ftp>
   </target>
-  <!-- ================================================================= -->
 
+  <!-- ================================================================= -->
+  <!-- The deploy.scp target                                             -->
+  <!-- ================================================================= -->
   <property name="deploy.scp.dest" value=""/>
   <target name="deploy.scp" unless="build.failed" description="FB: Deploy to a remote location via scp">
     <if>
+      <isset property="deploy.scp.keyfile"/>
+      <then>
+        <antcall target="deploy.scp-with-keyfile"/>
+      </then>
+      <else>
+        <antcall target="deploy.scp-with-password"/>
+      </else>
+    </if>
+  </target>
+  <target name="deploy.scp-with-keyfile">
+    <if>
+      <not><isset property="deploy.scp.passphrase"/></not>
+      <then>
+        <input addproperty="deploy.scp.passphrase"
+            message="Enter local passphrase for key to enable scp to ${deploy.scp.dest}:"/>
+      </then>
+    </if>
+    <scp todir="${deploy.scp.dest}"
+        keyfile="${deploy.scp.keyfile}" passphrase="${deploy.scp.passphrase}">
+      <fileset dir="${build.site-dir}"/>
+    </scp>
+  </target>
+  <target name="deploy.scp-with-password">
+    <if>
       <not><isset property="deploy.scp.password"/></not>
       <then>
-        <input addproperty="deploy.scp.password" message="Enter password for scp to ${deploy.scp.dest}:"/>
+        <input addproperty="deploy.scp.password"
+            message="Enter remote password to enable scp to ${deploy.scp.dest}:"/>
       </then>
     </if>
     <scp todir="${deploy.scp.dest}" password="${deploy.scp.password}">
-     <fileset dir="${build.site-dir}"/>
+      <fileset dir="${build.site-dir}"/>
     </scp>
   </target>
-  
+
+  <!-- ================================================================= -->
+  <!-- The deploy.cvs target                                             -->
+  <!-- ================================================================= -->
   <property name="deploy.cvs.user" value="anoncvs"/>
   <property name="deploy.cvs.password" value="anoncvs"/>
   <property name="deploy.cvs.root" value="/home/cvs"/>
@@ -106,7 +138,9 @@
     </exec>
   </target>
 
-
+  <!-- ================================================================= -->
+  <!-- The deploy.svn target                                             -->
+  <!-- ================================================================= -->
   <property name="deploy.svn.user" value=""/>
   <property name="deploy.svn.password" value=""/>
   <property name="deploy.svn.url" value=""/>
@@ -129,7 +163,7 @@
       <fileset dir="${build.site-dir}"/>
     </copy>
     
-    <!-- add new files to CVS -->
+    <!-- add new files to SVN -->
     <!-- svnadd doesn't work (it doesn't change the working directory properly) -->
     <exec executable="svn" dir="${deploy.svn.svn-dir}" output="${deploy.svn.svn-filestoadd}" failonerror="true">
       <arg value="status"/>