Метка «puppet»

imageВот и настал тот день, когда пришлось отложить в сторону кукбуки, рецепты, нож шеф-повара и немного позаниматься кукловодством.
Для начала постановка задачи довольно тривиальная — организовать для девелоперов возможность быстро и просто разворачивать окружение. Обязательное требование — для автоконфигурации использовать Puppet EnterpriseЧитать полностью »

Задача

Необходимо развернуть сервер со следующими требованиями:

  • Массив дисков RAID-10
  • Full Performance in BIOS
  • Windows Server 2012 с всеми обновлениями и патчами
  • Это будущий сервер приложений со службами для которых необходим .net 4.5
  • Мониторинг доступности сервера, а также CPU, Памяти и свободного места на диске
  • Необходимо подключить сервер к системе выкатки релизов Octopus Deploy

Сложности

Основное требование здесь — все должно быть максимально автоматизировано, участие человека минимизировано до 1 минута «в начале» и 1 минута «в конце». Целью такой автоматизации является потенциальная необходимость «поднять» в дальнейшем несколько новых серверов достаточно быстро. Решение должно быть не сложным для восприятия младшими админами и разработчиками, в чьи обязанности развертывание серверов не входит.

Решение

Начнем с того, что все, что у меня сейчас есть — это работающий сервер, который подключен к сети. Я знаю его MAC-Адрес и будущее имя (app8). На нем нет ни операционной системы ни возможности вручную вставить диск. Да чего уж греха таить — диска с виндой у меня тоже нет!

Предстоит сделать следующее:

  1. Настроить параметры производительности BIOS
  2. Cоздать массив RAID-10
  3. Загрузится с PXE в загрузчик pxeboot.com
  4. Выбрать соответствующий загрузчик boot.wim и Выбрать требуемую операционную систему
  5. Создать логические диски C: и D:
  6. Произвести установку операционной системы на диск C:
  7. Произвести конфигурацию сервера под требуемые задачи при помощи puppet

Наши сервера находятся на колокейшене, который физически далеко, поэтому буду использовать WDS и IP KVM. Доступ к KVM осуществляется через веб интерфейс, сам удаленный «экран» реализован при помощи java-based приложения. По большому счету IP KVM уже не обязателен, т.к. все мои развертывания происходят практически автоматически, но старая привычка наблюдать за происходящим на экране осталась, да и заводские настройки железа не всегда совпадают с требуемыми.

Пока что на сервере ничего нет:
Развертывание сервера на Windows Server 2012 / Dell PowerEdge R420
Читать полностью »

Управление правами доступа к WMI через Puppet

В качестве предисловия

Основной задачей моей работы является поддержка парка железных и vm хостов — уже под 200 (а приходил было менше 100, эх, время бежит...) Поддерживаю все железо, а также сеть. Также на мне весь мониторинг (используем Opsview — сделан на ядре nagios), аггрегация логов (я внедрил Logstash, обалденное opensource решение за место ну ооочень дорогого Splunk), configuration management (puppet), бекапы, поддержка баз данных и прочих систем тоже на мне (MongoDB, MySQL, Redis, ElasticSearch, etc). В общем — все самое интересное). Стоит отметить что у нас достаточно тонкая грань между поддержкой и разработкой, и разработчики часто говорят что они хотят, а я уже занимаюсь внедрением. Хочется рассказать обо всем что происходит интересного и какие технологии удается использовать. Какие прижились, а какие по каким-то причинам нет.

В свободное от решения проблем время перевожу инфраструктуру на Infrastructure-as-a-code (IaaC), выбрал puppet для этого из-за неоднородности нашей инфраструктуры. В моей сети зоопарк из Windows Server 2008, Windows Server 2012, CentOS 5.5, CentOS 6.4. Ах, да, пару дедушек на 2003 — пора их на пенсию отправлять скоро…

Я уже писал о том, как я использую Puppet для автоматической настройки мониторинга в Opsvew, а сегодня хочу поговорить о том, как я в очередной раз «боролся» с гетерогенностью моей среды.

