troykinsella.concourse

ansible-concourse

ビルドステータス

Concourse CIを管理するためのAnsibleロールです。

概要

このロールは、Concourse CIのWeb(ATC/TSA)またはワーカーサービスのインストールを管理することができます。

以下の機能があります。

  • (オプション)デーモンプロセスを実行するための concourse ユーザーとグループを作成。
  • (オプション)Concourseで作業を行うためのボリュームをフォーマットし、マウント。
  • concourse-web および/または concourse-worker という名前の systemd サービスをインストール。
  • 公式サイトからConcourseのバイナリtarballを取得。
  • バイナリ実行ファイルに渡されたオプションをキャプチャするラッパースクリプトを作成。
  • 変数を介して提供される必要なSSHキーのファイルをインストール。

対応していません。

  • SSHキーのペアを生成。
  • Postgresデータベースの管理。
  • クラウドインフラの管理。

インストール

ansible-galaxy install troykinsella.concourse

ブランチ

  • master: Concourse 7.x (7.1.0)
  • support/6.x: Concourse 6.x
  • support/5.x: Concourse 5.x
  • support/4.x: Concourse 4.x
  • support/3.x: Concourse 3.x

注意: Concourseはメジャーバージョン内で後方互換性のないコマンドオプションの変更を行いますので、これらのブランチはメジャーバージョンの初期マイナーまたはパッチリビジョンをサポートしない可能性があります。テストに使用される最新バージョンは、括弧内に示されています。

ロール変数

以下に指定されていないデフォルト値については defaults/main.yml を参照してください。これらの変数の多くは、起動時にConcourseバイナリに渡されるオプションに適しています。詳細については、concourse web -h または concourse worker -h を実行してください。

注意: 大多数の変数には妥当なデフォルト値があり、通常は定義する必要はありませんが、関連する動作を制御する必要がある場合に存在します。最小限の設定セットの例を参照してください。

メンテナンス変数

  • concourse_force_restart: オプション。デフォルト:"no"。設定が変更されたかどうかに関係なくWebおよび/またはワーカーサービスの再起動をトリガーします。

ユーザー変数

  • concourse_manage_user: オプション。デフォルト:"yes"。ファイル所有権が割り当てられるシステムユーザーを管理します。
  • concourse_user: オプション。Concourseインストールディレクトリと実行プロセスの所有ユーザー。
  • concourse_uid: オプション。ユーザーID。
  • concourse_group: オプション。Concourseインストールディレクトリと実行プロセスの所有グループ。
  • concourse_gid: オプション。グループID。

インストール変数

  • concourse_version: オプション。インストールするConcourseのバージョン。
  • concourse_install_prefix_dir: オプション。Concourseインストールディレクトリを配置するプレフィックスディレクトリ。インストール中にConcourse tarballもこのディレクトリにダウンロードされます。
  • concourse_install_dir: オプション。Concourse tarballが展開されるディレクトリパス。
  • concourse_binary_path: オプション。Concourseバイナリへの絶対パス。
  • concourse_bin_dir: オプション。Concourseバイナリと関連するシェルスクリプトが格納されているディレクトリ。
  • concourse_etc_dir: オプション。Concourse関連の生成または管理されたファイルが作成されるディレクトリ。
  • concourse_archive_name: オプション。インストールするConcourseリリースtarballのファイル名。
  • concourse_archive_url: オプション。ConcourseリリースtarballをダウンロードできるURL。
  • concourse_archive_checksum: オプション。ダウンロードしたアーカイブを検証するために使用するConcourseリリースtarballのチェックサム。
  • concourse_archive_os: オプション。Concourseリリースtarballを取得するためのオペレーティングシステム。
  • concourse_archive_arch: オプション。Concourseリリースtarballを取得するためのシステムアーキテクチャ。
  • concourse_archive_fetch_timeout: オプション。Concourseリリースtarballを取得するためのタイムアウト(秒)。
  • concourse_archive_delete_after_unarchive: オプション。デフォルト:"yes"。アンパック後にリリースtarballを削除します。
  • concourse_binary_mode: オプション。Concourseバイナリのファイルモード。
  • concourse_etc_files_mode: オプション。concourse_etc_dir に保存されているすべてのファイルのファイルモード。

一般変数

  • concourse_service_enabled: オプション。デフォルト:"yes"。Concourse web および/または worker インスタンスのための systemd サービスを管理します。
  • concourse_service_start: オプション。デフォルト:"yes"。Concourse web および/または worker のサービスを開始します。
  • concourse_log_level: オプション。表示するログの最小レベル。[debug|info|error|fatal]
  • concourse_env_file: オプション。環境変数を含むファイルで、systemd サービスユニットファイルの EnvironmentFile 属性にフィードされます。これは、プレイブックの外で管理される設定に便利です。プレイブックで設定を管理する必要がある場合は、concourse_web_env および/または concourse_worker_env がより良い選択です。

