community.general.gitlab_project_variable 模块 – 创建/更新/删除 GitLab 项目变量

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在 playbook 中使用它,请指定: community.general.gitlab_project_variable

概要

  • 如果项目变量不存在,它将被创建。

  • 如果项目变量存在,当值不同时,它的值将被更新。

  • 在 playbook 中未被触碰的变量,但在 GitLab 项目中被触碰的变量,将保持不变(purge=false)或将被删除(purge=true)。

要求

执行此模块的主机需要以下要求。

参数

参数

注释

api_job_token

字符串

在 community.general 4.2.0 中添加

用于登录的 GitLab CI 作业令牌。

api_oauth_token

字符串

在 community.general 4.2.0 中添加

用于登录的 GitLab OAuth 令牌。

api_password

字符串

用于对 API 进行身份验证的密码。

api_token

字符串

具有 API 权限的 GitLab 访问令牌。

api_url

字符串

API 的可解析端点。

api_username

字符串

用于对 API 进行身份验证的用户名。

ca_path

字符串

在 community.general 8.1.0 中添加

用于验证 GitLab 服务器证书的 CA 证书包。

project

字符串 / 必需

项目的路径和名称。

purge

布尔值

设置为 true 时,任务中未被触碰的所有变量都将被删除。

选项

  • false ← (默认)

  • true

state

字符串

创建或删除项目变量。

可能的值为 present 和 absent。

选项

  • "present" ← (默认)

  • "absent"

validate_certs

布尔值

是否在提供 HTTPS 端点时验证 SSL 证书。

选项

  • false

  • true ← (默认)

variables

列表 / 元素=字典

在 community.general 4.4.0 中添加

表示 CI/CD 变量的字典列表。

即使使用了旧的 vars 参数,此模块也会使用此结构进行内部操作。

默认值: []

environment_scope

字符串

变量的作用域。

variables[].environment_scope 的支持需要 GitLab Premium >= 13.11。

默认值: "*"

masked

布尔值

变量值是否被屏蔽。

对屏蔽值的支持需要 GitLab >= 11.10。

选项

  • false ← (默认)

  • true

name

字符串 / 必需

变量的名称。

protected

布尔值

变量值是否受保护。

对受保护值的支持需要 GitLab >= 9.3。

选项

  • false ← (默认)

  • true

raw

布尔值

在 community.general 7.4.0 中添加

变量值是否为原始值。

对原始值的支持需要 GitLab >= 15.7。

选项

  • false ← (默认)

  • true

value

字符串

变量值。

state=present 时必需。

variable_type

字符串

变量是环境变量(env_var)还是文件(file)。

支持variables[].variable_type 需要 GitLab >= 11.11。

选项

  • "env_var" ← (默认)

  • "file"

vars

字典

当列表元素是简单的键值对时,masked、raw 和 protected 将被设置为 false。

当列表元素是包含键 valuemaskedrawprotected 的字典时,用户可以完全控制是否应屏蔽、原始、保护值或同时进行多种操作。

对受保护值的支持需要 GitLab >= 9.3。

对屏蔽值的支持需要 GitLab >= 11.10。

对原始值的支持需要 GitLab >= 15.7。

对 environment_scope 的支持需要 GitLab Premium >= 13.11。

对 variable_type 的支持需要 GitLab >= 11.11。

value 必须是字符串或数字。

字段 variable_type 必须是字符串,值为 env_var(默认值)或 file

字段 environment_scope 必须是由作用域环境定义的字符串。

当值被屏蔽时,它必须是 Base64 编码且长度至少为 8 个字符。有关屏蔽变量的可接受值的详细信息,请参阅 GitLab 文档 (https://docs.gitlab.com/ce/ci/variables/#masked-variables)。

默认值: {}

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在 diff 模式下,将返回有关更改内容(或在 check_mode 下可能需要更改的内容)的详细信息。

示例

- name: Set or update some CI/CD variables
  community.general.gitlab_project_variable:
    api_url: https://gitlab.com
    api_token: secret_access_token
    project: markuman/dotfiles
    purge: false
    variables:
      - name: ACCESS_KEY_ID
        value: abc123
      - name: SECRET_ACCESS_KEY
        value: dassgrfaeui8989
        masked: true
        protected: true
        environment_scope: production

- name: Set or update some CI/CD variables
  community.general.gitlab_project_variable:
    api_url: https://gitlab.com
    api_token: secret_access_token
    project: markuman/dotfiles
    purge: false
    vars:
      ACCESS_KEY_ID: abc123
      SECRET_ACCESS_KEY:
        value: 3214cbad
        masked: true
        protected: true
        variable_type: env_var
        environment_scope: '*'

- name: Set or update some CI/CD variables with raw value
  community.general.gitlab_project_variable:
    api_url: https://gitlab.com
    api_token: secret_access_token
    project: markuman/dotfiles
    purge: false
    vars:
      ACCESS_KEY_ID: abc123
      SECRET_ACCESS_KEY:
        value: 3214cbad
        masked: true
        protected: true
        raw: true
        variable_type: env_var
        environment_scope: '*'

- name: Set or update some CI/CD variables with expandable value
  community.general.gitlab_project_variable:
    api_url: https://gitlab.com
    api_token: secret_access_token
    project: markuman/dotfiles
    purge: false
    vars:
      ACCESS_KEY_ID: abc123
      SECRET_ACCESS_KEY:
        value: '$MY_OTHER_VARIABLE'
        masked: true
        protected: true
        raw: false
        variable_type: env_var
        environment_scope: '*'

- name: Delete one variable
  community.general.gitlab_project_variable:
    api_url: https://gitlab.com
    api_token: secret_access_token
    project: markuman/dotfiles
    state: absent
    vars:
      ACCESS_KEY_ID: abc123

返回值

常用返回值已在 此处 记录,以下是此模块特有的字段

描述

project_variable

字典

四个列表,分别列出已添加、已更新、已删除或存在的变量名。

返回值:始终返回

added

列表 / 元素=字符串

已创建的变量列表。

返回值:始终返回

示例: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]

removed

列表 / 元素=字符串

已删除的变量列表。

返回值:始终返回

示例: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]

untouched

列表 / 元素=字符串

存在的变量列表。

返回值:始终返回

示例: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]

updated

列表 / 元素=字符串

值已更改的变量列表。

返回值:始终返回

示例: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]

作者

  • Markus Bergholz (@markuman)