image
Часто буває, коли щось не працює. І ніхто не хоче, щоб щось не працювало з його вини. В контексті великих інфраструктур і розподілених додатків помилка конфігурації може бути фатальною.
У статті я покажу як правильно тестувати оточення для програми, які інструменти використовувати, наведу приклади вдалого і доцільного тестування.
Стаття буде цікава командам, які практикують DevOps або SRE, відповідальним Dev, і іншим хорошим людям.

Читати далі →

Огляд архітектури та підсистем деплоя і моніторингу. Як інженери роблять систему прозорою для розробки



Костянтин Нікіфоров ( melazyk
Доповідь про всякі секретні і не дуже штуки, що така велика компанія, як Mail.Ru використовує в моніторингу і для деплоя, і для управління конфігурацією.

Мене звати Костянтин Никифоров, я є керівником групи системних адміністраторів в компанії Mail.Ru. Наша група займається обслуговуванням проектів target.my.com, рекламними системами Mail.Ru і проектом top.mail.ru. Всі три наших проекту досить специфічні, бо ми не володіємо ніяким юзер контентом, ми в основному паразитуємо на вас, як користувачів, і наша особливість полягає в тому, що у нас дуже великі PPS на фронтах, що не в багатьох проектів є. Тобто в таких проектів, як Однокласники, ВКонтакте, це зрозуміло, тому що вони просто величезні, у більш дрібних проектів такого немає. А ми розміщуємося на всіх вищеперелічених і на всіх сторінках Mail.Ru тому наш PPS ще більше, ніж у цих проектів.

Читати далі →

CodingFuture + Puppet. Частина VI: актуальні чорні списки і захищений стукіт

use cases
Коротко:
  1. Захист сервісів і відкриття портів по стукоту криптографічно стійким і не відтворюваним Single Packet Authorization (SPA) fwknop 2.6.9+.
  2. Динамічно настроюється оновлення чорних списків All Cybercrime IP Feeds by FireHOL.
  3. Повноцінна підтримка
    ipset
    cfnetwork.
  4. Підтримка власних чорних списків.
  5. Типові варіанти застосування.

Читати далі →

RubyMine 2016.3: Налагодження в режимі attach, оновлена підтримка Puppet, синхронізація SDK через rsync

Привіт, хабравчане!

У листопаді ми анонсували оновлені IntelliJ IDEA, CLion, PyCharm і DataGrip, а ця стаття — для Ruby/Rails-розробників. Ми випустили RubyMine 2016.3, заключне оновлення нашої IDE для Ruby і Rails в цьому році! Оновлення доступно для безкоштовного скачування та 30-денного ознайомлення на нашому сайті.



Читати далі →

Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина II. Налаштування Puppet Masters

Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина I. Підготовча
Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина III. Налаштування puppet-db з допомогою Puppet

Налаштування серверів puppet
Загальні налаштування серверів. На серверах puppet-master01, puppet-master02 і на puppet-db додамо репозиторії puppetlabs:

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
update sudo apt

На серверах puppet-master01, puppet-master02 встановимо puppet-сервер:

sudo apt install puppetserver

Перевіримо адреса, порт і вимога авторизації в файлі /etc/puppetlabs/puppetserver/conf.d/webserver.conf, за замовчуванням має бути:

client-auth: want
ssl-host: 0.0.0.0
ssl-port: 8140

На сервері puppet-db досить puppet-агента:

sudo apt install puppet-agent

Інше на puppet-db встановимо з допомогою Puppet.

Читати далі →

Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина I. Підготовча

Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина II. Налаштування Puppet Masters
Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина III. Налаштування puppet-db з допомогою Puppet

Передмова
Мій досвід використання puppet. До написання цієї статті, я працював з Open Source Puppet версії 3 в stand alone конфігурації, і використовував його для управління декількома сотнями хостів. Але прийшов час зростати: кількість керованих хостів вийшло за тисячу, і загрожує в найближчому майбутньому перевалити за кілька тисяч. Було прийнято рішення для розподілу навантаження і підвищення відмовостійкості розгорнути Open Source Puppet версії 4 з декількома серверами Puppet Master і окремим сервером PuppetDB з postgresql. А також використовувати для зберігання оточень з конфігураціями кінцевих хостів git-репозиторій на git-сервері.

Короткий огляд статей на habrahabr по розгортанню Puppet
Спочатку хотів би запропонувати короткий огляд вже наявний статей на habrahabr.

Налаштування сучасного Puppet сервера з нуля
Переклад статті «Setup of modern Puppet of the server from scratch» виконаний grundic, оригінал якої мені вдалося знайти тільки в кеші гугла. Ця стаття була взята мною за основу при підготовці публікації. Деталі, описані в оригіналі статті «Setup of modern Puppet of the server from scratch», як і доповнення перекладача в її перекладі, вже встигли трохи застаріти. Це, а також бажання поділитися описом додаткових тонкощів, спонукало мене до написання власної статті.

Читати далі →

Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина III. Налаштування puppet-db з допомогою Puppet

Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина I. Підготовча
Розгортання OpenSource Puppet 4 з кількома Puppet masters. Частина II. Налаштування Puppet Masters

Налаштування puppet-db з допомогою Puppet
Задамо параметри для ноди puppet-db репозиторії puppet-environments.git. У разі стандартного розміщення datadir для postgresql.

В репозиторії puppet-environments.git в файл manifests/nodes.pp додамо налаштування puppet-db:

node default {

}
node puppet-db {
class { 'puppetdb':
listen_addresses => '0.0.0.0',
}
}

Читати далі →

Варіант розгортання Linux систем на базі Puppet 4. Частина V: бази даних (cfdb)

cfdb use cases
Коротко:
  1. cfdb — модуль розгортання і автоналаштування вузлів і кластерів баз даних та доступу до них з високою доступністю і захистом від збоїв.
  2. proof-of-concept підтримуються MySQL і PostgreSQL на базі Percona Server/XtraDB Cluster та офіційних збірок PostgreSQL+repmgr.
  3. Ізоляція ресурсів на базі cgroups, інтеграція з налаштуваннями мережевого фільтра через модуль
    cfnetwork
    і строгий контроль доступу засобами СУБД.
  4. Запис на один вузол для мінімізації конфліктів і розподіл навантаження для read-only доступу.
  5. Автоматична перевірка здоров'я кластера і фактичної здійсненності доступу.
  6. Ручне і автоматичне локальне резервне копіювання, автоматизоване відновлення даних.
  7. Підтримка автоматичної міграції вже існуючих баз даних

Читати далі →

Валідація Fuel-плагінів в рамках Mirantis Unlocked validation program. Воно вам треба?

Автори: Євгенія Шумахер, Ілля Стечкин

Всім привіт. Так, якщо ви любите гроші, то воно вам треба. Далі ми розповімо, що таке «валідація плагінів» і чому це корисно для бізнесу. Якщо у вас немає бізнес-інтересів, а програмування — спосіб самовираження, то далі можете не читати.
Читати далі →

Деякі прийоми YAML

У цьому пості я розповім про не дуже відомі особливості мови YAML.

Пролог
Системне адміністрування за останні кілька років дещо змінилося. Замість маленьких скриптиков на bash у нас тепер величезні проекти конфігурації системи. Puppet з мільйоном модулів готовий «отконфигурять» для нас будь-яку машинку, все поставити і все налаштувати. І звичайно ж, вінчає це торжество автоматизації Hiera — система керування системою управління.

На початку ідея виділення всіх конфігураційних даних в ієрархічну структуру і редагування красивих і зручних YAML файлів здається неймовірно привабливою, особливо якщо згадати безліч форматів конфіг-файли, творці яких, здається, брали участь в змаганнях по оригінальності мислення. Однак дуже вже скоро ми опиняємося з тисячами рядків YAML. Давайте подивимося, як можна використовувати YAML щоб наші конфігурації було легше читати і підтримувати.

Читати далі →