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

Читати далі →

Ansible: тестуємо плейбуки (частина 2)

Отже, в нашій попередній статті ми розглянули як можна швидко і просто налаштувати середовище для тестування плейбуков і ролей Ansible. Це все, звичайно, дуже добре і зручно, але чому б нам не автоматизувати весь процес внесення змін в інфраструктуру від написання плейбука до внесення змін сервера?

image

Нагадаю кілька умов, при яких ми будемо виконувати тестування конфігурацій:

1. Вся конфігурація зберігається в git-репозиторії;
2. Jenkins періодично опитує git-репозиторій з нашими ролями/плейбуками на предмет внесених змін;
3. При появі змін Jenkins запускає job з тестуванням конфігурації. Тести складаються з двох етапів:
3.1 Kitchen-CI бере оновлений код з репозиторію, запускає повністю свіжий docker-контейнер, заливає в них оновлені плейбуки з репозиторію і запускає Ansible локально, в docker-контейнері;
3.2 Якщо перший етап пройшов успішно, у docker-контейнері запускається serverspec і перевіряє, чи коректно постала нова конфігурація;
4. Якщо в Kitchen-CI всі тести пройшли успішно, то Jenkins ініціює заливку нової конфігурації.

В ідеалі, весь процес від написання плейбука і коміта в репозиторій до внесення змін сервера, повинен проходити без нашої участі. Сильно заглиблюватися в установку Jenkins і докладно розписувати про пайплайнах в даній статті не планується. Перше робиться без проблем стандартних репозиторіїв, а друге — суто індивідуальне.

Читати далі →

Ansible: тестуємо плейбуки (частина 1)



Думаю, будь-який системний адміністратор, який використовує Ansible для управління своїм зоопарком серверів задавався питанням про перевірку коректності опису конфігурації своїх серверів. Як же не боятися вносити зміни в конфігурації серверів?
У серії статей, присвячених DevOps, ми розповімо про це.


Читати далі →

Тестуємо проект на SaltStack c допомогою KitchenCI

Введення

У мене є pet project, яким я займаюся у вільний час. Цей проект повністю присвячений інфраструктурним експериментів.
Для управління конфігурацією я використовую SaltStack. SaltStack — це централізована система управління інфраструктурою. Це значить, є майстер-сервер, який налаштовує підлеглі сервери.
За час життя проекту я наступив на невеликий набір граблів, але в результаті прийшов до дуже зручному підходу роботи з ним. Загалом про це і стаття — як воно все починалося і до чого прийшов.
Читати далі →

Тестуємо інфраструктуру код


Всім привіт, нещодавно ми почали цикл статей про тестування в Chef, але сьогодні я розповім про більш ввідних і універсальних речі: навіщо тестувати інфраструктуру, які інструменти для цього є і як все це автоматизувати. Також торкнуся тему публікації інфраструктурного коду в open source. Стаття буде цікава користувачам будь-який з популярних систем управління конфігурацією — Chef, Puppet, Ansible або SaltStack.

Читати далі →

Тестуємо Chef cookbook. Частина 1



Привіт! Сьогодні ми починаємо серію технічних статей про Devops, Chef, infrastructure as code і всьому такому. Ця стаття — перша з трьох про тестування в Chef. Цикл статей буде корисний тим, хто вже знайомий з Chef і хоче навчитися тестувати свій код.

Концепція infrastructure as code дозволяє нам застосовувати до інфраструктурі рішення з розробки світу. Окремі компоненти інфраструктури в проектах часто повторюються. При інтеграції таких компонентів найбільш зручний варіант — загальні кукбуки. Код кукбуков постійно змінюється, фиксятся баги, з'являється новий функціонал. З допомогою тестування ми відстежуємо регресії, контролюємо зворотну сумісність і впроваджуємо нові фічі швидше.
У цій статті ми познайомимося з інструментами для тестування, напишемо простий кукбук і тест до нього.


Читати далі →