Развертывание RoR cap с gitlab-runner застревает и не вызывает прохождения ответа - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть gitlab-runner, который я хотел бы использовать для развертывания моего приложения Ruby on Rails на сервере.Я использую функцию cap deploy из Capistrano Gem для развертывания на моем удаленном сервере.Когда я запускаю функцию cap deploy локально, она работает и завершается правильно, однако, когда я запускаю ее в моем gitlab-runner, он просто сидит и вращается, как только добирается до определенной точки, и в конечном итоге истекает время ожидания моего gitlab-runner при запуске этапа публикации.Я хотел бы, чтобы это работало правильно, поэтому, если у кого-то есть какие-либо идеи или они могут предложить руководство, я был бы очень признателен.

.gitlab-ci.yml

before_script:
  - ruby -v
  - whoami
  - which ruby
  - bundle install --quiet
  - RAILS_ENV=test bundle exec rake db:migrate --quiet

stages:
  - citest
  - security
  - lint
  - publish
  - sendnotice

Citest:
  stage: citest
  script:
    - rails t

Security:
  stage: security
  script:
    - bundle exec brakeman -z -q

Lint:
  stage: lint
  script:
    - bundle exec rubocop -a
    - bundle exec rubocop -P

Publish:
  stage: publish
  script:
    - eval `ssh-agent -s`
    - ssh-add
    - cap production deploy

SendNotice:
  stage: sendnotice
  script:
    - ruby deploy_notice.rb

gitlab-runner - config.toml

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "cilinux"
  url = "http://example.com/"
  token = "ssssssssssssssssssss"
  executor = "shell"
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

Вот мой вывод консоли gitlab-runner, он просто сидит и вращаетсяв последней строке

Running with gitlab-runner 11.7.0 (8bb608ff)
  on cilinux zzBcVZd6
