Gitlab + Ansible: Добавить в конфигурацию сервис Redis и доступы
2225 UAHДобрый день! Ищем специалиста по 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
Результат после успешного завершения задачи:
1. Установка и настройка Redis проходит аналогично установке и настройке nginx, описанной выше т.е. делаем новую роль, разбиваем скрипты на handlers, tasks, templates.
2. При установке используем переменные из Gitlab CI Variables. Особенно не используем никаких секретных данных (доступов, паролей) в самом скрипте.
3. Запуск сервера работает без ошибок, как и работал до этого (см. пункты A.1-A.4 выше)
4. Сервис Redis доступен нашим приложениям, все могут сохранять данные в этот сервис и читать из него, таким образом все приложения могут обмениваться данными между собой.
5. Нет никаких новых дыр в системе безопасности серверов (будем проверять на 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. При чем Терраформ?
Один скрипт Терраформ поднимает на выбор один из 3 серверов с приложениями (DEV, TEST, PROD) и соответствующий ему сервер с БД и микросервисами (DB DEV, DB TEST, DB PROD).
Сервис Redis нужно именно запустить на сервере с БД и микросервисами. А микросервисы и приложения с обеих серверов будут с ним работать, доступы у них будут в локальных конфиг-файлах. То есть, в принципе Терраформ не причем.
2. Как отлаживать?
Сервер DEV с приложениями и БД сервер DB DEV с микросервисами и с сервисом Redis полностью в Вашем распоряжении. На сервер DEV будет загружаться код, который будет пытаться соединиться с сервисом Redis на DB DEV. Таким образом, Вы легко увидите, работает ли сервис так, как должен.
Приложения 5
Отзыв заказчика о сотрудничестве с Михаилом Савиным
Gitlab + Ansible: Добавить в конфигурацию сервис Redis и доступыБольшое спасибо, всё супер! Мы довольны и будем обращаться в будущем.
Отзыв фрилансера о сотрудничестве с Nikolaus Haufler
Gitlab + Ansible: Добавить в конфигурацию сервис Redis и доступыОтличный заказчик! Четко поставленная задача, профессиональный взгляд на задачу. Однозначно рекомендую к сотрудничеству!
Актуальные фриланс-проекты в категории DevOps
Настройка системы резервного копирования и оптимизация серверной инфраструктурыЦель работы: Обеспечить надежное сохранение данных CRM-системы и приложения путем внедрения автоматизированной системы резервного копирования (Backups), а также провести ряд серверных доработок для повышения стабильности, безопасности и производительности инфраструктуры. DevOps, Базы данных и SQL ∙ 5 дней 8 часов назад ∙ 27 ставок |
Развертывание Ruby on Rails проекта на VPS + Входящая маршрутизация электронной почтыНужна помощь в развертывании платформы для автоматизации запросов на публичную информацию (на базе open-source движка Alaveteli). Проект работает как почтовый маршрутизатор: генерирует уникальные email-адреса для каждого запроса, отправляет их в государственные органы, а ответы… DevOps, Linux и Unix ∙ 11 дней 10 часов назад ∙ 11 ставок |
Инженер по инфраструктуре резидентных проксиМы строим сеть резидентных прокси с нуля — полностью собственную, без сторонних поставщиков. Нам нужен один исключительный сетевой инженер для создания всей технической базы. Что вы будете строить: - Android SDK для фонового использования, который направляет прокси-трафик через… C и C++, DevOps ∙ 13 дней 12 часов назад ∙ 15 ставок |