Web変数

  • concourse_web: オプション。Concourse ATCをインストールするには「yes」に設定します。
  • concourse_bind_ip: オプション。WebトラフィックをリッスンするIPアドレス。
  • concourse_bind_port: オプション。HTTPトラフィックをリッスンするポート。
  • concourse_tls_bind_port: オプション。HTTPSトラフィックをリッスンするポート。
  • concourse_tls_certificate: オプション。HTTPS終端に使用するTLS証明書の内容。
  • concourse_tls_certificate_path: オプション。HTTPS終端に使用するTLS証明書のリモートファイルパス。通常は、concourse_tls_certificate のみを定義する必要があります。
  • concourse_tls_key: オプション。HTTPS終端に使用するTLSキーの内容。
  • concourse_tls_key_path: オプション。HTTPS終端に使用するTLSキーのリモートファイルパス。通常は、concourse_tls_key のみを定義する必要があります。
  • concourse_peer_address: オプション。このATCに他のATCがアクセスするためのURL。
  • concourse_external_url: オプション。外部から任意のATCにアクセスするためのURL。
  • concourse_web_launcher_path: オプション。Concourse webプロセスを起動するスクリプトのパス。
  • concourse_web_launcher_mode: オプション。Webランチャースクリプトのファイルモード。
  • concourse_cli_artifacts_dir: オプション。--cli-artifacts-dir オプションの値。
  • concourse_authorized_worker_keys_path: オプション。認証されたワーカーキーのファイルのパス。
  • concourse_host_key_path: オプション。ホストキーのファイルのパス。
  • concourse_session_signing_key: 必須。セッション署名キー。
  • concourse_session_signing_key_path: オプション。セッション署名キーのファイルのパス。
  • concourse_encryption_key: オプション。データベースに保存する前に機密データを暗号化するために使用される16または32文字のキー。
  • concourse_old_encryption_key: オプション。以前使っていた暗号化キー。新しいキーが提供されていない場合、データは暗号化されます。新しいキーが提供された場合、データは再暗号化されます。
  • concourse_host_key: 必須。ホストキー。
  • concourse_authorized_worker_keys: 必須。連結された認可されたワーカーキー。
  • concourse_auth_duration: オプション。トークンが有効な期間。
  • concourse_resource_checking_interval: オプション。リソースの新しいバージョンを確認する間隔。
  • concourse_base_resource_type_defaults: オプション。リソースタイプのクラスタ全体のデフォルトのハッシュ。
  • concourse_base_resource_type_defaults_file: オプション。リソースタイプのデフォルトファイルのパス。
  • concourse_web_options: オプション。concourse に渡す他の非管理オプション。
  • concourse_web_env: オプション。concourse web プロセスで利用可能な環境変数のハッシュ。

Web PostgreSQL変数

  • concourse_postgres_host: オプション。接続するPostgresホスト。
  • concourse_postgres_port: オプション。接続するPostgresポート。
  • concourse_postgres_socket: オプション。接続するためのUnixドメインソケットのパス。
  • concourse_postgres_user: オプション。サインインするPostgresユーザー。
  • concourse_postgres_password: オプション。Postgresユーザーのパスワード。
  • concourse_postgres_ssl_mode: オプション。Postgres接続にSSLを使用するかどうか。
  • concourse_postgres_ca_cert: オプション。Postgres CA証明書ファイルの場所。
  • concourse_postgres_client_cert: オプション。Postgresクライアント証明書ファイルの場所。
  • concourse_postgres_client_key: オプション。Postgresクライアントキーファイルの場所。
  • concourse_postgres_connect_timeout: オプション。Postgresダイヤルのタイムアウト。
  • concourse_postgres_database: オプション。Postgresデータベース名。

Webローカル認証変数

  • concourse_local_users: オプション。ローカルユーザーとして追加されるConcourseユーザーの資格情報のリスト。エントリーは namepassword フィールドを持つオブジェクトです(例を参照)。
  • concourse_main_team_local_users: オプション。供給されたローカルユーザーリストのホワイトリストに登録されたローカルConcourseユーザーのリスト。

Web GitHub認証変数

  • concourse_github_client_id: オプション。GitHubクライアントID。
  • concourse_github_client_secret: オプション。GitHubクライアントシークレット。
  • concourse_main_team_github_users: オプション。ホワイトリストに登録されたGitHubユーザーのリスト。
  • concourse_main_team_github_orgs: オプション。ホワイトリストに登録されたGitHub組織のリスト。
  • concourse_main_team_github_teams: オプション。ホワイトリストに登録されたGitHubチームのリスト("org:team"形式)。

