Spec-Zone.ru › Ansible

Модуль community.general.jenkins_credential — управление учетными данными и доменами Jenkins через API

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования. Подробную информацию см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.general.jenkins_credential.

Добавлено в community.general 11.1.0

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль позволяет управлять учетными данными Jenkins и областями действия доменов через HTTP API Jenkins.
  • Создание, обновление и удаление учетных данных различных типов, таких как username/password, secret text, SSH key, certificates, GitHub App, а также доменов.
  • Для областей действия доменов (type=scope) модуль поддерживает ограничения на основе hostname, hostname:port, path и scheme.

Требования

На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.

  • urllib3 >= 1.26.0

Параметры

Параметр

Комментарии

api_uri

string

Ссылка на API GitHub.

По умолчанию: "https://api.github.com"

appID

string

Идентификатор приложения GitHub.

description

string

Описание учетных данных или домена.

По умолчанию: ""

exc_hostname

list / elements=string

Список имен узлов, исключаемых из области действия.

Если имя узла указано в этом списке и в inc_hostname, оно исключается.

exc_hostname_port

list / elements=string

Список адресов узлов в формате host:port, исключаемых из области действия.

Если имя узла и порт указаны в этом списке и в inc_hostname_port, они исключаются.

exc_path

list / elements=string

Список путей URL, исключаемых из области действия.

Если путь также соответствует exc_path, он исключается.

При исключении подпути ранее включенного пути исключается только этот подпуть.

file_path

path

Путь к файлу с секретом (например, type=file или type=certificate).

Для type=certificate это может быть файл .p12 или .pem.

force

boolean

Принудительно обновить уже существующие учетные данные; используется с state=present.

Если задано значение true, существующие учетные данные удаляются перед созданием новых.

Всегда возвращает changed=true.

Варианты:

  • false ← (по умолчанию)
  • true

id

string

Идентификатор учетных данных или домена Jenkins.

При создании нового токена не передавайте id. Он генерируется автоматически.

inc_hostname

list / elements=string

Список имен узлов, включаемых в область действия.

inc_hostname_port

list / elements=string

Список host:port, включаемых в область действия.

inc_path

list / elements=string

Список путей URL, включаемых при сопоставлении учетных данных с доменами.

Сопоставление выполняется иерархически: подпути исключенных путей также исключаются, даже если они явно включены.

jenkins_password

string

Пароль Jenkins для создания токена. Обязателен, если type=token.

jenkins_user

string / обязательный

Пользователь Jenkins для аутентификации.

location

string

Расположение учетных данных. Допустимые значения: system или folder.

Если задано location=folder, параметру url необходимо присвоить значение <jenkins-server>/job/<folder_name>.

Варианты:

  • "system" ← (по умолчанию)
  • "folder"

name

string

Имя создаваемого токена. Обязательно, если type=token.

При создании нового токена не передавайте id. Он генерируется автоматически.

При создании двух токенов с одинаковым именем создаются два разных токена с разными значениями token_uuid.

Чтобы заменить токен другим токеном с таким же именем, сначала удалите исходный с помощью force=True.

owner

string

Владелец приложения GitHub.

passphrase

string

Парольная фраза SSH, если требуется.

password

string

Пароль для типов учетных данных, которым он необходим (например, type=user_and_passs или type=certificate).

private_key_path

path

Путь к файлу закрытого ключа для сертификатов PEM или приложений GitHub.

schemes

list / elements=string

Список схем для сопоставления (например, http или https).

scope

string

Область действия домена учетных данных Jenkins.

При удалении области действия домена удаляются все находящиеся в ней учетные данные.

По умолчанию: "_"

secret

string

Текст секрета (используется при type=text).

state

string

Состояние учетных данных.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

token

string

Токен API Jenkins. Обязателен, если не задано type=token.

type

string

Тип учетных данных или действия.

Варианты:

  • "user_and_pass"
  • "file"
  • "text"
  • "github_app"
  • "ssh_key"
  • "certificate"
  • "scope"
  • "token"

url

string

URL сервера Jenkins.

По умолчанию: "http://localhost:8080"

username

string

Имя пользователя для типов учетных данных, которым оно необходимо (например, type=ssh_key или type=user_and_pass).

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может выполняться в режиме check_mode и возвращать прогноз изменения состояния без изменения целевого объекта.

