8

達成したいワークフローは次のとおりです。

  1. コミットコード
  2. パブリック Docker イメージで bitbuck パイプラインのテストを実行
  3. bitbucket パイプラインは ansible スクリプトを実行して、パブリック Docker イメージにデプロイします

最初の 2 つのステップは正常に機能しますが、ここに問題があります: ssh エージェント経由でリモート サーバーに ssh できるようにするには、秘密鍵をどのように/どこに保存すればよいですか?

パイプラインの環境設定内に秘密鍵を保存するのは少し気が進まないのですが、他のすべての人がリポジトリへの管理者アクセス権を持っているため、それを見ることができます。

hereと同様の質問がありますが、答えはdockerでキーをセットアップし、プライベートレポを使用することを示唆しています。これは私のものとは少し異なります。

4

2 に答える 2

3

パイプライン設定で SSH キーをセットアップできるようになったため、環境変数を使用してコンテナー内の特定の場所にコピーする必要がなくなりました。秘密鍵はまったく表示されません。

Settings -> Pipelines -> SSH keys

実稼働コンテナーの known_hosts ファイルへの公開鍵を取得する必要があります。

于 2017-03-09T19:45:00.977 に答える
2

同様のプロセスをセットアップし、Pipelines 環境変数を使用しました。値を保護するためのチェックボックスがあるので、他の人がそれを見ることを心配する必要はありません。

セットアップは非常に簡単です。

  • Base64 で秘密鍵をエンコードし、Bitbucket の環境変数に保存します
  • リモート ホストの公開 SSH キーを含む "my_known_hosts" ファイルをコードベースにコミットします。

次に、bitbucket-pipelines.yml ファイルで、known_hosts とキーを設定します。

- mkdir -p ~/.ssh
- cat my_known_hosts >> ~/.ssh/known_hosts
- (umask  077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa)

完全なドキュメントはこちらから入手できますhttps://confluence.atlassian.com/bitbucket/access-remote-hosts-via-ssh-847452940.html

于 2016-11-13T20:27:40.410 に答える