Webその他の認証方法

未サポート。concourse_web_options 変数で concourse web コマンドオプションを指定して自分で行ってください。

ワーカー変数

  • concourse_worker: オプション。"yes"に設定してConcourseワーカーをインストールします。
  • concourse_worker_launcher_path: オプション。Concourseワーカープロセスを起動するスクリプトのパス。
  • concourse_worker_land_path: オプション。ワーカーをランディングさせるスクリプトのパス。
  • concourse_worker_retire_path: オプション。ワーカーを引退させるスクリプトのパス。
  • concourse_worker_binary_mode: オプション。ワーカーロンチャー、ランディング、リタイアスクリプトのファイルモード。
  • concourse_worker_land_on_stop: オプション。デフォルト:"no"。サービス停止時に concourse land-worker を実行します。
  • concourse_worker_retire_on_stop: オプション。デフォルト:"yes"。サービス停止時に concourse retire-worker を実行します。
  • concourse_work_dir: オプション。ワーカーが作業を行うディレクトリ。
  • concourse_tsa_public_key_path: オプション。tsaパブリックキーのファイルパス。
  • concourse_tsa_worker_key_path: オプション。ワーカーのプライベートキーのファイルパス。
  • concourse_tsa_host: 必須。--tsa-host オプションの値。
  • concourse_tsa_public_key: 必須。tsaのパブリックキー。
  • concourse_tsa_worker_key: 必須。tsaワーカープライベートキー。
  • concourse_worker_tag: オプション。--tag オプションの値。
  • concourse_baggageclaim_driver: オプション。ボリューム管理に使用するドライバ。
  • concourse_worker_options: オプション。concourse に渡す他の非管理オプション。
  • concourse_worker_env: オプション。concourse worker プロセスで利用可能な環境変数のハッシュ。
  • concourse_manage_work_volume: オプション。デフォルト:"no"。作業ボリュームの管理を有効にします。
  • concourse_work_volume_device: concourse_manage_work_volume が "yes" の場合に必須。作業ボリュームとしてマウントするデバイス。
  • concourse_work_volume_fs_type: オプション。作業ボリュームのファイルシステムタイプ。デフォルトでは、concourse_baggageclaim_driver の値に基づいて btrfs または ext4 として計算されます。
  • concourse_work_volume_fs_opts: オプション。作業ボリュームファイルシステムを作成する際にmkfsコマンドに渡すオプションのリスト。
  • concourse_work_volume_fs_force_create: オプション。デフォルト:"no"。はいの場合、すでにファイルシステムがあるデバイスに新しい作業ボリュームファイルシステムを作成できます。
  • concourse_work_volume_fs_resize: オプション。デフォルト:"no"。はいの場合、作業ボリュームのブロックデバイスとファイルシステムのサイズが異なる場合、空きスペースにファイルシステムを拡張します。
  • concourse_work_volume_mount_path: オプション。作業ボリュームがマウントされるディレクトリ。
  • concourse_work_volume_mount_opts: オプション。作業ボリュームのマウントオプション。

サンプルプレイブック

- hosts: atc
  roles:
  - role: troykinsella.concourse
    concourse_web: yes
    concourse_authorized_worker_keys:
    - "{{ worker_public_key }}"
    concourse_postgres_host: concoursedb.abc123.us-east-1.rds.amazonaws.com
    concourse_postgres_user: concourse
    concourse_postgres_password: changeme
    concourse_postgres_database: atc
    concourse_local_users:
    - name: admin
      password: my_bcrypted_password
    concourse_main_team_local_users:
    - admin
    concourse_external_url: http://concourse.example.com

- hosts: workers
  roles:
  - role: troykinsella.concourse
    concourse_worker: yes
    concourse_tsa_host: my-atc
    concourse_tsa_public_key: "{{ host_pub_key }}"
    concourse_tsa_worker_key: "{{ worker_key }}"
    concourse_worker_env:
      CONCOURSE_GARDEN_NETWORK_POOL: 10.254.0.0/16
      CONCOURSE_GARDEN_MAX_CONTAINERS: 512
      CONCOURSE_GARDEN_DOCKER_REGISTRY: https://docker.my-private-registry.org

テスト

前提条件:

  • Dockerをインストール

serverspecテストを実行するには:

docker build .

貢献者

ライセンス

MIT © Troy Kinsella

プロジェクトについて

Concourse CI. CI that scales with your project.

インストール
ansible-galaxy install troykinsella.concourse
ライセンス
mit
ダウンロード
77.2k
所有者
Staff Solutions Architect at @collectivei.