Using Shell executor...
Running on proserver...
Cloning repository...
Cloning into '/home/ci/builds/zzBcVZd6/0/Library/csi'...
Checking out 78654903 as master...
Skipping Git submodules setup
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
$ whoami
ci
$ which ruby
/home/ci/.rvm/rubies/ruby-2.5.1/bin/ruby
$ bundle install --quiet
$ RAILS_ENV=test bundle exec rake db:migrate --quiet
$ eval `ssh-agent -s`
Agent pid 9096
$ ssh-add
Identity added: /home/ci/.ssh/id_rsa (/home/ci/.ssh/id_rsa)
$ cap production deploy
Skipping task `puma:restart'.
Capistrano tasks may only be invoked once. Since task `puma:restart' was previously invoked, invoke("puma:restart") at /home/ci/.rvm/gems/ruby-2.5.1/gems/capistrano3-puma-3.1.1/lib/capistrano/tasks/puma.rake:96 will be skipped.
If you really meant to run this task again, use invoke!("puma:restart")
THIS BEHAVIOR MAY CHANGE IN A FUTURE VERSION OF CAPISTRANO. Please join the conversation here if this affects you.
https://github.com/capistrano/capistrano/issues/1686
  INFO [62149be6] Running /usr/bin/env mkdir -p /tmp on 192.168.4.68
  INFO [17c17043] Finished in 0.039 seconds with exit status 0 (successful).
  INFO Uploading /tmp/git-ssh-CSI-production-ci.sh 100.0%
  INFO [2ea27bf0] Running /usr/bin/env chmod 700 /tmp/git-ssh-CSI-production-ci.sh on 192.168.4.68
  INFO [ec4b6bc5] Finished in 0.044 seconds with exit status 0 (successful).
  INFO [d0d40773] Running /usr/bin/env git ls-remote git@example.com:Library/csi.git HEAD on 192.168.4.68
  INFO [1c63f5ce] Finished in 5.555 seconds with exit status 0 (successful).
  INFO [0c2cdf20] Running /usr/bin/env mkdir -p /home/deploy/apps/CSI/shared /home/deploy/apps/CSI/releases on 192.168.4.68
  INFO [ec964bdd] Finished in 0.010 seconds with exit status 0 (successful).
  INFO [0ae11325] Running /usr/bin/env mkdir -p /home/deploy/apps/CSI/shared/public/assets on 192.168.4.68
  INFO [d9121d4f] Finished in 0.047 seconds with exit status 0 (successful).
  INFO [8806e1ba] Running /usr/bin/env mkdir -p /home/deploy/apps/CSI/shared/config on 192.168.4.68
  INFO [f3e1f3c4] Finished in 0.046 seconds with exit status 0 (successful).
  INFO The repository mirror is at /home/deploy/apps/CSI/repo
  INFO [40d9a02e] Running /usr/bin/env git remote set-url origin git@examplecom:mydomain/csi.git on 192.168.4.68
  INFO [8a0a2d6d] Finished in 0.047 seconds with exit status 0 (successful).
  INFO [4b634e41] Running /usr/bin/env git remote update --prune on 192.168.4.68
  INFO [0efa9ecf] Finished in 5.588 seconds with exit status 0 (successful).
  INFO [7cf384f1] Running /usr/bin/env mkdir -p /home/deploy/apps/CSI/releases/20190219192659 on 192.168.4.68
  INFO [089f6fd2] Finished in 0.045 seconds with exit status 0 (successful).
  INFO [79e639ea] Running /usr/bin/env git archive master | /usr/bin/env tar -x -f - -C /home/deploy/apps/CSI/releases/20190219192659 on 192.168.4.68
  INFO [2e47c81b] Finished in 0.060 seconds with exit status 0 (successful).
  INFO [132ffc7e] Running /usr/bin/env echo "78654903778db4079706dc5c990292c11fc3bfd6" > REVISION on 192.168.4.68
  INFO [e9a299c4] Finished in 0.045 seconds with exit status 0 (successful).
  INFO [61aebbb2] Running /usr/bin/env mkdir -p /home/deploy/apps/CSI/releases/20190219192659/config on 192.168.4.68
  INFO [c32f803c] Finished in 0.047 seconds with exit status 0 (successful).
  INFO [5de3f8d7] Running /usr/bin/env ln -s /home/deploy/apps/CSI/shared/config/master.key /home/deploy/apps/CSI/releases/20190219192659/config/master.key on 192.168.4.68
  INFO [fd68c3e6] Finished in 0.044 seconds with exit status 0 (successful).
  INFO [ae83c25d] Running /usr/bin/env mkdir -p /home/deploy/apps/CSI/releases/20190219192659/public on 192.168.4.68
  INFO [219cde3c] Finished in 0.043 seconds with exit status 0 (successful).
  INFO [8daea977] Running /usr/bin/env ln -s /home/deploy/apps/CSI/shared/public/assets /home/deploy/apps/CSI/releases/20190219192659/public/assets on 192.168.4.68
  INFO [776bd6d9] Finished in 0.045 seconds with exit status 0 (successful).
  INFO [9b6d224d] Running ~/.rvm/bin/rvm default do bundle install --path /home/deploy/apps/CSI/shared/bundle --jobs 4 --without development test --deployment --quiet on 192.168.4.68
  INFO [a7a6eab9] Finished in 12.598 seconds with exit status 0 (successful).
  INFO [aa1ce450] Running ~/.rvm/bin/rvm default do bundle exec rake assets:precompile on 192.168.4.68
  INFO [361e893b] Finished in 26.688 seconds with exit status 0 (successful).
  INFO [df357b56] Running /usr/bin/env mkdir -p /home/deploy/apps/CSI/releases/20190219192659/assets_manifest_backup on 192.168.4.68
  INFO [4b7c3340] Finished in 0.048 seconds with exit status 0 (successful).
  INFO [a7d45495] Running /usr/bin/env cp /home/deploy/apps/CSI/releases/20190219192659/public/assets/.sprockets-manifest-6c09bafc512e6d668d8d88812378e77c.json /home/deploy/apps/CSI/releases/20190219192659/assets_manifest_backup on 192.168.4.68
  INFO [b6ebf727] Finished in 0.047 seconds with exit status 0 (successful).
  INFO [deploy:migrate] Run `rake db:migrate`
  INFO [5e0d430c] Running ~/.rvm/bin/rvm default do bundle exec rake db:migrate on 192.168.4.68
  INFO [64374921] Finished in 7.839 seconds with exit status 0 (successful).
  INFO [3e852c97] Running /usr/bin/env ln -s /home/deploy/apps/CSI/releases/20190219192659 /home/deploy/apps/CSI/releases/current on 192.168.4.68
  INFO [10e08783] Finished in 0.048 seconds with exit status 0 (successful).
  INFO [36c88135] Running /usr/bin/env mv /home/deploy/apps/CSI/releases/current /home/deploy/apps/CSI on 192.168.4.68
  INFO [0408953b] Finished in 0.046 seconds with exit status 0 (successful).
  INFO Keeping 3 of 4 deployed releases on 192.168.4.68
  INFO [44ecd2da] Running /usr/bin/env rm -rf /home/deploy/apps/CSI/releases/20190219173006 on 192.168.4.68
  INFO [baa3970a] Finished in 0.149 seconds with exit status 0 (successful).
  INFO [b90baafa] Running ~/.rvm/bin/rvm default do bundle exec pumactl -S /home/deploy/apps/CSI/shared/tmp/pids/puma.state -F /home/deploy/apps/CSI/shared/puma.rb restart on 192.168.4.68
  INFO [bcbdb282] Finished in 1.102 seconds with exit status 0 (successful).
  INFO [da13ee51] Running /usr/bin/env echo "Branch master (at 78654903778db4079706dc5c990292c11fc3bfd6) deployed as release 20190219192659 by ci" >> /home/deploy/apps/CSI/revisions.log on 192.168.4.68
  INFO [6a780fb0] Finished in 0.046 seconds with exit status 0 (successful).


 //SITS AND SPINS HERE

