Использование учетных данных для ansible-galaxy с частным репозиторием gitlab в Jenkins Job

У меня есть набор ролей, которые мне нужно установить с помощью ansible-galaxy.

- src: 'https://gitlab.private/role-openstack-net.git'
  scm: 'git'
  version: '1.0.0'
  name: 'role-openstack-net'

- src: 'https://gitlab.private/role-openstack-subnet.git'
  scm: 'git'
  version: '1.0.0'
  name: 'role-openstack-subnet'

На самом деле у меня около 20 ролей.

Все роли являются частными, поэтому, когда я запускаю:

ansible-galaxy install -f -c -r galaxy.yml

он запрашивает у меня пользователя / пароль для каждой роли, что немного беспокоит

Вручную делаю:

git config --global credential.helper store

Я ввожу свои учетные данные один раз, а затем он запоминает их навсегда

Но как мне поступить в Jenkins Job?

Я видел здесь способ поставить токен:

https://github.com/ansible/ansible/pull/34621

но это не похоже на работу.

Есть идеи ?


person Juliatzin    schedule 09.04.2018    source источник


Ответы (1)


В настоящее время нет поддержки передачи параметров учетных данных в ansible-galaxy во время выполнения.

Можно добавить учетные данные в requirements.yml, но, как правило, добавление учетных данных в код не является идеальным из-за легкости, с которой другие могут однажды воспользоваться ими.

Решение состоит в том, чтобы обновить requirements.yml во время выполнения.

Создайте токен личного доступа Gitlab, просмотрев свой профиль и обновив настройки: https://private.gitlab/profile/personal_access_tokens< /а>

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

В вашем сценарии Jenkins используйте sed для обновления requirements.yml до ansible-galaxy install

sed -i "s#https://gitlab.private/#https://oauth2:[email protected]/#g requirements.yml

Если вы использовали Gitlab-ci вместо Jenkins, можно использовать существующий токен ci:

sed -i "s#https://gitlab.private/#https://gitlab-ci-token:[email protected]/#g requirements.yml
person Steve E.    schedule 10.07.2018