Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Бэкап gitlab из pipeline с вводом пароля в sudo


Бэкап gitlab из pipeline с вводом пароля в sudo

Сразу оговоримся, данная задача слегка извращение, чисто для примера

Задача выполнять из gitlab команды ansible с вводом пароля для sudo

На примере синтетической задачи делания ручками бэкапа gitlab

Пользователь gitlab-runner добавлен в группу судо:
adduser gitlab-runner sudo
Обратите внимане, группа при выполнении требует ввод пароля

Занесем в зашифрованный файл пароль gitlab-runner:
ansible-vault create ansible_pass_file
При этом естественно придумайте пароль для открытия и просмотра самого файла

Далее манипуляции при корректном вводе придуманного пароля:
ansible-vault edit ansible_pass_file
ansible-vault view ansible_pass_file

Содержимое в шифрованном виде:
cat ansible_pass_file
$ANSIBLE_VAULT;1.1;AES256
33346265353036663736356135656338836365646164646235646463616138346532396637373766
3266313937303213323030613965393230666662373365110c666137333261626236353666313431
64626430303234386337353032306530363361363537333630336534376434323536353632653465
3863633237653263330b326164653134663566616331363733356366613835376564656466316432
3965

Далее в Gitlab - Settings - CICD - Variables заводим переменную, например:
VAULT_PASS
В нее вводите паоль от шифрованного файла

В репозиторий добавляем 3 файла

Файл в зашифрованном виде с нашим паролем учетки gitlab-runner:
# ansible_pass_file

Теперь файл пайплайна:
# backup-gitlab.yml

Файл таков для ансибла:
# .gitlab-ci.yml

Обратите внимание на 2 закоменченных варианта

В судо вариант без ввода пароля, то несекьюрно, но вводить вообще ничего не потребовалось
#visudo: gitlab-runner ALL=(ALL) NOPASSWD:ALL
#     - ansible-playbook backup-gitlab.yml

В переменную VAULT_PASS внесен сразу пароль от учетки gitlab-runner
#$VAULT_PASS_var_from_settings_ci_cd
#     - ansible-playbook backup-gitlab.yml --extra-vars "ansible_become_password=$VAULT_PASS"

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект