Я хотел бы развернуть свое приложение, используя capistrano.
Я могу подключиться к серверу, используя ssh my_app_stag
, но когда я пытаюсь docker-compose run web cap staging deploy
, я получаю эту ошибку:
D, [2018-09-21T11: 46: 40.858453 # 1] DEBUG - net.ssh.authentication.agent [ac989c]: подключение к ssh-agent
E,[2018-09-21T11: 46: 40.858662 # 1] ОШИБКА - net.ssh.authentication.agent [ac989c]: не удалось подключиться к ssh-agent: агент не настроен
E, [2018-09-21T11: 46: 40.859037 # 1] ОШИБКА - net.ssh.authentication.session [3f9c0e0cac1c]: сбой всех методов авторизации (пробный publickey) (обратная трассировка ограничена для импортированных задач) cap прерван!
SSHKit ::Runner :: ExecuteError: Исключительная ситуация при выполнении от имени ubuntu@34.244.167.85: Ошибка аутентификации для пользователя ubuntu@34.244.167.85
Причина: Net :: SSH :: AuthenticationFailed: Ошибка аутентификации для пользователя ubuntu@34.244.167.85
Задачи: TOP => rvm: hook (Просмотр полной трассировки при запуске задачи с --trace)
Я использую ключ pem для аутентификации, который находится в .ssh/app_name.pem
(этот ключ был включен в репозиторий, когда я клонировал приложение.Так что я не сгенерировал его сам)
ssh / config
Host my_app_stag
ForwardAgent yes
Hostname my_Ip_adress
User ubuntu
IdentityFile /Users/my_name/.ssh/app_name.pem
deploy.rb
lock '3.10.0'
set :rvm_ruby_version, '2.3.3'
set :default_stage, 'staging'
set :stages, %w(staging production)
set :application, 'app_name'
set :repo_url, 'git@github.com:my_account/app_name.git'
set :full_app_name, "#{fetch(:application)}"
set :user, 'ubuntu'
set :use_sudo, false
# Default branch is :master
set :branch, fetch(:branch, "master")
# Default deploy_to directory is /var/www/my_app_name
set :deploy_to, "/var/www/apps/#{fetch(:full_app_name)}"
# Default value for :scm is :git
set :ssh_options, {
auth_methods: %w[publickey],
keys: %w(~/.ssh/app_name.pem),
:verbose => :debug
}
set :use_agent, false
set :pty, true
[]).push('config/database.yml', 'config/secrets.yml')
set :linked_files, %w{config/database.yml config/unicorn_init.sh config/unicorn.rb log/session.secret}
set :linked_dirs, %w{log tmp/pids public/assets public/images/promotions public/images/logo public/images/offers public/images/vehicules public/import_logs sitemaps}
# Default value for keep_releases is 5
set :keep_releases, 5
set :bundle_bins, %w{gem rake ruby}
set(:config_files, %w(
nginx.conf
database.yml
unicorn.rb
unicorn_init.sh
))
set(:executable_config_files, %w(
unicorn_init.sh
))
set(:symlinks, [
{
source: "nginx.conf",
link: "/etc/nginx/sites-enabled/#{fetch(:full_app_name)}"
},
{
source: "unicorn_init.sh",
link: "/etc/init.d/unicorn_#{fetch(:full_app_name)}"
}
])
# set :linked_dirs, %w(public/system log tmp)
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp', 'vendor/bundle', 'public/system')
staging.rb
server 'ip_server', user: 'ubuntu', roles: %w(app db web), primary: true
set :stage, :staging
set :rails_env, 'staging'
set :branch, 'develop'
Я пробовал эту статью , но она все еще не работает.