S2E08
Работа над ошибками с S2E06-07:
Привет. По логике пайплайна всё нормально, выбор окружения и тегов из веб интерфейса сделан, dev переводится в группу stage, выбранные теги уходят в запуск ансибла. Второй if можно свернуть до BOOK_TAGS="$Tags", значения у тебя и так ограничены списком. ssh-agent sh -c тоже лишний, агент умирает вместе с этим subshell, дальше у тебя работает ключ из ~/.ssh/id_rsa.
Во-первых, я действительно второй If поторопился сделать
Во-вторых, в прошлые разы еще меня царапала мысля, при работе над ошибками проверил - не сворачивал, а удалил второй if. Незачем использовать две переменные, ведь пользователь без вариантов задаст мне значение (а если забудет - я указал дефолтное). То меняю $BOOK_TAGS на $Tags в вызове плейбука и всё.
ssh-agent sh -c ... полностью выпилил.
Из интереса и любви к искусству заменил cat $SSH_KEY > ~/.ssh/id_rsa на cp $SSH_KEY ~/.ssh/id_rsa. Попутно безуспешно попытавшись понять, почему я использовал cat ранее
есть критичный момент, в runner/defaults/main.yml лежат два токена раннеров glrt- они в паблике, тут аккуратнее, боты часто их парсят и использую твои раннеры для плохого ) вынести в защищённые сиайсиди Variables и вычисти из истории репозитория. Удалить только из текущего файла недостаточно. Проверка через grep '{{ TOKEN }}' тоже может засветить токен в выводе ансибла, этим задачам как минимум нужен no_log: true.
Да, совсем забыл при переезде в гитлаб. Эти токены использовались для регистрации раннеров ансиблом.
Вариант с защищенной переменной надо обмозговать. Ведь без зарегенных раннеров я не запущу ансибл через CI/CD, а если запустил - значит раннеры уже есть и мне токены не нужны.
Вариант с хашикорп ваультом - та же история, просто токен будет светиться не от раннеров, а от ваульта.
Вариант с ансибл ваультом отпадает по причине парольного ключа в гитигноре.
Итого: универсальный путь я затруднился придумать. Пока интересно получается переехать в гитлаб CI/CD, отказавшись от консоли, запихивать все в Хашиваульт, а токен от него спрятать с защищенные переменные Гитлаба. В техдолг/бэклог
И chmod -R 700 ../infra-2 лучше заменить на работу через $CI_PROJECT_DIR без рекурсии, сейчас все файлы становятся исполняемыми, а пайплайн прибит к имени каталога.
Не смог вспомнить и, главное, понять, зачем я это запихал. Переиспользование своих старых скриптов - капец какое опасное дело. Притом, что я прошлогодний скрипт вроде весь облазил и переделывал под новый проект.
Полностью убрал эту строку.
Результат: https://gitlab.com/littlegreencat/devops
После вышеописанного запустился (с выбором отличной от дефолтной переменной $Tags) - получил выполнение ожидаемых работ и success
S2E08
И по-прежнему настаиваю, что гугл говорит о Deprecated параметре version в композике.
Не встретил/не вспомнил каких-то проблемов.
Пипелина ожидаемо отработала, сбилдила, задеплоила и ожидаемо умерла на попытке отправить артефакты в телегу.