LINUX.ORG.RU

Сообщения trider

 

Насущие вопросы по инфраструктуре на базе docker

Всем привет! Пытаюсь расставить в голове все точки над i, помогите пожалуйста.

1. Есть кучка серверов под web с различными мощностями с чисто установленным софтом nginx, php-fpm, PostgreSQL. Сейчас внедряем 3 новых сервера с docker swarm, где будут контейнеры с микросервисами. Вопрос: На сколько адекватно переинсталлить уже имеющиеся разношерстные сервера под web, натянуть на них docker-engine, запустить текущие сервисы nginx/php-fpm/PostgreSQL в контейнерах и пристегнуть их worker'ами к manager'ам для микросервисов на новой инфраструктуре? Или как тогда всё превратить в docker swarm инфраструктуру?

2. Как лучше обеспечить управление конфигурацией nginx/java........ и т.д. в контейнерах? Собирать каждый раз образ с новым nginx.conf из которого будем запускать контейнер или распространять nginx.conf на хост-машины и подключать volume к контейнеру?

3. Такой же вопрос и в части деплоя приложений. Каких-нибудь php/python-скриптов. Сейчас код хранится в GIT'е и деплой релиза, это просто git checkout на нужную ветку в локальном репозе на web-сервере. Может быть вывести volume на хост-машине для контейнера с web-сервером, где будет локальный репозиторий GIT? Или как-то автоматизировать сборку контейнера внутри которого локальный репозиторий GIT с нужной веткой, мне кажется это очень неудобным.

4. У меня есть несколько условно разделяемых подсистем в рамках моего проекта напр. 3, они раскиданы по 2м ЦОДам, из серии web-сайт, Микросервисы, событийно-ориентированные приложения на Java для внутренних задач. Как лучше сделать, 3 docker swarm инфраструктуры или всё завести в одну инфраструктуру. Мне кажется лучше 3и фермы, т.к. нечётное число ЦОДов и протокол RAFT несовместимы. Тогда встаёт вопрос на сколько адекватно управлять Ansible разными swarm-инфраструктурами? И чем лучше управлять, когда у тебя несколько независимых swarm-инфраструктур?

 

trider
()

docker swarm в 2х цодах

Всем привет! Встал в тупик с реализацией протокола raft, который лежит в основе swarm. Дано: 2 ЦОДа (основной и резервный), на выходе есть железка, которая работает по BGP и может «приземлять» белый IP на рабочий ЦОД. В 2х ЦОДах мне могут выделить любое число серверов под инфраструктуру docker swarm, на выходе надо развернуть отказоустойчивые java приложения и elasticsearch. И тут я не понимаю с учётом кворума в каком кол-ве мне разворачивать сервера под инфраструктуру swarm'а в 2х ЦОДах, если я разберусь с этой задачей, то и станет понятно в каком объёме разворачивать shard-кластер под ELK. Нигде нету конкретных примеров, одни критины разработчики etcd, свято поддерживающие raft начали мне объяснять на GitHube, что мне надо любыми путями найти 3й ЦОД и развернуться на 3 ЦОДа и у меня нету других путей, ну нету этого 3го ЦОДа и не будет никак и денег под него не будет. Дали 2 ЦОДа и у бизнеса вопрос зачем 3ий ЦОД.

 

trider
()

Помогите решить задачу с logrotate

Бьюсь уже не первый день, подскажите как реализовать такое.
У меня есть логи, которые генерит PHP скрипт в формате:
20180116.log
20180117.log
20180119.log
Что мне нужно от logrotate:

  1. Чтобы он ежедневно тупо архивировал лог, не добавляя в название дату, т.к. она уже есть в имени (как такое сделать я не нашёл)
  2. Чтобы он контролировал горизонт хранения архивных логов
  3. Есть риски, что при увеличении нагрузок каждый лог-файл начнёт быстро пухнуть, поэтому logrotate должен ещё реагировать на maxsize и в итоге дриектория с логами не должна переполнится

 

trider
()

Добавить атрибуты в OpenLDAP

Всем привет! Мы юзали старый SUN Directory Server Enterprise Edition и потребовалось переехать на OpenLDAP, всем понятно наверное почему. Для SUN Directory у меня был ldiff с уникальными атрибутами, которые мне требуется запилить по аналогии в OpenLDAP.

dn: cn=schema
objectClass: top
objectClass: ldapSubentry
objectClass: subschema
cn: schema
aci: (target="ldap:///cn=schema")(targetattr !="aci")(version 3.0;acl "anonymo
 us, no acis"; allow (read, search, compare) userdn = "ldap:///anyone";)
modifiersName: cn=admin,cn=administrators,cn=dscc
modifyTimestamp: 20140825092336Z
attributeTypes: ( firstName-oid NAME 'firstName' DESC 'First name of a person'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( privateEmail-oid NAME 'privateEmail' DESC 'Private email of
 a person' SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 X-ORIGIN 'user defined' )
attributeTypes: ( userOid-oid NAME 'userOid'  SYNTAX 1.3.6.1.4.1.1466.115.121.
 1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( isTrusted-oid NAME 'isTrusted' DESC 'Determines if user is t
 rusted' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-ORIGIN 'user defi
 ned' )
objectClasses: ( myUser-oid NAME 'myUser' DESC 'user for my entity' SUP
 top STRUCTURAL MUST ( uid $ isTrusted $ nsAccountLock $ firstName ) MAY ( la
 stName $ userPassword $ privateEmail $ otpContact $ otp
 AuthnFlag $ privatePhone $ userOid ) X-ORIGIN 'user defined' )
nsSchemaCSN: 53fb0098000000000000

У OpenLDAP вот такой формат ldif для организации схемы:

olcAttributeTypes: ( 0.9.2342.19200300.100.1.25
  NAME ( 'dc' 'domainComponent' )
  DESC 'RFC1274/2247: domain component'
  EQUALITY caseIgnoreIA5Match
  SUBSTR caseIgnoreIA5SubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
Как мне переделать мои атрибуты в файлике ldif под OpenLDAP мне в упор непонятно

  • 1. Я не понимаю какой мне OID указывать в случае с OpenLDAP типа 0.9.2342.19200300.100.1.25, когда для SUN Directory у меня указывался OID в формате userOid-oid
  • 2. Я не понимаю что такое SINGLE-VALUE X-ORIGIN и нужны ли они мне в OpenLDAP
  • 3. Для моего Sun Directory путь размещения атрибутов:
    dn: cn=schema
    objectClass: top
    objectClass: ldapSubentry
    objectClass: subschema
    cn: schema
    а какой dn и objectClass мне в ldif для OpenLDAP указать?

 

trider
()

RSS подписка на новые темы