community.general.gitlab_runner 模块 – 创建、修改和删除 GitLab Runner
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您正在使用 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:community.general.gitlab_runner
。
概要
使用 GitLab API 在 GitLab 服务器端注册、更新和删除 Runner。
所有操作均使用 GitLab API v4 执行。
详情请参阅完整 API 文档:https://docs.gitlab.com/ee/api/runners.html 和 https://docs.gitlab.com/ee/api/users.html#create-a-runner-linked-to-a-user。
所有操作都需要有效的私有 API 令牌。您可以使用 GitLab Web 界面在 https://$GITLAB_URL/profile/personal_access_tokens 创建任意数量的令牌。
注册新的 Runner 需要有效的注册令牌。要创建共享 Runner,您需要请求管理员提供此令牌。它可以在 https://$GITLAB_URL/admin/runners/ 找到。
此模块不处理
gitlab-runner
进程部分,而只是通过其 API 管理 GitLab 服务器端的 Runner。模块创建 Runner 后,您可以使用生成的令牌运行gitlab-runner register
命令。
要求
执行此模块的主机需要以下要求。
对于旧版 Runner 注册工作流(Runner 注册令牌 - https://docs.gitlab.com/runner/register/#register-with-a-runner-registration-token-deprecated),需要 python-gitlab >= 1.5.0。
对于新的 Runner 注册工作流(Runner 身份验证令牌 - https://docs.gitlab.com/runner/register/#register-with-a-runner-authentication-token),需要 python-gitlab >= 4.0.0。
requests (Python 库 https://pypi.ac.cn/project/requests/)
参数
参数 |
注释 |
---|---|
确定 Runner 是否只能拾取受保护分支的作业。 如果 如果设置为 如果设置为 在 community.general 8.0.0 之前,默认值为 选项
|
|
Runner 是否应该注册访问级别。 如果设置为 如果设置为 此选项的默认值在 community.general 7.0.0 中更改为 选项
|
|
用于登录的GitLab CI作业令牌。 |
|
用于登录的GitLab OAuth令牌。 |
|
用于针对API进行身份验证的密码。 |
|
具有API权限的GitLab访问令牌。 |
|
API的可解析端点。 |
|
用于针对API进行身份验证的用户名。 |
|
用于验证GitLab服务器证书的CA证书捆绑包。 |
|
运行器的唯一名称。 |
|
确定运行器是否被锁定。 选项
|
|
运行器完成特定作业的最长时间。 默认: |
|
项目的ID或完整路径,格式为group/name。 自community.general 4.5.0版本起,与 与 如果未设置 |
|
注册令牌用于在GitLab 16.0之前注册新的运行器。 如果GitLab < 16.0 且 如果设置,则将使用旧的运行器创建工作流创建运行器。 如果未设置,则将使用GitLab 16.0中引入的新运行器创建工作流创建运行器。 如果未设置,则需要python-gitlab >= 4.0.0。 |
|
是否运行未标记的作业。 选项
|
|
确保具有相同名称的运行器存在且具有相同的配置,或者删除具有相同名称的运行器。 选项
|
|
应用于运行器的标签。 默认: |
|
提供HTTPS端点时是否验证SSL证书。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:不支持 |
处于diff模式时,将返回有关已更改内容(或可能需要在 |
备注
注意
要创建一个新的运行器,至少需要
api_token
、description
和api_url
选项。运行器需要具有唯一的描述,因为此属性用作幂等性的键。
示例
- name: Create an instance-level runner
community.general.gitlab_runner:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
description: Docker Machine t1
state: present
active: true
tag_list: ['docker']
run_untagged: false
locked: false
register: runner # Register module output to run C(gitlab-runner register) command in another task
- name: Create a group-level runner
community.general.gitlab_runner:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
description: Docker Machine t1
state: present
active: true
tag_list: ['docker']
run_untagged: false
locked: false
group: top-level-group/subgroup
register: runner # Register module output to run C(gitlab-runner register) command in another task
- name: Create a project-level runner
community.general.gitlab_runner:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
description: Docker Machine t1
state: present
active: true
tag_list: ['docker']
run_untagged: false
locked: false
project: top-level-group/subgroup/project
register: runner # Register module output to run C(gitlab-runner register) command in another task
- name: "Register instance-level runner with registration token (deprecated)"
community.general.gitlab_runner:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
registration_token: 4gfdsg345
description: Docker Machine t1
state: present
active: true
tag_list: ['docker']
run_untagged: false
locked: false
register: runner # Register module output to run C(gitlab-runner register) command in another task
- name: "Delete runner"
community.general.gitlab_runner:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
description: Docker Machine t1
state: absent
- name: Delete an owned runner as a non-admin
community.general.gitlab_runner:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
description: Docker Machine t1
owned: true
state: absent
- name: "Register a project-level runner with registration token (deprecated)"
community.general.gitlab_runner:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
registration_token: 4gfdsg345
description: MyProject runner
state: present
project: mygroup/mysubgroup/myproject
register: runner # Register module output to run C(gitlab-runner register) command in another task
返回值
常见的返回值已在此处记录,以下是此模块独有的字段
键 |
描述 |
---|---|
GitLab API返回的错误消息 返回:失败 示例: |
|
成功或失败消息 返回:始终 示例: |
|
来自服务器的JSON解析响应 返回:始终 |
|
API对象 返回:始终 |