2017-05-04 15 views
1

最近、私はDockerとJenkinsを使用して自分の小さなCI/CDセットアップをセットアップしています。私はJenkins用の新しいBlue Oceanプラグインをインストールし、パイプラインを設定しました:Git - > Runs tests - > Buildsからプルします。どちらが完璧に動作しますか。Jenkins Blue Oceanを使用してビルドを展開する

しかし、パイプラインに適切な展開/公開手順を作成する方法を見つけることができませんでした。ビルドした後、私はJenkinsコンテナをすべてのDockerコンテナを実行しているVPSにSSHし、その特定のコンテナをプルしてから再ビルドします(Docker Composeを使用)。

私はBlue Oceanに気付きましたが、テスト/ビルド後に実行されるbashスクリプトを入力するオプションがあります。これは私が使用するべきものですか?

私はJenkinsのSSHプラグインで公開する方法を検討していますが、このプラグインがBlue Oceanで動作するかどうか、またJenkinsコンテナのsshキーを作成する方法を見つけることができませんでした使用する。

更新されたコンテナをパブリッシュ/ビルドする方法に関する洞察力/推奨事項を非常に高く評価します。

答えて

1

単純なsh 'ssh...'ステップは、(スクリプト)がすべてのドッカー操作を処理するVPS上のスクリプトを呼び出すのに十分なはずです。

あなたの秘密SSHキーがパスフレーズで保護されている場合、あなたはpipeline steps "ssh-agent"でエージェントにその呼び出しをラップすることがありますが:

node { 
    sshagent (credentials: ['deploy-dev']) { 
    sh 'ssh -o StrictHostKeyChecking=no -l cloudbees 192.168.1.106 uname -a' 
    } 
} 

pmrとしてコメント、JENKINS SSH Credentials Pluginはプライベート保存されたSSHを使用することができますキー。
最近の記事「SSH Credentials Management with Jenkins」も読むことができます。

+0

こんにちは!ご回答有難うございます。しかし、私はまだ私がジェンキンのイメージにsshのキーを(ドッカーで実行されているように)得る方法がわかりません。 – HarveyD

+0

@HarveyDあなたはsockキーを追加(COPY)するDockerfileを使って、あなた自身のjenkinsイメージを構築することができます。 – VonC

+0

@HarveyD資格情報プラグインを使用して資格情報として保存します。 – pmr

2

最終的には動作しました!はい、解決策は、Jenkins用の「ssh-agent」プラグインを使用することでした(Jenkins Dockerコンテナで動作します)。

私は次のようでした:

  1. は単に私のローカルマシン(SSH-keygenの)上のSSH鍵ペアを作成し
  2. コピーは、id_rsaとの上にコピーされたssh-agentのプラグイン
  3. にid_rsaとを貼り付けます。私はビルド/パブリッシュスクリプトを実行したかった

私の間違いは、Jenkinsでのビルドの仕組みを本当に理解することなく、BlueOceanを使用することに直面していました。 BlueOceanはssh-agentとの統合を許可していません。追加する必要があります:

sshagent (credentials: ['deploy-dev']) { 
    sh 'ssh -o StrictHostKeyChecking=no -l cloudbees 192.168.1.106 uname -a' 
} 

ビルドが使用しているJenkinsfileに追加する必要があります。

これは、これが同じ問題に遭遇する他のすべての人に役立つことを願っています。

+0

私の答えに加えて、この詳細なフィードバックをありがとう。 +1 – VonC

関連する問題