Всяко разное по администрированию…

Блог или записная книжка, в общем сюда думаю записывать всякие полезные штуки, изученные по работе.

Ссылки на шаблоны
https://github.com/Nefariusmag
https://hub.docker.com/u/nefariusmag/

На кого рекомендую подписаться:
letsclearitup.com.ua
blog.amartynov.ru
rtfm.co.ua
blog.amet13.name
vladimir-stupin.blogspot.ru/
geckich.blogspot.ru
markelov.blogspot.ru

ansible.lineinfile

Не знаю понадобится ли когда нибудь кому-то эта штука, но я потерял пару часов своей жизни, чтобы сделать комментирование и раскомментирование строк с серверами в nginx по одной за раз.
Эдакий включатель и выключатель для балансировщика нагрузки.

sed, как и replace дает нам мощный инструмент, чтобы разом закомментировать тысячи строк или меньше, но уже тогда надо точно указать какие это будут или настроить фильтр. Сказать просто — закомментируй мне последнюю строку отвечающую вот таким требованиям (server * :8090), для этих монстров у меня не вышло.

А вот ранее казавшийся мне малоповоротливым lineinfile в ansible смог.

Читать далее

Pipeline Jenkins

Для сборки и деплоя в jenkins очень удобно использовать pipeline, но если тестирование ручное (как в случае моей компании), то между тестовым стендом продакшеном нужна отмашка тестировщиков. Иногда нужно подождать 10 минут, а иногда и 12 часов.

И вот при использовании ручного подтверждения — input, если не правильно использовать может возникнуть блокирующая jenkins проблема, что потребует ребута.

Если сталкивались, то вот…

Читать далее

Создаем демонов

При работе с open source постоянно сталкиваюсь с отсутствием готовых сервисов. Чтобы не придумывать каждый раз велосипед родилось из недр интернета и мозга вот такой вот демон для остановки, старта, проверки статуса и перезапуска программы.

Читать далее

Циклы bash в одну строку

Периодически необходимо, чтобы в jenkins была вызвана башевская команда одной строкой — в основном для проверки условий и выполнения какого-то действия, и чтобы не записывать .sh на три строки я вызываю это из консоли.

Для while, for и if

Читать далее

Дружим jenkins c git

Недавно столкнулся с проблемой. Если нужно в jenkins выкачать git репозиторий (используя специальный плагин), а потом изменить, закоментить и запушить, то выскакивает ошибка. У него возникает «когнитивный диссонанс» между сессиями, что выкачивали и теми, что редактируют и отгружают. Ибо одно это один модуль jenkins, а второе — уже другой модуль для выполнения shell команд.
А именно он банально ругается, что репозиторий выкаченный пустой и ничего коммитить, а тем более отгружать он не собирается.Примерно в таком вот виде:

git commit -am 'add new files'

On branch master
nothing to commit, working directory clean
git push

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

Читать далее

Управление серверами (python 2.7)

Так как еще в прошлый раз я наткнулся на ограничения при работе с массивами в bash, то решил переписать скрипт управления серверами для работы на python, за одно дополнил его проверками и более удобным выбором количества серверов (не по одному, а через запятую). Получилось пока сыровато, но вполне функционально.

Прям супер ускорения работы по сравнению с bash я пока добиться не смог, что говорит о необходимости дальше разбираться.

Больше всего мне пока не нравится, что пока не реализовал защиты от неправильного ввода и когда список выводится для выбора серверов делает это со всеми скобками.

Читать далее