Задача

Возникла необходимость автоматизировать конфигурацию WMI на серверах Windows 2008 / 2012. Ключевой необходимостью стало добавление сервисного пользователя (назовем его «domainservice-user») в локальные группы сервера, которые разрешают удаленное использование WMI, а также доступ к Performance Counters, Performance Logs, в общем ко всему что нужно чтобы удаленно мониторить сервер. Сами группы определились достаточно быстро, оставалось найти удобный и быстрый способ это сделать. Также необходимо было дать права пользователю domainservice-user на доступ к корневым неймспейсам WMI. Так же все это должно быть частью общей концепции IaaC, что должно означать как минимум проверку текущего состояния, и пропускать выполнение если пользователь уже добавлен куда нужно в любом варианте присутствия-отсутствия пользователя в группах. Т.е. решение должно быть максимально автоматизированным, а точнее полностью. После небольшого гугления стало ясно что для моего случая нужно, а мне предстояло:
Читать полностью »

Задача

Мы используем Opsview для мониторинга и Puppet для управления конфигурациями. В Opsview есть шаблоны (Host Templates), которые позволяют определить определенный список проверок (Service Checks) для определенного типа хостов. Например для хоста с шаблоном IIS будут проверяться всевозможные параметры IIS данного хоста, к примеру количество текущих подключений или например средняя скорость подключения.
Возникла задача автоматически назначать шаблон на хост, в зависимости от того, какие классы назначены в манифесте. Всё это, как всегда,  для удовлетворения потребности автоматизации и лени. Итоговая цель — назначил хосту класс, вернулся через минут 15, а он уже с уствновленным IIS, с настроенными сайтами (как вариант уже с деплойнутым контентом), все они мониторятся и по этим данным строятся графики, а также алерты дают знать если что-то случилось.

Сложности

Основная сложность здесь, как обычно, в том что этого никто не сделал этого для меня. Не существует модуля «Мониторинг IIS в один клик» для моей инфраструктуры. Практически сложность заключается в том, как сообщить модулю который управляет конфигурацией Opsview что в другом модуле создали сайт, передать параметры URI которые нужно мониторить, а также имена шаблонов хоста (в данном случае это будет как минимум шаблон IIS). Мои попытки и пробы включали следующее:
Читать полностью »

История

Внедрение Linux в ПриватБанке началось в 2007 году. За это время был пройден большой путь и хотелось бы поделиться с сообществом своим опытом внедрения. На данный момент мы достигли следующих показателей: более 36500 рабочих мест с ОС Linux в 4000 отделений, расположенных в 5 странах.
В 2007 году за основу был взят ASPLinux 11.2. Со временем для альтернативы были выбраны другие дистрибутивы — Fedora, openSUSE, Ubuntu. Позже стала очевидной необходимость создания собственного дистрибутива и системы управления рабочими станциями. Разработка началась в январе 2012 года. Для основы был выбран Ubuntu 12.04 LTS с рабочим окружением Gnome Classic (no effect). Основные аргументы: Ubuntu — самый распространённый десктопный дистрибутив последних лет; обширное комьюнити, где проще найти решение возникающих проблем; именно его в качестве основы внедрения выбрал Google, много примеров внедрения в государственных и муниципальных учреждениях Германии, Франции. Выбор системы управления остановился на Puppet.
В июне 2012 года стартовал переход и к январю 2013 на корпоративную ОС были переведены уже около 95% ПК. Такая скорость перехода обусловлена тем, что сотрудники уже имели опыт работы в Linux.

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

  • cущественная экономия ресурсов при поддержке ОС на рабочих местах сотрудников;
  • поддержание программного обеспечения в актуальном состоянии;
  • возможность оперативного применения критических обновлений (до 1 часа на всех ПК);
  • cбор и анализ статистической информации о парке ПК и периферии;
  • создание системы проактивной реакции на сбои (Event Manager).

