I changed my db user to be the same as my app/web user, and that worked.
But, this creates more questions.
I was under the impression that it was only going to try to upload it by
user two, if it failed under user one. From what I could tell of my log, it
failed on the first two roles (app/web) and then succeeded under the db
role.
Are you saying that, if you say to do something with all roles, then it's
going to do that task with ALL roles, even if it can do it with the first
one? Here is the task in question from the git.rake file:
desc 'Upload the git wrapper script, this script guarantees that we can
script git without getting an interactive prompt'
task :wrapper do
on release_roles :all do
execute :mkdir, "-p", "#{fetch(:tmp_dir)}/#{fetch(:application)}/"
upload! StringIO.new("#!/bin/sh -e\nexec /usr/bin/ssh -o
PasswordAuthentication=no -o StrictHostKeyChecking=no \"$@\"\n"),
"#{fetch(:tmp_dir)}/#{fetch(:application)}/git-ssh.sh"
execute :chmod, "+x",
"#{fetch(:tmp_dir)}/#{fetch(:application)}/git-ssh.sh"
end
end
The way I understand what you're telling me is, it's executing the task
under EACH of the "release_roles". Why? It makes no freaking sense to do
the same thing with multiple logins. If the app/web user has permissions to
do what it needs to do, why would it possibly do the same thing with the db
role?
How do I determine what the release roles are, by the way?
Thanks!
On Monday, April 21, 2014 3:30:45 PM UTC-5, Bruno Sutic wrote:
>
> Hey,
> hm.. that's gotta be frustrating..
> So hey - how far along did you go with this issue?
> https://github.com/capistrano/capistrano/issues/687
>
> That issue seems to indicate the problem:
> - you're using 2 separate users for web/app and db group
> - user 1 uploads the git-ssh.sh file and "chmod's" it.
> - user 2 uploads the git-ssh.sh file. Things break apart here because file
> already exists (created by/for user 1). The trace provided above indicates
> this happens: see it fails just after trying to upload git-ssh.sh script
> *for the second time*.
>
> How about you first try doing everything with 1 user and see what happens?
>
> On Monday, April 21, 2014 5:16:29 PM UTC+2, Doug Hall wrote:
>>
>> I can ssh into my server and manually create the /tmp/<application>
>> folder with my app/web role. However, when I try to do >cap staging
>> git:check (which does the same thing), it attempts and fails to use my
>> app/web role to create this folder. It succeeds with the db role, but then
>> fails when attempting to use the /tmp/<application>/.git-ssh.sh at the end
>> of the script. (See below) Both my app/web and db roles are members of the
>> same (deploy) group.
>>
>> I then simply manually created the /tmp/<application> folder on the
>> server, to make sure that the folder's owner and group settings would
>> permit executing the ./git-ssh.sh file, whomever created it. This didn't
>> work, either. I'd appreciate any help.
>>
>>
>> I found this: <https://github.com/capistrano/capistrano/issues/687>, but
>> it wasn't helpful. Something's got to be wrong with my ssh setup or
>> something. Here are my ssh options:
>>
>> set :ssh_options, {
>> forward_agent: true,
>> port: ####
>> }
>>
>> Yes, I've done the ssh-add on my Mac.
>>
>> Thanks!
>>
>>
>>
>> Versions:
>>
>> - Ruby: 2.1.0
>> - Capistrano: 3.2.0
>> - Rake / Rails / etc : 10.2.2
>>
>> Platform:
>>
>> - Working on.... Mac
>> - Deploying to... Ubuntu 12.0.4 (LTS) server
>>
>> Logs:
>>
>> $ cap staging git:check --trace
>> [9:23:58]
>> ** Invoke staging (first_time)
>> ** Execute staging
>> ** Invoke load:defaults (first_time)
>> ** Execute load:defaults
>> ** Invoke rbenv:validate (first_time)
>> ** Execute rbenv:validate
>> DEBUG [fa95292a] Running /usr/bin/env [ ! -d /usr/local/bin ] on
>> apps2.aidt.edu
>> DEBUG [fa95292a] Command: [ ! -d /usr/local/bin ]
>> DEBUG [f90faa17] Running /usr/bin/env [ ! -d /usr/local/bin ] on
>> apps2.aidt.edu
>> DEBUG [f90faa17] Command: [ ! -d /usr/local/bin ]
>> DEBUG [fa95292a] Finished in 0.097 seconds with exit status 1 (failed).
>> DEBUG [f90faa17] Finished in 0.167 seconds with exit status 1 (failed).
>> ** Invoke rbenv:map_bins (first_time)
>> ** Execute rbenv:map_bins
>> ** Invoke bundler:map_bins (first_time)
>> ** Execute bundler:map_bins
>> ** Invoke git:check (first_time)
>> ** Invoke git:wrapper (first_time)
>> ** Execute git:wrapper
>> INFO [f6132a7c] Running /usr/bin/env mkdir -p /tmp/j3/ on apps2.aidt.edu
>> INFO [e631d419] Running /usr/bin/env mkdir -p /tmp/j3/ on apps2.aidt.edu
>> DEBUG [f6132a7c] Command: ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.1.0
>> /usr/bin/env mkdir -p /tmp/j3/ )
>> DEBUG [e631d419] Command: ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.1.0
>> /usr/bin/env mkdir -p /tmp/j3/ )
>> INFO [f6132a7c] Finished in 0.108 seconds with exit status 0
>> (successful).
>> DEBUG Uploading /tmp/j3/git-ssh.sh 0.0%
>> INFO Uploading /tmp/j3/git-ssh.sh 100.0%
>> INFO [06c59e05] Running /usr/bin/env chmod +x /tmp/j3/git-ssh.sh on
>> apps2.aidt.edu
>> DEBUG [06c59e05] Command: ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.1.0
>> /usr/bin/env chmod +x /tmp/j3/git-ssh.sh )
>> INFO [06c59e05] Finished in 0.010 seconds with exit status 0
>> (successful).
>> INFO [e631d419] Finished in 0.173 seconds with exit status 0
>> (successful).
>> DEBUG Uploading /tmp/j3/git-ssh.sh 0.0%
>> cap aborted!
>> scp: /tmp/j3/git-ssh.sh: Permission denied
>>
>>
--
You received this message because you are subscribed to the Google Groups
"Capistrano" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web, visit
https://groups.google.com/d/msgid/capistrano/b71ea8eb-e268-494a-90d7-a703c28fcf81%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.