cap deploy.rb

# frozen_string_literal: true

server '192.168.4.68', roles: %i[web app db], primary: true

set :repo_url,        'git@codelib.pennunited.com:PennUnited_Code_Library/csi.git'
set :application,     'CSI'
set :user,            'deploy'
set :puma_threads,    [4, 16]
set :puma_workers,    4

set :pty,             true
set :use_sudo,        false
set :stage,           :production
set :deploy_via,      :remote_cache
set :deploy_to,       "/home/#{fetch(:user)}/apps/#{fetch(:application)}"
set :puma_bind,       "unix://#{shared_path}/tmp/sockets/#{fetch(:application)}-puma.sock"
set :puma_state,      "#{shared_path}/tmp/pids/puma.state"
set :puma_pid,        "#{shared_path}/tmp/pids/puma.pid"
set :puma_access_log, "#{release_path}/log/puma.error.log"
set :puma_error_log,  "#{release_path}/log/puma.access.log"
set :ssh_options,     forward_agent: true, user: fetch(:user), keys: %w[~/.ssh/id_rsa.pub], keepalive: true
set :puma_preload_app, true
set :puma_worker_timeout, nil
set :puma_init_active_record, true # Change to true if using ActiveRecord

## Defaults:
set :branch,        :master
set :format,        :pretty
set :log_level,     :info
set :keep_releases, 3

## Linked Files & Directories (Default None):
set :linked_files, %w[config/master.key]
# set :linked_dirs,  %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}

namespace :puma do
  desc 'Create Directories for Puma Pids and Socket'
  task :make_dirs do
    on roles(:app) do
      execute "mkdir #{shared_path}/tmp/sockets -p"
      execute "mkdir #{shared_path}/tmp/pids -p"
    end
  end
namespace :deploy do
  desc "Make sure local git is in sync with remote."
  task :check_revision do
    on roles(:app) do
      unless `git rev-parse HEAD` == `git rev-parse origin/master`
        puts "WARNING: HEAD is not the same as origin/master"
        puts "Run `git push` to sync changes."
        exit
      end
    end
  end

  desc 'Initial Deploy'
  task :initial do
    on roles(:app) do
      before 'deploy:restart', 'puma:start'
      invoke 'deploy'
    end
  end

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      invoke 'puma:restart'
    end
  end

  before :starting,     :check_revision
  after  :finishing,    :compile_assets
  after  :finishing,    :cleanup
  after  :finishing,    :restart
end

before: start,: make_dirs end

1 Ответ

0 голосов
/ 02 июля 2019

Мне помогло удаление ключей, добавленных в ssh-agent (ssh-agent - k) после развертывания cap cap, работа перестала зависать

...