Rory,
Always good to see people pushing the boundaries, for deploying PHP you may
want to take a look at my railsless deploy gem; it's the default deploy
recipe, with all the rails-ish bits like migrations, mongrel, restart, etc
removed - you can find it on github [1].

With regard to your problem deploying from Hudson, I'm not familiar with the
technology; but I suspect the problem has to do with whos keys it is using.

Depending how Hudson is configured, I would expect cron tasks linked with it
to run as your Apache (or other web server, of course) user (usually www or
nobody) - or root.

With this in mind, you might be able to try something like this:

[r...@workstation]$ ssh w...@hudson 'cd /app/directory && cap deploy'

That is as close to the cron environment for that user as you can get over
SSH, by doing that - you'll be using a non-login shell, and not relying on
settings in any files like /etc/profile or similar, and also subject to any
curious permissions your machine may have with regard to non-login
processes.

You may find that your www,root and nobody users, whichever you need to run
the job as... have a non-login shell, check your O/S docs for how to change
that, and make sure there's a good way to set it back when you are done
debugging!

Please come back if you have any problems, frustratingly this probably isn't
even a Capistrano problem, but don't let that stop you asking for help,
we're getting used to supporting SSH configuration issues here :-D

Thanks for pushing the envelope!

-- Lee Hambley

Twitter: @leehambley
Blog: http://lee.hambley.name/
Working with Rails: http://is.gd/1s5W1


2009/8/6 Rory Gibson <[email protected]>

>
> Hi guys,
> We're using Capistrano for a few things here at Technophobia, and I'm
> aware that I'm pushing the boundaries with this usage, but please bear
> with me, it's got us all stumped here.
>
> Basically, I'm attempting to use Cap to deploy a PHP application from
> with the Hudson CI server.
>
> I have a cap script which works perfectly from the command line, using
> the "copy" method to tar up, copy via sftp and unpack the PHP app on
> the remote server.
> SSH Keys are set up correctly so that I never have to enter a
> password.
>
> However, when I set up a Hudson job to run the cap script (by cd'ing
> to the directory containing the Capfile and issuing cap deploy), I get
> a "Net::SSH::AuthenticationFailed" error.
>
> This may or may not be caused by the 'stty: invalid argument' messages
> above; however there are no stty commands in any of /etc/profile, /etc/
> bash.bashrc, ~/.bashrc or ~/.profile so I can't work out what that's
> about.
>
> Also, I'm not sure if the apparent 'Password:' prompt should be there
> even though I'm using SSH keys; it certainly doesn't appear if I run
> the script from the command line.
>
> Logs are below (slightly anonymised), huge thanks if anyone can help
> me out.
>
> Cheers,
> Rory Gibson
>
> ------- Hudson console output ------------
> Started by user anonymous
> Updating http://subversion/repos/TSB_Holly-Sugar/trunk
> At revision 131
> no change for http://subversion/repos/TSB_Holly-Sugar/trunk since the
> previous build
> [workspace] $ /bin/sh -xe /usr/local/tomcat/temp/
> hudson2895655324317047058.sh
> + cd '/home/tomcat/.hudson/jobs/Hudson SugarCRM Deployment/workspace/
> Sugar/deploy'
> + /var/lib/gems/1.8/bin/cap sandbox deploy
>  * executing `sandbox'
>    triggering start callbacks for `deploy'
>  * executing `multistage:ensure'
>  * executing `deploy'
>    triggering before callbacks for `deploy'
>  * executing `local:log_config'
> =========================================================
> Loading Sandbox environment
>  CRM host        : rory-sandbox
>  Remote copy tmp : /home/deploy/tmp
>  Deploy to       : /home/deploy/sites/crm.rory-sandbox/non-secure/
> htdocs
>  DB name         : sugarcrm
>  DB user         : tsb-dev
>  DB admin name   : sugarcrm
>  DB admin user   : tsb-dev
> =========================================================
>  * executing `deploy:update'
>  ** transaction: start
>  * executing `deploy:update_code'
>    executing locally: "svn info
>
> http://subversion.technophobia.int/repos/TSB_Holly-Sugar/trunk/SugarCE-5.2.0e/
> --username hudson --password XXPASSWORD_ELIDEDXX --no-auth-cache  -
> rHEAD"
>  * refreshing local cache to revision 124 at /tmp/sugar_cap_cache
>    executing locally: svn update -q --username hudson --password
> GamCaFrouft4 --no-auth-cache  -r124 /tmp/sugar_cap_cache
>  * copying cache to deployment staging area /tmp/sugar_copy/
> 20090806100323
>    compressing /tmp/sugar_copy/20090806100323 to /tmp/sugar_copy/
> 20090806100323.tar.gz
>    executing locally: tar czf 20090806100323.tar.gz 20090806100323
>    servers: ["rory-sandbox"]
> Password: stty: standard input: Invalid argument
> stty: standard input: Invalid argument
> stty: standard input: Invalid argument
>
> *** [deploy:update_code] rolling back
>  * executing "rm -rf /home/deploy/sites/crm.rory-sandbox/non-secure/
> htdocs/releases/20090806100323; true"
>    servers: ["rory-sandbox"]
>  ** [deploy:update_code] exception while rolling back:
> Capistrano::ConnectionError, connection failed for: rory-sandbox
> (Net::SSH::AuthenticationFailed: deploy)
> connection failed for: rory-sandbox (Net::SSH::AuthenticationFailed:
> deploy)
> Finished: FAILURE
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.co.uk/group/capistrano?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to