• Nginx(хост) + Virtulhostы PHP FPM (разные версии в Docker ) +Mysql (хост)?

    @viiy
    Linux сисадмин \ DevOps
    Зачем это вы пытаетесь сделать не совсем понятно.
    У каждого инструмента свое назначение.
    Docker - для stateless сервисов, которые не хранят состояние, не перезаписывают внутри себя файлы, которые умирают, и никто не переживает, что внутри чтото потерлось. Идеальное применение докера - для микросервисов. Этакий сервис который работает, что-то потихому делает в фоне, а как помрет, его перезапустят и он продолжит работать. Идеально когда внутри один сервис и других нет.
    В вашем случае php в докер пихать не очень целесообразно. web-сервер в докер пихать тоже не рекомендуется. Потому как эта связка статичная, ее нельзя ломать, потому как сломается все. Хранить сайты внури докера вобще плохое решение.
    Мне кажется, из той инфрмации что вы предоставили, вам лучше рассмотреть вместо докера какую-либо виртуализацию в виде lxc, kvm.
    Mysql с докере вобще криминал, никто это не рекомендует, т.к база должна жить всегда, дисковую подсистему использовать по максимуму, и причин ее изолитьвать в докере практически не бывает. Проще поднять еще один инстанс на том же сервере или другом.
    Оговорочка. Можно оживить связку nginx+fpm+сайт в контейнерах. Но целесообразно это когда у вас есть какой то внешний условный nginx, который прокидывает proxy-pass-ами на сайтики нижележащего уровня. Но тут нужна серьезная обвязка в виде оркестрации микросервисов (docker-swarm минимум, kubernates), service discovery какой то (consul, etcd). Но для простых задач с сайтиками это просто убийственно сложно и не нужно.
    Если опишите задачу более подробно, будет легче дать совет.
    Ответ написан
    Комментировать
  • Как слушать порт постоянно (bash+netcat+python)?

    @viiy
    Linux сисадмин \ DevOps
    Не могу не упомянуть такие вещи inetd/xinetd
    Да, их уже похоронили и даже в ubuntu 14 уже нет
    Хотя жаль, они как раз позволяли скриптам/тулзам не имеющим сетевых функций получить возможность слушать что-то по сети
    Чисто для истории, текущую задачу целесообразнее выполнить в одном скрипте + какойнибудь supervisord
    Ответ написан
    Комментировать
  • Использовать ли Python, когда можно обойтись bash?

    @viiy
    Linux сисадмин \ DevOps
    Сила bash не в синтаксисе, а в тесной работе с различными утилитами
    Невозможно на питоне быстро и элегантно делать то, что на баше называются "однострочниками" Когда не хватает правильных циклов, массивов, работы со строками - на помощь приходит awk, который будет быстрее в разы чем питон. Sed, grep, tr, cut сделают с тектом все что вы хотите и тоже будут быстрее чем питоновский регексп. И все это есть везде, на linux, os x, solaris, freebsd уже из коробки
    В общем - учите баш
    Ответ написан
    Комментировать
  • Эмоциональное выгорание, перегрузка. Как победить, восстановиться?

    @viiy
    Linux сисадмин \ DevOps
    Индивидуально все очень.
    Универсальный ответ вам уже дали - отдохните.
    Выгорание может быть не только на фоне работы, а вообще по поводу "жизнь моя жестянка", бессознательное чувство, которое говорит о том, что вы движетесь не в том направлении.
    У меня был такой период, проработав в одной компании почти 7 лет, настал момент когда осточертело все. Я думал что причина - работа, так же задавался вопросами что "перегорел". Брал отпуск на месяц (сейчас это роскошь) и уехал не спеша в Крым на машине где снял домик у моря и жил не вспоминая работу. Думал что отпустит, так и было, но по приезду все вернулось буквально за день. Обстановку усугублял страх потерять работу, но я это переборол и уволился. Потом сменил еще 3 работы за 2 года, и даже попробовал фриланс. Под конец переехал в другой город (не Москву). И знаете что я сейчас понял? Возможность найти себе работу в любых обстоятельствах, очень дорогого стоит и очень придает уверенности, спасая от депрессии. И наоборот, когда со всех сторон окружают страхи и переживания(ложные и реальные) - вот это путь к психическим расстройствам. Работа это не семья и не жена, с ней необходимо расставаться легко. Тем более вы в Москве, а не в Богом забытых регионах.
    Ответ написан
    5 комментариев
  • Как искать текст в куче файлов?

    @viiy
    Linux сисадмин \ DevOps
    Попробуйте составлять менее строгий regexp
    И включите perl mode

    cat > ./russian.txt
    вася
    петя
    маша
    даша


    grep -P "вася|маша" ./russian.txt 
    вася
    маша
    Ответ написан
  • Какие значения пинга между серверами в пределах одного Дата-цетра?

    @viiy
    Linux сисадмин \ DevOps
    1) 1ms и меньше.
    2) что подразумевается по "приватной" сетью? Отдельный Vlan? Ни на сколько не увеличится
    3) Стабилен до критических показателей загрузки сетевого оборудования
    4) Зависит от сетевого оборудования, сколько свичей нужно пройти пакету по пути от отправителя до получателя. Минимальные значения пинга будут при расположении серверов в одной стойке, подключенному к одному свичу, имеющих одну и туже сеть. Но разница может быть минимальна или вобще не заметна от серверов подключенных в разных стойках, имеющих разные сети, имеющих в промежутке 3-4 свича и роутер.
    Ответ написан
    Комментировать
  • Какие особенности сборки морозоустойчивого робота?

    @viiy
    Linux сисадмин \ DevOps
    Есть небольшой опыт, не в робостроении, а использовании бытовой электроники на морозе. Короче, живет на балконе комп (Alix 3d2) в алюминиевом корпусе, к нему подключена аналоговая камера в самодельном корпусе + видео ресивер типа easycap. Так вот, комп пережил морозы -42 и писал при этом на подключенную compact flash (не industrial). На проце температура была +2. Аналоговая камера в тесном самодельном корпусе так же работала, а вот ресивер нет. Камеру подключил к телику и она показывала. Чип на камере прилично греется, и за счет самого себя отапливает пространство в корпусе. Точно так же комп, хотя и было -42, в корпусе было слегка минус, а но все работало. Возможно, вы тоже сможете применить этот способ.

    P.S где то до -20 и ресивер работал. Все это находится на закрытом от ветра балконе.
    Ответ написан
    Комментировать
  • Как в LampServer и MySQL изменить группу пользователя?

    @viiy
    Linux сисадмин \ DevOps
    Посмотрите User и Group в недрах httpd.conf
    Ответ написан
  • Для чего нужен Docker?

    @viiy
    Linux сисадмин \ DevOps
    Представьте что нет никакой ложки докера.

    1) Есть одна физическая машина. Вы устанвливаете софт, разные приложухи, базы, web сервера, заходят тестовые юзеры, что-то запускают. Первая проблема - вы не понимаете кому что надо, кто владелец файлов, приложух, зачем висят демоны и кто за это ответственнен. Как выход, вы решаете это разделить на виртуалки.

    2) У вас есть физическая машина + на ней виртуалки. Вы выделяете под каждую задачу свою виртуалку, там сидят отдельные пользователи, вы навели какой то порядок. Появляется задача - пользователи хотят php 6, а его нет, хотят python3, а его нет, хотят Mongo, а она старой версии. Вы обновляете репозитарии, качаете новые пакеты, ставите, часть пользователей довольны, часть нет - им нужна старая версия какая была. Упс!

    3) Одна физическая машина + еще больше виртуальных машин. Вы разделили всех пользователей так, чтобы никто не дрался за версии софта, если нужен php6 - иди на эту машину, нужен php5 - вот на эту. Все счастливы, но появляются разработчики, которые говорят буквально так - "а у меня на рабочей машине все работает, я перенес все как было на виртуалку, а у меня появляется ошибка missing library libXXX.so.X". И вы понимаете что вам остается только создать полную копию машины разработчика, чтобы софт поехал на этой виртуалке без ошибок... И тут появляется Docker! :)

    4) Docker решает именно эту проблему. Вам не нужно заботится о софте который установлен на сервере/виртуалке. Вы просто берете и переносите софт со всеми "кишками" на другой сервер и он просто работает. Работает за счет того, что все "кишки" это слои файловой системы нанизанные как бисер друг на друга. Дополнительно решается проблема свободного места, т.к слои многократно переиспользуются контейнерами, если вам нужен php + одна библиотека, а другому php + другая библиотека, вы используете (грубо говоря) слой php, а для дополнительной библиотеки делаете отдельный слой, одновременно другой человек делает над php другой слой и вы не деретесь между собой и не видите чужих библиотек. Это грубо и скорее всего ради одной библиотеки никто новый слой не делает, делают слой пожирнее.

    Все запущенные процессы Docker помещает в изолированную среду процессов, файловой системы и сетевого стека. Есть много особенностей по работе с Docker, т.к он предполагает, что в одном контейнере вы запускаете один процесс. Если вам нужно запустить целый набор демоном, тут появляются проблемы, нужно писать шелл-скрипт, который все это поднимет в контейнере. Так же есть особенности по сети, файловой системе. Для кого то Docker спасение и решение всех проблем, но я как сисадмин от этого всего не в восторге.
    Ответ написан
    15 комментариев
  • Можно ли рассматривать Zipkin как систему мониторинга?

    @viiy
    Linux сисадмин \ DevOps
    Не относительно Zipkin.
    Если с помощью какого-либо инструмента у вас получается что-то мониторить, можете это называть системой мониторинга конкретно в вашем случае. Вопрос лишь в терминологии.

    Вобще это конечно "Zipkin is a distributed tracing system"
    Ответ написан
  • Почему на последних версиях Ubuntu/Fedora адские грабли с настройкой Lemp/Lamp?

    @viiy
    Linux сисадмин \ DevOps
    Ваш вопрос из разряда "почему жизнь дерьмо?"

    У 500-й ошибки есть причина. Откройте error.log у сервера и там все увидите.

    Стандартный алгоритм для поиска ответа в 99% случаях в системах Unix

    1) смотрим логи демона
    2) смотрим stdout, stderr (короче говоря что в консоль пишет) демона
    3) копируем в буфер обмена найденную строку ошибки
    4) вставляем в гугль
    5) профит!

    Скорее всего уже на этапе 2, в случаях сложнее на этапе 3 вы уже поймете в чем загвоздка.
    Ответ написан
  • Как в BASH скрипте написать дату и время?

    @viiy
    Linux сисадмин \ DevOps
    git commit -a -m "комментарий `date +"%Y%m%d %H:%M"`"
    или
    git commit -a -m "комментарий $(date +"%Y%m%d %H:%M")"

    нужный формат даты подберите из "man date"
    Ответ написан
    Комментировать
  • Как Настроить Прокси для Командной Строки в Linux?

    @viiy
    Linux сисадмин \ DevOps
    sudo на все ваши переменные и функции смотрит как на ...

    export a=123
    
    $ env |grep ^a
    a=123
    
    $ sudo env |grep ^a


    Применяйте значения после sudo
    Ответ написан
    3 комментария
  • Можно ли в HAProxy натроить балансировку в зависимости от загрузки CPU?

    @viiy
    Linux сисадмин \ DevOps
    Можно настроить.

    Посмотрите решение как балансируется percona xtradb cluster.
    А именно:

    - xinetd
    - скрипт поверх xinetd на определенном порту, который возвращает http статус 200 или другой в зависимости от чего-либо
    - http haproxy проверка, которая обращается к xinetd, где работает скрипт, который возвращает код
    - haproxy балансировка на основе проверки

    О скрипте.
    Можете настроить, чтобы он возвращал статус НЕ 200, когда cpuload зашкаливает

    Еще более конкретно
    https://serverfault.com/questions/466059/haproxy-p...
    Ответ написан
    2 комментария
  • Как решить проблемы с правами?

    @viiy
    Linux сисадмин \ DevOps
    Посмотрите от какого пользователя работает apache (User в httpd.conf), обычно это apache
    Смените владельца дирректории
    chown -R apache:apache /var/www

    После этого chmod будет работать как надо
    Ответ написан
    2 комментария
  • Способы управления ключами ssh на Linux Servers?

    @viiy
    Linux сисадмин \ DevOps
    Просто и сурово, через git pull со стороны удаленного сервера :) Или rsync.
    В крон добавить задание раз в 5-10 минут подтягивать изменение с сервера конфигураций.
    Ответ написан
    Комментировать
  • Какие перспективы развития у системного администратора с приходом обачных технологий?

    @viiy
    Linux сисадмин \ DevOps
    Админам, увы, приходится менять квалификацию в сторону совершенствования. На рынке IT движуха сильная. То, что раньше надо было админить, имею ввиду офисные вещи, автоматизируется, софт уходит в Web и это отлично! Терпеть не могу админить офисы, очень мало админил это и надеюсь не придется. Вы говорите, "Сейчас уже покупается облачный виртуальный сервер, выполняется пара манипуляций и сервер работает.Поддержкой занимаются сами облака.". Вы понимаете что за этим стоит? Высочайшей квалификации админы. Чтобы это облако работало, поддержки нужно очень много. Скажу так, хорошо что это происходит, есть повод повышать квалификацию и стремится работать на такие крупные, развитые компании. Да, мест мало, разработчики нужны в десятки раз больше чем админы, но что поделать. Сейчас в админстве есть перекос в DevOps, это направление очень популярно, с его неотъемлемой часть в виде Continuous Integration и Continuous Deployment и в частности Chef, Puppet, Ansible. + Jenkins (и др). Но это не значит что пропали админы в IT компаниях, просто им приходится изучать новые инструменты.
    Ответ написан
  • Как делать декомпрессию gz-файлов на стороне клиента?

    @viiy
    Linux сисадмин \ DevOps
    В общем, вы не в ту сторону копаете...

    Сжатие статических файлов всегда выполняется на стороне сервера, а декомпрессия на стороне клиента. Переименовывать файлы для этого не нужно. Возможно, оно и до этого у вас работало.

    Требования два:
    - сервер должен быть настроен на сжатие статики
    - клиент должен передать заголовок что он поддерживает сжатие

    Проверить можно так: (обратите внимание на Accept-Encoding: gzip)
    curl -I --header "Accept-Encoding: gzip,deflate" http://pastie.org


    Ответ:
    ...
    ...
    Content-Encoding: gzip


    Таким же способом можете проверить ваши js и убедиться что они сжимаются или нет.
    Ответ написан
  • Как установить Tails?

    @viiy
    Linux сисадмин \ DevOps
    Способов множество, зависят от типа виртуализации, который вы не указали.
    vmware, qemu, virualbox имеют утилиты по конвертации файла образа ВМ в образ диска, который потом можно записать блочно.
    Ответ написан
  • Как запустить утилиту с переменным числом ключей из bash?

    @viiy
    Linux сисадмин \ DevOps
    Удобней всего через getopts

    FINDOPTS=''
    
    while getopts "i:e:" opt; do
        case $opt in
            e) FINDOPTS=$FINDOPTS" --exclude $OPTARG ";;
            i) FINDOPTS=$FINDOPTS" --include $OPTARG ";;
        esac
    done
    
    echo $FINDOPTS


    $ ./getopts.sh -i path1 -i path2 -i path3 -e path4 -e path5 
    --include path1 --include path2 --include path3 --exclude path4 --exclude path5


    Это абстрактный способ, адаптируйте аргументы под ваши задачи.
    Ответ написан
    2 комментария