16.04前書きGoCDは、テストおよびリリースプロセスを自動化するために設計された強力な継続的統合および配信プラットフォームです。ビルドの比較、複雑なワークフローの視覚化、ビルドバージョンの追跡の自動化など、多くの高度な機能を備えたGoCDは、十分にテストされたソフトウェアを実稼働環境に提供するのに役立つ柔軟なツールです。[GoCDサーバーをインストールし、エージェントをセットアップし、および構成された認証]。SSL証明書を使用するようにGoCDを設定し、ウェブインターフェースにアクセスする際のブラウザーの警告を防ぎます。2つの異なる構成の手順を説明します。Webサーバーをインストールします。Encryptエクスペリエンスが提供され、おそらくほとんどの人にとって最適なオプションになります。Encryptから証明書を取得し、GoCDのHTTPSエンドポイントで使用される証明書を切り替えます。Encryptが提供する証明書形式と直接互換性のないJavaキーストアSSL証明書リポジトリを使用します。更新が発生するたびに、証明書を期待される形式に自動的に変換するスクリプトを作成する必要があります。このオプションは、サーバーのリソースが最小限であり、GoCD自体に利用可能なすべてを割り当てたい場合に最適です。16.04でGoCDサーバーをまだ構成していない場合は、このガイドを開始する前にGoCDサーバーを構成する必要があります。ベースサーバーには、*少なくとも2GのRAMと2つのCPUコア*が必要です。GoCDには、アーティファクトストレージに使用する専用のパーティションまたはディスクも必要です。次の2つのガイドのいずれかを使用して、この追加スペースを構成する方法を学習できます。サーバーホストとしてDigitalOceanを使用している場合、ブロックストレージボリュームをアーティファクトストレージの場所として使用できます。[DigitalOceanブロックストレージボリュームをプロビジョニング、フォーマット、およびマウントする方法]を学習してください。[パーティション分割、フォーマット、汎用ホストにデバイスをマウントします]。サーバーのセットアップ後、次のガイドを使用して初期設定を実行し、GoCDをインストールできます。+`ユーザーの作成方法を示します基本的なファイアウォールを設定します。16.04でGoCDをインストールおよび構成する方法:このガイドでは、ソフトウェアのインストール、アーティファクトマウントポイントの構成、ユーザー認証のセットアップを行います。EncryptからSSL証明書を取得するには、サーバーに*ドメイン名*が必要です。さらなる要件は、追求する方法によって異なります。適切なセクションで説明します。続行する準備ができたら、使用する方法を選択し、関連する指示に従います。オプション1:GoginのリバースプロキシとしてNginxを構成するNginxをGoCDのSSL終端リバースプロキシとして設定する場合は、このセクションに従ってください。Encrypt証明書を使用してHTTPSトラフィックを処理するように構成されます。クライアント接続を解読し、通常のHTTPを使用してGoCDのWebインターフェイスにトラフィックを転送します。これには、Nginxフロントエンドにいくつかの追加オーバーヘッドが必要ですが、より簡単なアプローチです。Encryptクライアントをインストールしてから、ドメインの証明書を要求する必要があります。これらのチュートリアルでは、証明書を取得してWebサーバーを構成するために必要な手順を提供します。Encrypt証明書を使用してデフォルトのNginxページが表示されます。Encrypt証明書で暗号化されるように、GoCDバックエンドにリクエストをプロキシするようにNginxを構成できます。EncryptからSSL証明書をダウンロードし、デフォルトのSSLポートでリクエストを処理するときに証明書を使用するようにNginxを設定しました。WebインターフェイスにこれらのリクエストをプロキシするようにNginxを構成することです。Encrypt証明書を使用するように設定されているデフォルトのNginxサーバーブロックファイルを開きます。`セクションを開きます。内部で、NginxがGoCDのHTTPインターフェイスへの接続に使用できるアドレスを指定します。`ブロックを見つけます。try_files`ディレクティブをコメントアウトして、プロキシ設定を指定できるようにします。`にプロキシパスを追加します。+`ファイルを含めて、ロケーションブロックに必要な他のプロキシ設定を設定します。.完了したら、ファイルを保存して閉じます。コマンドラインに戻ったら、次のように入力して、構文エラーのNginx設定を確認します。-tエラーが見つからない場合は、次を入力してNginxサービスを再起動します。+`プロトコルを使用して通常のドメイン名からアクセスできるようになります。UI内のサイトURL設定です。新しいアドレスを使用するためのGoCDサイトURLの更新Nginxを再起動したら、残りのタスクは、GoCDが内部的に使用して適切なリンクを構築するサイトURL設定を変更することです。WebブラウザーでGoCDサーバードメインにアクセスし、必要に応じてログインします。*]をクリックし、ドロップダウンメニューから[サーバー構成]を選択します。+`ポート指定を削除します。以前にドメイン名の代わりにIPアドレスを使用していた場合、ドメイン名も使用するようにURLを変更します。[GoCDサイトURL設定]ページの一番下までスクロールし、[保存]をクリックして、変更をすぐに実装します。UIにドメインのすべてのリクエストをプロキシするように設定されました。Encrypt証明書を使用するようにGoCD独自のWebサーバーを構成する場合は、このセクションに従ってください。Encryptが提供する信頼できる証明書に置き換えます。これを行うには、証明書ファイルを新しい形式に変換し、Javaキーストアファイルにインポートする必要があります。証明書ファイルが更新されるたびにプロセスを繰り返すことができるように、スクリプトを作成します。Encryptから証明書をダウンロードする必要があります。このガイドに従って、適切なクライアントをダウンロードし、ドメインの証明書を取得します。Encryptを取得する方法SSL証明書:このプロセス中に実行する特定のスクリプトを作成するため、自動更新を設定するステップをスキップできます。letsencrypt内で利用可能になります。証明書変換スクリプトの作成GoCDはhttps://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores[Javaキーストア]を使用してSSL証明書を処理します。Encryptで使用されるものとは異なる形式です。Encrypt証明書をGoCDで使用するには、非常に具体的な手順を使用して証明書を変換する必要があります。手順が複雑であり、証明書が更新されるたびに証明書を変換する必要があるため、手順を自動化するスクリプトを作成します。+`というスクリプトを作成して開きます。/usr/local/bin/convert_certs_for_gocd.sh内部に、次のスクリプトを貼り付けます。clean_upこのスクリプトが何をしているのかを詳しく見ていきましょう。最初は、スクリプトの操作を容易にするためにいくつかの変数を設定します。Encrypt証明書ディレクトリに展開される変数を設定します。+`コマンドで一時的な作業ディレクトリを作成し、その値を別の変数に割り当てます。+である、その値を保持する別の変数を設定します。次に、呼び出されたときに一時ディレクトリを削除する関数を定義します。スクリプトの最後でこれを使用して、自分自身の後や予期しないエラーが発生した場合にクリーンアップします。この2番目の可能性を実現するために、エラーメッセージを表示し、終了する前にクリーンアップする別の関数を作成します。+`コマンドを使用します。その後、実際の変換を行う関数を作成します。最初の関数は、秘密キーと完全チェーン証明書を作業ディレクトリにコピーすることにより、ワークスペースをセットアップします。12ファイル]の組み合わせで完全チェーン証明書ファイルと秘密鍵ファイルを結合します。このプロセスにはエクスポートパスワードが必要なので、GoCDパスワード変数を使用します。12ファイルをJavaキーストアファイルにインポートします。ファイルをインポートし、エクスポートパスワードを提供します。次に、キーストアファイルのさまざまなパスワードに同じパスワードを指定します。+`ディレクトリにコピーし、ファイルの所有権を調整し、GoCDサーバーを再起動します。スクリプトの最後で、有効なユーザーIDが「0」、つまり「rootと同じ許可を持つ」ことを確認することにより、適切な許可でスクリプトが呼び出されることを確認します。+」ファイルをインストールします。終了したら、ファイルを保存して閉じ、続行します。変換スクリプトができたので、それを使用して最初の証明書変換を実行する必要があります。スクリプトを実行可能としてマークし、インタープリターを呼び出さずに直接実行できるようにします。/usr/local/bin/convert_certs_for_gocd.shGoCDサーバーを再起動する必要があるため、プロセスには時間がかかる場合があります。スクリプトの完了後、サーバーが接続をリッスンする準備が整うまでに、さらに1〜2時間かかる場合があります。次のように入力して、アプリケーションで現在使用されているポートを監視できます。-plntこのビューには、アプリケーションが現在2秒のリフレッシュレートでリッスンしているTCPポートが表示されます。GoCDがポート8153および8154のリッスンを開始すると、画面は次のようになります。*を押して表示を終了します。アプリケーションが接続のリッスンを開始したら、HTTPSを使用してポート8154でGoCDドメインにアクセスし、Webインターフェイスを確認します。https://:8154以前は、このページにアクセスすると、アドレスバーのアイコンが証明書を信頼できないことを示していました(ブラウザの視覚的なインジケータが異なる場合があることに注意してください)。icon]初めてアクセスしたときは、ブラウザの警告画面をクリックする必要がありました。Encryptが提供する信頼できる証明書に置き換えたので、ブラウザーは証明書が信頼できることを示し、ユーザーはサイトにアクセスするためにブラウザーの警告をバイパスする必要がなくなります。現在のタブ、ウィンドウ、またはセッションを閉じるまで、以前の証明書はブラウザによってキャッシュされる場合があることに注意してください。Encrypt証明書を使用できたことを意味します。+`がスクリプトを呼び出すことを確認できます。+`ディレクトリ内のドメインの更新設定ファイルを開きます。+`を設定する行を追加します。`ジョブをインストールします。+`で指定されたスクリプトが実行されます。Encryptから取得した最新の有効な証明書を常に使用していることを確認できます。完了したら、ファイルを保存して閉じます。更新手順のドライランを実行することにより、ファイルに構文エラーを導入していないことをテストできます。証明書変換スクリプトは実行されませんが、スキップされたという通知が出力されることに注意してください。saved.)上記の出力は、行った変更が証明書の更新を妨げなかったことを確認します。出力は、更新フックが正しいスクリプトの場所を指していることも示しています。Encryptの信頼できるSSL証明書を使用してGoCDインストールを保護する2つの異なる方法を説明しました。最初の方法では、証明書をNginxでセットアップしてから、GoCDのウェブインターフェースにトラフィックをプロキシしました。12形式に変換し、GoCDでネイティブに使用されるJavaキーストアファイルにインポートしました。どちらのオプションも、信頼できる証明書を使用してGoCDのWebインターフェースを保護しますが、異なる戦略を使用して独自のトレードオフでこれを実現します。最適なアプローチは、チームの要件と目標に大きく依存します。