troykinsella.concourse
ansible-concourse
一个用于管理 Concourse CI 的 Ansible 角色。
作用
这个角色可以管理 Concourse CI 的 web (ATC/TSA) 或工作者服务安装。
它能够:
- (可选)创建一个
concourse用户和组来运行守护进程。 - (可选)格式化并挂载一个用于 Concourse 作业的卷。
- 安装一个名为
concourse-web和/或concourse-worker的systemd服务。 - 从官方网站获取 Concourse 的二进制压缩包。
- 创建一个包装脚本,捕获传递给二进制可执行文件的选项。
- 安装必要的 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 和/或 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"。管理 Concourseweb和/或worker实例的systemd服务。concourse_service_start: 可选,默认:"yes"。启动 Concourseweb和/或worker的systemd服务。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 用户凭证列表。条目是具有name和password字段的对象(参见示例)。密码可以是明文或 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的值计算为btrfs或ext4。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 .
贡献者
- gaelL
- troykinsella(维护者)
许可证
MIT © Troy Kinsella
