CIは、構成可能な宣言構文でテストパイプラインを自動化するように設計された、最新のスケーラブルな継続的統合システムです。以前のCIシステムの成功を基に構築されたConcourseは、テストサーバーが処理するコードと同様に規制されるように、パイプライン管理を簡素化し、「スノーフレーク」サーバーを排除することを目指しています。CIをインストールする方法を示します。バックエンドとして使用するようにPostgreSQLデータベースを構成し、Concourseバイナリをダウンロードおよびインストールしてから、継続的な統合パイプラインを構築および実行できるWebおよびワーカープロセスを構成します。16.04サーバーが必要です。+」ユーザーとファイアウォールを設定ガイド]続行する前に。CIバイナリをダウンロードする前に、サーバーにPostgreSQLインスタンスをセットアップする必要があります。Concourseは、PostgreSQLデータベースを使用してパイプラインデータを保存します。ローカルパッケージインデックスを更新して、使用可能なファイルのローカルビューを更新します。+`パッケージをインストールします。`という名前の専用PostgreSQLユーザーを作成します。`と呼ばれるデータベースへの接続を試みます。Concourseは、メインWebおよびAPIハブを「ATC」と呼びます。これは「航空交通管制」の略です。+`データベースユーザーに割り当てて、適切なアクセスを提供できます。CIバイナリをダウンロードしてインストールする準備ができました。CI実行可能ファイルをダウンロードしてインストールしますConcourseは、WebサイトとGitHubの両方で、Linuxプラットフォーム用にコンパイルされた実行可能ファイルへのリンクを提供しています。CIダウンロードページ]です。*プラットフォームダウンロードのリンクの場所をコピーします。戻ってくるので、このページを開いたままにしてください。+」を使用してコピーしたリンクをダウンロードします。+`コマンドラインクライアントをダウンロードします。Linuxのリンクの場所をコピーします。*プラットフォームのダウンロード。+`にダウンロードします。-LOダウンロード要求でエラーが発生した場合、ファイルにはバイナリプログラムではなくHTTPエラーメッセージが含まれます。次のように入力して、ファイルが実際にバイナリ実行可能ファイルであることを確認します。stripped上記の出力は、ファイルが実行可能ファイルであることを示しています。+`ディレクトリに移動できます。/usr/local/bin/fly各プログラムのバージョンを確認することは、すべてが正しく動作していることを確認するための小さなチェックとして機能します。--versionOutputバイナリが配置されたので、Concourseの構成を開始できます。コンコースCI構成資産を作成する次に、Concourseが起動に使用する設定とキーの組み立てを開始できます。開始する前に、関連するすべてのファイルを保持できる構成ディレクトリを作成します。/etc/concourse暗号化キーを生成し、Concourse構成を定義するファイルを作成できるようになりました。キーファイルの作成Concourseは、すべてが互いに安全に通信できる必要があるいくつかの関連コンポーネントで構成されています。ATCは、WebおよびAPIリクエストを処理し、パイプラインを調整するメインハブです。CDタスクを実行します。TSAは、ワーカーをATCに安全に登録するカスタムSSHサーバーです。これらすべてのコンポーネントを単一のサーバーで実行しますが、ワーカーとTSAは安全に通信することを期待しています。この期待を満たすために、3つのキーセットを作成します。TSAコンポーネントのキーペアワーカーのキーペアユーザーセッションおよびTSAからATCへの通信用のトークンに署名するために使用されるセッション署名キーペアこれらは各コンポーネントの起動時に自動的に使用されるため、パスワードなしでこれらのキーを作成する必要があります。+`ディレクトリに作成できます。/etc/concourse/session_signing_keyコンコースディレクトリをチェックすると、3つの公開キーと3つの秘密キーが利用できることがわかります。worker_key.pubTSAは、許可されたキーファイルをチェックすることにより、システムへの接続を許可されているワーカーを決定します。正常に接続できるように、生成したワーカーの公開キーを使用して承認済みのキーファイルを事前に入力する必要があります。これが唯一のワーカーであるため、ファイルをコピーするだけです。/etc/concourse/authorized_worker_keysキーファイルと承認されたワーカーの初期ファイルができたので、Concourse構成を定義するファイルを作成できます。環境構成ファイルの作成Concourseバイナリは、構成ファイルからネイティブに読み取りません。プロセスの開始時に渡される環境変数から構成値を取得できます。`ユニットファイルを作成します。ユニットファイルは、ファイルから環境変数を読み取り、プロセスの開始時にプロセスに渡すことができます。+`プロセスの別のファイルを作成します。+`プロセスのファイルを作成して開きます。/etc/concourse/web_environment内部では、ATCおよびTSAコンポーネントに必要な環境変数を定義します。修正する必要のない静的な値を定義します。これらの変数は、プライベートTSAとセッションキーの場所、承認されたワーカーを定義するファイル、およびPostgreSQLソケットの場所を定義します。as-isCONCOURSE_SESSION_SIGNING_KEY=/etc/concourse/session_signing_keyCONCOURSE_TSA_HOST_KEY=/etc/concourse/tsa_host_keyCONCOURSE_TSA_AUTHORIZED_KEYS=/etc/concourse/authorized_worker_keysCONCOURSE_POSTGRES_SOCKET=/var/run/postgresql次に、環境に合わせて変更する必要のある変数を設定します。+`は、サービスがバインドするIPアドレスとポートを定義します。これをサーバーのパブリックIPアドレスとポート8080に設定します。+`チームのユーザー名とパスワードを設定します。ここで任意のユーザー名とパスワードを選択できます。これらの値を変更し、サービスを再起動することにより、いつでも管理者の資格情報を変更できます。environmentCONCOURSE_BASIC_AUTH_USERNAME=CONCOURSE_BASIC_AUTH_PASSWORD=CONCOURSE_EXTERNAL_URL=http://:8080完了したら、ファイルを保存して閉じます。+`プロセスの環境ファイルを作成します。/etc/concourse/worker_environment内部では、ワーカーの秘密キー、TSAの公開キー、およびワーカーがファイルを保存するディレクトリの場所を定義します。TSAに到達できるアドレスを設定します。これは、この場合のローカルホストになります。以下の値を変更せずに使用できます。as-isCONCOURSE_WORK_DIR=/var/lib/concourseCONCOURSE_TSA_WORKER_PRIVATE_KEY=/etc/concourse/worker_keyCONCOURSE_TSA_PUBLIC_KEY=/etc/concourse/tsa_host_key.pubCONCOURSE_TSA_HOST=127.0.0.1:2222完了したら、ファイルを保存して閉じます。+」プロセスを実行する専用のLinuxユーザーを作成する必要があります。これにより、限られた権限でウェブ向けサービスを開始できます。PostgreSQLがデフォルトで認証を処理する方法のため、ユーザー名が前に作成したPostgreSQLユーザー名と一致することが重要です。+」というシステムユーザーとグループを作成します。+`ディレクトリとそのコンテンツの所有権を与えることができます。/etc/concourse環境ファイルには、CIサーバーの管理ユーザー名やパスワードなどの機密データが含まれています。環境ファイルの許可を調整して、通常のユーザーがこれらのファイルの値を読み取ったり変更したりできないようにします。+`システムユーザーによって所有されています。CIユニットファイルを定義する準備ができました。+`プロセス用のファイルを1つ作成します。concourse-web.service`ファイルを作成することから始めます。/etc/systemd/system/concourse-web.service内部に、次の内容を貼り付けます。+`プロセスのユニットの説明を設定し、注文を決定するときにこのユニットをPostgreSQLユニットの後に開始することを示します。`セクションは、サービスの実行方法を定義します。」ユーザーとしてサービスを実行し、失敗した場合はサービスを自動的に再起動するようにsystemdに指示します。これは、プロセスがメモリの制約または同様の問題で終了した場合に役立ちます。+`を呼び出して実際のプロセスを開始します。+`セクションは、ブート時に起動するようにサービスを設定した場合に、ユニットをシステムの起動順序に結び付ける方法をsystemdに伝えます。完了したら、ファイルを保存して閉じます。+`プロセスを定義します。/etc/systemd/system/concourse-worker.service内部に、次の内容を貼り付けます。」ユニットと同様に機能します。`プロセスを開始するようシステムに指示します。`ユーザーとして実行されます。+`コマンドを使用してプロセスを開始します。完了したら、ファイルを保存して閉じます。ファイアウォールを調整してサービスを開始するユニットファイルを配置したら、ファイアウォールを介したアクセスを許可し、サービスを開始できます。+`ファイアウォールでそのポートへのアクセスを開く必要があります。+`プロセスで使用されるコンテナは、インターネットに正しくアクセスしてDNSクエリを解決できるように、転送アクセスが必要です。これを有効にするには、次のように入力します。routed次のように入力して、サービスを開始できます。concourse-worker次のように入力して、両方のサービスが正しく開始されたことを確認できます。.両方のサービスが「アクティブ(実行中)」を読み取り、ログ行に明らかなエラーが含まれていないことを確認します。+`サービスに特に注意して、ログ行がデータベースへの接続の問題を示していないことを確認してください。サービスが正常に開始された場合、サーバーが起動するたびに開始されるようにサービスを有効にします。concourse-workerコマンドラインおよびWebインターフェイスを介したアクセスの確認Concourseサービスが実行されているので、アクセス権があることを確認する必要があります。+`コマンドラインクライアントを使用してConcourseサービスにアクセスできることを確認しましょう。`ファイルで設定した管理ユーザー名とパスワードを使用してログインする必要があります。+`バイナリを使用して複数のConcourseサーバーに接続して管理できるため、コマンドは「ターゲット」という概念をさまざまなサーバーのエイリアスとして使用します。ターゲットの「ローカル」を呼び出して、ローカルのConcourseサーバーにログインします。+`チームのユーザー名とパスワードの入力を求められます。資格情報を入力すると、「ターゲットが保存されました」が表示されます。savedこれは、正常にログインできたことを示しています。次のように入力して、ワーカープロセスがTSAコンポーネントに正常に登録できたことを確認しましょう。CIサービスを管理するために使用されます。+`コマンドは追加のコマンドに関する情報を提供します。次に、ウェブブラウザでサーバーのIPアドレスに続けて「:8080」にアクセスして、ウェブアクセスを確認します。CIページにアクセスできるはずです。」コマンドをダウンロードできます。これにより、サーバーにログインせずにCI環境を管理できます。+`の代わりにサーバーのパブリックIPアドレスを指定することを忘れないでください(リモートでログインする前に以下の暗号化に関する警告をお読みください)。リンクをクリックすると、Webインターフェースにログインできます。チームを選択するよう求められます。*チームのみが選択可能です。team]次のページで、資格情報の入力を求められます。+`ファイル内で設定した認証情報を入力すると、ログインしてデフォルトのプレースホルダーインターフェイスに戻ります。+」でサーバーに送信すると、この画面は、パイプラインのアクティビティを監視できるインターフェイスに置き換えられます。結論このガイドでは、PostgreSQLとConcourseバイナリをインストールし、暗号化キーをセットアップし、Concourseとネットワークアクセスを構成しました。+`コマンドを使用してローカルにログインし、Webインターフェースにアクセスして機能を確認しました。前述のとおり、実際の作業にConcourseを使用する前に、SSLでWebおよびAPIゲートウェイを保護することが重要です。CIの場合サーバーとリモートで対話する前に、サーバーへの安全なアクセスを構成します。world」の例]をご覧ください。