Kasia Gogolek
Kasia Gogolek

Reputation: 3414

Webistrano stuck on deploy:update_code

I've been trying to set up webistrano on one of our servers. Everything went well, until I tried deploying my set up. Webistrano is currenlty set up to live on the test server, so I want it to deploy to 127.0.0.1

The configuration contains valid user, webistrano, that should have access to /home/webistrano/.subversion/servers

the password for that user is correct. Could someone shed some light as to what might be going wrong with it?

*** SSH options: setting ssh_port to: 22
*** LOCAL SCM ERROR: svn: warning: Can't open file '/home/webistrano/.subversion/servers': Permission denied
  * executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
  * executing "svn checkout -q --username webistrano --password XXXXXXXX --no-auth-cache  -r27687 http://server.com/repos/server/clients/site/trunk     /var/www/vhosts/server.com/releases/20121001183038 && (echo 27687 > /var/www/vhosts/server.com/releases/20121001183038/REVISION)"
    servers: ["127.0.0.1"]
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/vhosts/server.com/releases/20121001183038; true"
servers: ["127.0.0.1"]
 ** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: 127.0.0.1 (Errno::EACCES: Permission denied - connect(2))
*** connection failed for: 127.0.0.1 (Errno::EACCES: Permission denied - connect(2))

debugging with puts system('id') in deployer.rb returns

uid=500(webistrano) gid=500(webistrano) groups=500(webistrano) context=unconfined_u:system_r:httpd_t:s0

and ls -all /home/webistrano returns:

drwxrwxr-x. 3 webistrano webistrano 4096 Sep 27 16:59 .subversion

ls -all /home/webistrano/.subversion returns:

drwxrwxr-x. 3 webistrano webistrano 4096 Oct  1 20:02 .
drwx------. 4 webistrano webistrano 4096 Oct  1 22:14 ..
drwx------. 6 webistrano webistrano 4096 Sep 27 16:59 auth
-rw-rw-r--. 1 webistrano webistrano 6866 Sep 27 16:59 config
-rw-rw-r--. 1 webistrano webistrano 4276 Sep 27 16:59 README.txt
-rw-rw-r--. 1 webistrano webistrano 7674 Oct  1 20:02 servers

Which shows that servers should be fully readable by everyone? What's going on?

Upvotes: 0

Views: 991

Answers (1)

Kasia Gogolek
Kasia Gogolek

Reputation: 3414

It turns out this was an issue with Passenger. Phusion Passenger is supposed to run as the user who owns conf/environment.conf (which in my case was webistrano). Displaying the user id also showed webistrano, but if I changed it to run as nobody, the svn error stopped appearing. I was unable to svn export the code though, probably because nobody does not have a home directory.

I ended up running webistrano through mongrel, and starting it by doing:

$ su - webistrano

to make sure that the correct home environment is loaded and all the permissions are correct. It works perfect now . Hope this helps somebody

Upvotes: 1

Related Questions