community.general.gitlab_user 模块 – 创建/更新/删除/阻塞/解除阻塞 GitLab 用户

注意

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

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

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

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

概要

  • 如果 GitLab 中不存在用户,则会创建该用户。

  • 如果用户存在且 state=absent,则会删除该用户。

  • 如果用户存在且 state=blocked,则会阻塞该用户。

  • 如果对用户进行了更改,则会更新该用户。

需求

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

参数

参数

注释

access_level

字符串

组的访问级别。可以使用以下选项之一。

访客

报告者

开发者

master(maintainer 的别名)

维护者

所有者

选项

  • "guest" ← (默认)

  • "reporter"

  • "developer"

  • "master"

  • "maintainer"

  • "owner"

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 证书捆绑包。

confirm

布尔值

需要确认。

选项

  • false

  • true ← (默认)

email

字符串

属于用户的电子邮件。

仅当 state=present 时才需要。

external

布尔值

为该用户定义外部参数。

选项

  • false ← (默认)

  • true

group

字符串

以 group/name 形式表示的父组的 ID 或完整路径。

将用户添加为该组的成员。

identities

列表 / 元素=字典

在 community.general 3.3.0 中添加

要为该用户添加/更新的身份列表。

要从此用户中删除所有其他身份,请设置 overwrite_identities=true

extern_uid

字符串

外部身份的用户 ID。

provider

字符串

外部身份提供程序的名称

isadmin

布尔值

授予用户管理员权限。

选项

  • false ← (默认)

  • true

name

字符串

要创建的用户的名称。

仅当 state=present 时才需要。

overwrite_identities

布尔值

在 community.general 3.3.0 中添加

用在此模块中添加的身份覆盖身份。

这意味着用户拥有的并且未在 identities 中列出的所有身份都将从用户中删除。

仅当为 identities 提供列表时才执行此操作。要删除所有身份,请提供一个空列表。

选项

  • false ← (默认)

  • true

password

字符串

用户的密码。

GitLab 服务器强制执行最小密码长度为 8,请使用 8 个或更多字符设置此值。

reset_password

布尔值

在 community.general 3.3.0 中添加

用户是否可以更改其密码。

选项

  • false ← (默认)

  • true

sshkey_expires_at

字符串

在 community.general 3.1.0 中添加

SSH 公钥的到期日期,采用 ISO 8601 格式 YYYY-MM-DDTHH:MM:SSZ

这仅在添加新的 SSH 公钥时使用。

sshkey_file

字符串

SSH 公钥本身。

sshkey_name

字符串

SSH 公钥的名称。

state

字符串

创建、删除或阻塞用户。

选项

  • "present" ← (默认)

  • "absent"

  • "blocked"

  • "unblocked"

username

字符串 / 必需

用户的用户名。

validate_certs

布尔值

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

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 模式下运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:不支持

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

备注

注意

  • 从 community.general 0.2.0 版本开始,删除用户时,名称、电子邮件和密码都是可选的。

示例

- name: "Delete GitLab User"
  community.general.gitlab_user:
    api_url: https://gitlab.example.com/
    api_token: "{{ access_token }}"
    username: myusername
    state: absent

- name: "Create GitLab User"
  community.general.gitlab_user:
    api_url: https://gitlab.example.com/
    validate_certs: true
    api_username: dj-wasabi
    api_password: "MySecretPassword"
    name: My Name
    username: myusername
    password: mysecretpassword
    email: [email protected]
    sshkey_name: MySSH
    sshkey_file: ssh-rsa AAAAB3NzaC1yc...
    state: present
    group: super_group/mon_group
    access_level: owner

- name: "Create GitLab User using external identity provider"
  community.general.gitlab_user:
    api_url: https://gitlab.example.com/
    validate_certs: true
    api_token: "{{ access_token }}"
    name: My Name
    username: myusername
    password: mysecretpassword
    email: [email protected]
    identities:
    - provider: Keycloak
      extern_uid: f278f95c-12c7-4d51-996f-758cc2eb11bc
    state: present
    group: super_group/mon_group
    access_level: owner

- name: "Block GitLab User"
  community.general.gitlab_user:
    api_url: https://gitlab.example.com/
    api_token: "{{ access_token }}"
    username: myusername
    state: blocked

- name: "Unblock GitLab User"
  community.general.gitlab_user:
    api_url: https://gitlab.example.com/
    api_token: "{{ access_token }}"
    username: myusername
    state: unblocked

返回值

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

描述

error

字符串

GitLab API 返回的错误消息

返回:失败

示例: "400: path is already in use"

msg

字符串

成功或失败消息

返回:始终返回

示例: "Success"

result

字典

从服务器解析的 JSON 响应

返回:始终返回

user

字典

API 对象

返回:始终返回

作者

  • Werner Dijkerman (@dj-wasabi)

  • Guillaume Martinez (@Lunik)

  • Lennert Mertens (@LennertMertens)

  • Stef Graces (@stgrace)