Дальше более детальное описание компонентов нашей реализации.
Читать полностью »

Свою первую программу я писал для интерпретатора Basic. Он запускался при включении машины, а после ввода программу можно было выполнить командой RUN.

Многое изменилось с тех пор. Мы говорим о стеках технологий и целых экосистемах в IT. За выполнение каждой прихоти программиста конкурируют несколько систем/библиотек/расширений/модулей/сервис. А выбрать среди них порой так же сложно, как написать свой велосипед.

К психиатру пришел человек с жалобой на невроз.
— А кем же вы работаете? — интересуется доктор.
— Сортировщиком апельсинов на овощной базе. Передо мной желоб, по которому катятся апельсины. Крупные я должен класть в один ящик, а мелкие — в другой.
— Что же нервного в такой работе?
— Как что? Я целый день должен принимать решения, решения, решения.

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

Итак, для создания rails-приложения нам понадобятся
Читать полностью »

Ansible — yet another система управления конфигурациями. Отличительная особенность — простота, при большой гибкости. И это не просто слова — дальше я покажу на примерах несколько простейших операций и познакомлю вас с некоторыми “бест практис”.

Итак, у нас есть группы хостов:

WebServersG1 webserver1-g1, webserver2-g1
WebServersG2 webserver1-g2, webserver2-g2
WebServersProxy webserver-proxy1, webserver-proxy2
DataBase db1, db2
DataBaseSlave dbs1, dbs2
SomeServers someserver1, someserver2

Мы хотим подготовить все хосты к адекватной работе — установить необходимый набор софта (htop, zsh, vim, iftop, sudo, mc, tmux, wget), скопировать свои ключи и конфиги и поставить и сконфигурировать софт специфичный для этого сервера.
Ansible подразумевает минимум два файла для начала работы — инвентарный файл, в который мы пишем список хостов и делим их по группам — inventory и файл задачplaybook.
Они нужны для того, чтобы когда мы все сделаем запустить все красиво:

ansible-playbook -i инвентарный_файл playbook.yml

Давайте создадим инвентарный файл по имени “infrastructure” на основе наших хостов:
Читать полностью »

Любой, кто занимается администрированием более двух одинакого настраиваемых серверов, рано или поздно, начинает смотреть на системы, позволяющие автоматизировать процесс настройки. Я для этого использую puppet и хотел бы поделиться опытом его применения на большом количестве серверов (в данный момент управляемая инфраструктура — около 120 Linux серверов (Centos 5 + Centos 6), котоыре можно разделить на три неравные логические группы), которые должны работаь в режиме 24/7/365.
Читать полностью »

Для тех кто используетненавидит и в целом измученн puppet'ом, ansible покажется глотком освежающего нарзана, Эдакий фремворк систем управления конфигураций.
Структура работы с системой такова: вносим хосты в список => пишем плейбук под группу хостов => начинаем использовать.

Описываем сеть.

[hardware]
server_1
server_2
Читать полностью »

Бюджетное решение для бэкапа целого офиса

Большинство статей в наш блог пишут разработчики. Мы решили исправить эту несправедливость и добавить немного DevOps. Сегодня поговорим о важном ― о бэкапах.
Так как Badoo активно развивается и количество сотрудников постоянно увеличивается, мы пришили к выводу, что централизованное резервное копирование гораздо удобнее, чем частичное копирование и хранение информации в различных местах.
В статье мы рассмотрим, как различными способами «забэкапить» довольно большое количество рабочих станций с помощью одного хранилища, не прибегая к серьёзным вложениям и избегая громоздкой реализации.
Заранее оговоримся, что бэкап не охватывает 100% сотрудников, так как не все хранят свои данные на локальных машинах, поэтому у нас не было цели сделать бэкап обязательно-принудительным.
Одной из основных сложностей централизованного бэкапа стало то, что сотрудники используют разные операционные системы.

Как же мы смогли собрать всех на одном сервере?
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js