diff_mode

Поддержка: нет

В режиме сравнения возвращает сведения об изменениях (или возможных изменениях в check_mode).

Примеры

- name: Generate token
  community.general.jenkins_credential:
    name: "test-token"
    jenkins_user: "admin"
    jenkins_password: "password"
    type: "token"
  register: token_result

- name: Save Jenkins token to INI file (you must secure/encrypt separately)
  vars:
    jenkins_token_ini: # Defining dict for to_ini filter
      api_token:
        uuid: "{{ token_result.token_uuid }}"
        token: "{{ token_result.token }}"
  ansible.builtin.copy:
    dest: "/secure/path/jenkins_token.ini"
    mode: '0600'
    content: "{{ jenkins_token_ini | community.general.to_ini }}"

# Note:
# (1) Jenkins token is intended to be securely stored in encrypted storage
#     or secrets vault outside the playbook, retrieved when needed.
# (2) Examples below showcasing token retrieval from
#     variable "token_result" are NOT how it should be used to add credentials.
# (3) Data in "token_result" is inconsistent and unavailable
#     across different playbooks and multiple executions.

- name: Add CUSTOM scope credential
  community.general.jenkins_credential:
    id: "CUSTOM"
    type: "scope"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    description: "Custom scope credential"
    inc_path:
      - "include/path"
      - "include/path2"
    exc_path:
      - "exclude/path"
      - "exclude/path2"
    inc_hostname:
      - "included-hostname"
      - "included-hostname2"
    exc_hostname:
      - "excluded-hostname"
      - "excluded-hostname2"
    schemes:
      - "http"
      - "https"
    inc_hostname_port:
      - "included-hostname:7000"
      - "included-hostname2:7000"
    exc_hostname_port:
      - "excluded-hostname:7000"
      - "excluded-hostname2:7000"

- name: Add user_and_pass credential
  community.general.jenkins_credential:
    id: "userpass-id"
    type: "user_and_pass"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    description: "User and password credential"
    username: "user1"
    password: "pass1"

- name: Add file credential to custom scope
  community.general.jenkins_credential:
    id: "file-id"
    type: "file"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    scope: "CUSTOM"
    description: "File credential"
    file_path: "../vars/my-secret.pem"

- name: Add text credential to folder
  community.general.jenkins_credential:
    id: "text-id"
    type: "text"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    description: "Text credential"
    secret: "mysecrettext"
    location: "folder"
    url: "http://localhost:8080/job/test"

- name: Add githubApp credential
  community.general.jenkins_credential:
    id: "githubapp-id"
    type: "github_app"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    description: "GitHub app credential"
    appID: "12345"
    file_path: "../vars/github.pem"
    owner: "github_owner"

- name: Add sshKey credential
  community.general.jenkins_credential:
    id: "sshkey-id"
    type: "ssh_key"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    description: "SSH key credential"
    username: "sshuser"
    file_path: "../vars/ssh_key"
    passphrase: 1234

- name: Add certificate credential (p12)
  community.general.jenkins_credential:
    id: "certificate-id"
    type: "certificate"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    description: "Certificate credential"
    password: "12345678901234"
    file_path: "../vars/certificate.p12"

- name: Add certificate credential (pem)
  community.general.jenkins_credential:
    id: "certificate-id-pem"
    type: "certificate"
    jenkins_user: "admin"
    token: "{{ token_result.token }}"
    description: "Certificate credential (pem)"
    file_path: "../vars/cert.pem"
    private_key_path: "../vars/private.key"

Возвращаемые значения

Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

details

string

Дополнительные сведения в случае ошибок.

Возвращается: при ошибке

token

string

Сгенерированный токен API, если type=token.

Он понадобится для последующей аутентификации вызовов API.

Его следует хранить в безопасном месте, поскольку он возвращается только один раз.

Возвращается: при успехе

token_uuid

string

Сгенерированный идентификатор токена.

Передайте это значение модулю как id, чтобы позднее изменить или отозвать токен.

Его следует хранить в безопасном месте, поскольку он возвращается только один раз.

Возвращается: при успехе

Авторы

  • Youssef Ali (@YoussefKhalidAli)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Обратиться за помощью
  • Сообщить об ошибке
  • Предложить функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/jenkins_credential_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API