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