0

先週奇跡的に作成したはずのものを再現しようとして、自分自身とリソースを使い果たしました。

Ubuntu 12.10 x64を実行しているEC2マイクロインスタンスを使用して、JenkinsとCapistranoを使用してCIのテストサーバーを作成しています。

先週行っていたことを「理解」でき、サーバーが機能しているように見えましたが、EC2インスタンスへの接続を再作成して、コードをgithubからそのインスタンスにプッシュすることができませんでした。

「capdeploy」を実行すると、次のようになります。

jenkins@ip-10-170-102-174:/var/www/config$ cap deploy

* 2013-02-24 11:05:11 deploy' * 2013-02-24 11:05:11 executingdeploy:update'の実行**トランザクション:開始* 2013-02-24 11:05:11 deploy:update_code' executing locally: "git ls-remote git@github.com:example/example.git master" command finished in 1871ms * executing "git clone -q git@github.com:example/example.git /var/www/example/releases/20130224110513 && cd /var/www/example/releases/20130224110513 && git checkout -q -b deploy de26b44bba59e1aa04dc3cf9dbec9dc4d9e4bdf3 && (echo de26b44bba59e1aa04dc3cf9dbec9dc4d9e4bdf3 > /var/www/example/releases/20130224110513/REVISION)" servers: ["example.us-west-1.compute.amazonaws.com"] *** [deploy:update_code] rolling back * executing "rm -rf /var/www/example/releases/20130224110513; true" servers: ["example.us-west-1.compute.amazonaws.com"] ** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: example.us-west-1.compute.amazonaws.com (NoMethodError: undefined method"publickey":String)接続の実行に失敗しました:example.us- west-1.compute.amazonaws.com(NoMethodError:undefined method `each'for" publickey ":String)

これが私のdeploy.rbファイルです:

set :app_name, "example"
set :location, "example"
set :application, "example"
set :repository, "git@github.com:example/example.git"
set :user, "jenkins"
set :runner, "jenkins"
set :branch, "master"
set :port, 22
set :deploy_to, "/var/www/#{application}"
set :scm, "git"

ssh_options[:forward_agent] = true
ssh_options[:auth_methods] = "publickey"
ssh_options[:keys] = ["/var/www/jenkins"]
#set :default_stage, "dev"

role :app, "example.us-west-1.compute.amazonaws.com", :primary => true

注意する必要があるのは、他のいくつかのフォーラムや説明に従っており、「jenkins」と呼ばれる生成したキーを使用すると、/ var / lib / jenkinsで動作するサーバーに接続できるため、これがさらに混乱します。

他のサーバーで動作させるためにユーザーJenkinsを使用しています/Jenkinsで使用するために物事をシンプルに保つようです。私はこれに不慣れで、間違いなく学ぼうとしています。私はいくつかの記事を読み、いくつかのビデオを見て、完全にイライラし、率直に言って疲れています。誰かが私を助けることができますか?

4

1 に答える 1

3

アップグレード後、先週同じ動作を示し始めたセットアップがありました。(これは最近私たちのカップルに起こったようです。)

エラーは[:auth_methods]、反復可能にする方法で割り当てられていないことを示しているようです。

変更してみてください:

ssh_options[:auth_methods] = "publickey"
ssh_options[:keys] = ["/var/www/jenkins"]

これに:

set :ssh_options, {:auth_methods => "publickey"}
set :ssh_options, {:keys => ["/var/www/your_actual_key_file.pem"]}
于 2013-03-13T01:20:43.283 に答える