troykinsella.concourse

ansible-concourse

构建状态

一个用于管理 Concourse CI 的 Ansible 角色。

作用

这个角色可以管理 Concourse CI 的 web (ATC/TSA) 或工作者服务安装。

它能够:

  • (可选)创建一个 concourse 用户和组来运行守护进程。
  • (可选)格式化并挂载一个用于 Concourse 作业的卷。
  • 安装一个名为 concourse-web 和/或 concourse-workersystemd 服务。
  • 从官方网站获取 Concourse 的二进制压缩包。
  • 创建一个包装脚本,捕获传递给二进制可执行文件的选项。
  • 安装必要的 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 -hconcourse worker -h 以获取更多详细信息。

注意:绝大多数变量都有合理的默认值,通常无需定义,但在需要控制相关行为时可以使用。请查看示例以了解最小配置集。

维护变量

  • concourse_force_restart: 可选,默认:"no"。无论配置是否更改,触发 web 和/或 worker 服务的重启。

用户变量

  • 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 的压缩包也下载到该目录。
  • concourse_install_dir: 可选。解压 Concourse 压缩包的目录路径。
  • concourse_binary_path: 可选。Concourse 二进制文件的绝对路径。
  • concourse_bin_dir: 可选。Concourse 二进制文件和相关 shell 脚本所在的目录。
  • concourse_etc_dir: 可选。创建 Concourse 相关生成或管理的文件的目录。
  • concourse_archive_name: 可选。要安装的 Concourse 发布压缩包的文件名。
  • concourse_archive_url: 可选。可以下载 Concourse 发布压缩包的 URL。
  • concourse_archive_checksum: 可选。用于验证下载的压缩包的 Concourse 发布压缩包的校验和。
  • concourse_archive_os: 可选。要获取 Concourse 发布压缩包的操作系统。
  • concourse_archive_arch: 可选。要获取 Concourse 发布压缩包的系统架构。
  • concourse_archive_fetch_timeout: 可选。获取 Concourse 发布压缩包的超时时间(秒)。
  • concourse_archive_delete_after_unarchive: 可选,默认:"yes"。在解压后删除发布压缩包。
  • 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 和/或 workersystemd 服务。
  • concourse_log_level: 可选。要查看的日志的最低级别。[debug|info|error|fatal]
  • concourse_env_file: 可选。包含环境变量的文件,输入到 systemd 服务单元文件的 EnvironmentFile 属性中。这对于在剧本外管理的配置很有用。如果配置应该由剧本管理,concourse_web_env 和/或 concourse_worker_env 是更好的选择。

Web 变量

  • concourse_web: 可选。设置为 "yes" 安装 Concourse ATC。
  • concourse_bind_ip: 可选。监听网络流量的 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: 可选。是否使用 SSL 连接 Postgres。
  • 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 字段的对象(参见示例)。密码可以是明文或 bcrypted。
  • 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: 可选。格式为 "org:team" 的白名单 GitHub 团队列表。

Web 其他身份验证方法

不支持。请通过 concourse_web_options 变量提供 concourse web 命令选项。

Worker 变量

  • concourse_worker: 可选。设置为 "yes" 安装 Concourse worker。
  • concourse_worker_launcher_path: 可选。启动 Concourse worker 进程的脚本路径。
  • concourse_worker_land_path: 可选。用于降落 worker 的脚本路径。
  • concourse_worker_retire_path: 可选。用于退役 worker 的脚本路径。
  • concourse_worker_binary_mode: 可选。worker 启动、降落和退役脚本的文件权限模式。
  • concourse_worker_land_on_stop: 可选,默认:"no"。停止服务时运行 concourse land-worker
  • concourse_worker_retire_on_stop: 可选,默认:"yes"。停止服务时运行 concourse retire-worker
  • concourse_work_dir: 可选。worker 进行作业的目录。
  • concourse_tsa_public_key_path: 可选。tsa 公钥文件的路径。
  • concourse_tsa_worker_key_path: 可选。worker 私钥文件的路径。
  • concourse_tsa_host: 必需。--tsa-host 选项的值。
  • concourse_tsa_public_key: 必需。tsa 公钥。
  • concourse_tsa_worker_key: 必需。tsa worker 私钥。
  • 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 的值计算为 btrfsext4
  • concourse_work_volume_fs_opts: 可选。创建工作卷文件系统时传递给 mkfs 命令的选项列表。
  • concourse_work_volume_fs_force_create: 可选,默认:"no"。如果为 "yes",允许在已经有文件系统的设备上创建新的工作卷文件系统。
  • concourse_work_volume_fs_resize: 可选,默认:"no"。如果为 "yes",且工作卷块设备和文件系统大小不同,则扩展文件系统以适应空间。
  • 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.