Gitlab + Ansible: Добавить в конфигурацию сервис Redis и доступы
183 PLNДобрый день! Ищем специалиста по DevOps с опытом Gitlab, Ansible, Terraform, Redis
У нас есть рабочий скрипт на Gitlab + Ansible, который:
A.1. запускает машину в облаке Hetzner, устанавливает на ней CentOS
A.2. конфигурирует на ней нужные сервисы (nginx, PHP и т.д.)
A.3. скачивает код PHP из BitBucket
A.4. записывает доступы (например, к DB серверам) из Gitlab CI Variables в конфиг-файлы приложения PHP
На скрипт есть краткая документация объемом 10 страниц (по-английски). Также есть (очень ограниченный) доступ к специалисту, который это все устанавливал (по-русски).
В этот существующий скрипт нужно добавить следующие функции:
B.1. установку сервиса кеширования Redis на сервере
B.2. конфигурацию сервиса Redis:
1) открыть порты Redis для определенных IP-адресов
2) добавить три разных хоста, порта, доступа, пароля для сервиса Redis в Gitlab CI Variables
3) скачать конфиг-файлы из четырех репо в BitBucket, в каждый из них записать нужный (из трех возможных) доступ и пароль из Gitlab CI Variables, сохранить файл с этими доступами на сервере (это конфиг-файлы .env, который нужны для кода PHP/Laravel, и один конфиг-файл PHP-приложения)
Результат после успешного завершения задачи:
1. Запуск сервера работает без ошибок, как и работал до этого (см. пункты A.1-A.4 выше)
2. Сервис Redis доступен четырем приложениям (см. четыре репо в пункте B.2.3), все четыре могут сохранять данные в этот сервис и читать из него, таким образом все четыре приложения могут обмениваться данными между собой.
3. Нет никаких новых дыр в системе безопасности серверов (будем проверять на Vulnerabilities сканером Nessus).
Ждем Ваших ставок! Просим задавать все Ваши вопросы по задаче перед началом работ, чтобы было полное обоюдное понимание об ожидаемом результате. Будем отвечать на вопросы Вам лично, а также обновлять эту задачу, чтобы все увидели новые детали.
Добавляю детали о структуре существующего кода.
1) Добавляю файл с полной структурой папок и файлов в ветке master на Gitlab.
Как видите, каждый компонент на сервере лежит в отдельной папке в config_new_platform/roles (например, nginx).
2) Добавляю файл config_new_platform/site.yml
Как видите, этот файл просто показывает списик roles, которые нужно исполнить (например, nginx).
3) Добавляю файлы config_new_platform/roles/nginx:
a) handlers/main.yml
b) tasks/main.yml
c) templates/default.conf
d) templates/nginx.conf
Как видите, в этих файлах используются переменные из Gitlab CI Variables, например {{ TF_VAR_HOSTNAME }} => название хоста в терраформ или {{ SSL_privkey }} => ССЛ сертификат
Таким образом, уточняю задачу:
1. Установка и настройка Redis проходит аналогично установке и настройке nginx, описанной выше т.е. делаем новую роль, разбиваем скрипты на handlers, tasks, templates.
2. При установке используем переменные из Gitlab CI Variables. Особенно не используем никаких секретных данных (доступов, паролей) в самом скрипте.
Załączniki 6
Plik z rezultatem
Opinia zleceniodawcy o współpracy z Rostyslav Matiusha
Gitlab + Ansible: Добавить в конфигурацию сервис Redis и доступыSzczegółowo omówiliśmy zadanie i przekazaliśmy je Rostislavowi. Zaplanowali rozmowę, wszyscy znowu rozmawiali przez Skype, dali dostęp do Gitlab. Termin realizacji wynosił 3 dni.
Od tego czasu minęło 6 dni, nie otrzymaliśmy ani jednej wiadomości od Rostisława, chociaż pisaliśmy do niego wiele razy za pośrednictwem wszystkich kanałów (Skype, SMS, poczta, na tej stronie, zadzwoniono).
Mamy nadzieję, że nie przeżył jakiejś osobistej katastrofy i wszystko z nim w porządku - ale nie wiemy, ponieważ. po prostu nie odpowiada.