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.xsupport/5.x: Concourse 5.xsupport/4.x: Concourse 4.xsupport/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"。Concoursewebおよび/またはworkerインスタンスのためのsystemdサービスを管理します。concourse_service_start: オプション。デフォルト:"yes"。Concoursewebおよび/または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ユーザーの資格情報のリスト。エントリーはnameとpasswordフィールドを持つオブジェクトです(例を参照)。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 .
貢献者
- gaelL
- troykinsella (メンテイナー)
ライセンス
MIT © Troy Kinsella
