Адмініструємо сервери через єдину консоль

Давно збирався написати на Хабрі, але якось відкладав. Але недавно прочитав пару статей (раз, два) і зрозумів, що треба взяти себе в руки. Це мій перший пост на Хабрі, сподіваюся, що він буде вдалим.

сервери

Почнемо з того, що я працюю системним адміністратором і трохи далекий від програмування, але часто пишу всякі скрипти, які полегшують повсякденну роботу. Часто доводиться вирішувати однотипні завдання на серверах, наприклад відкрити порт для списку ip на всіх серверах або перевірити стан служби, перевірити, на яких серверах дозволено вхід для конкретного користувача і т.д. Список однотипних завдань великий, і я думаю, що багато адміністраторів знайомі з ними.

Проба пера

Як тільки кількість серверів перевалила за критичну позначку, у мене постало питання: як усім цим керувати і не витрачати багато часу на це. Зрозуміло, що заходити на сервери RDP\SSH і виконувати там однакові команди — це не по феншу. Біглий аналіз показав, що для керування Windows серверами найкраще підходить Powershell. Це стало приводом для вивчення. Спочатку був написаний простий скрипт, який дозволяв підключатися до Windows серверів і виконувати там скрипти та команди. У досить короткий час цей скрипт був модернізований і став більш-менш придатний для виконання повсякденних завдань. Це дозволило значно спростити роботу. Однак поряд з цим виникали і труднощі: доводилося щоразу редагувати текстовий файл зі списком серверів, щоб виконувати команди лише потрібних серверах. Також було незручно зберігати готові скрипти до виконання. Крім цього, хотілося зробити щось універсальне та легке у використанні. Тут став у нагоді невеликий досвід програмування на PHP. Ідея була проста -прикрутити скрипт до WEB інтерфейсу та зробити його робочим для себе та колег. Було піднято Denwer на робочому комп'ютері і робота закипіла.

Через короткий час з'явився перший прототип. Тепер можна було вводити команди безпосередньо в браузері та перераховувати сервери «через кому». Результат виконання також відображався у браузері. Через невеликий проміжок часу з'явилися окремі функції з управління процесами та службами. Сайтом почали користуватися колеги, почали надходити нові ідеї.

єдину
1. Робота зі службами

єдину
2. Часто використовувані скрипти

сервери
3. Виконати скрипт

  • Робота зі службами
  • Робота з процесами
  • Віддалений командний рядок (можливість збереження скриптів)
  • Інформація: про залізо, списки DB, правила Firewall
  • База знань
  • Ведення логів
  • Вузькоспеціалізовані функції

сервери
4. Робота зі службами

адмініструємо
5. База знань

єдину
6. Виконати скрипт

Найголовніший недолік сайту - це робота тільки з серверами Windows. Це пов'язано з тим, що переважна кількість серверів, які у нашій компанії, це Windows сервера. Останнім часом кількість серверів під управлінням Linux почала зростати, і постало питання про те, як адаптувати роботу сайту під них. Щоб додати підтримку Linux, треба було дуже багато переписувати код і «ламати» ідеологію сайту, чого робити не хотілося. Крім цього, було багато спроб знайти способи виконувати команди Linux з-під Windows в консолі і якось це прикрутити до скриптових мов. За кілька місяців рішення було знайдено.

Рік тому я почав вивчати фреймворки і в голові засіла остаточна думка.зробити проект. Проект отримав ім'я: SSC Panel – Smart Server Control Panel. На даний момент закладено основу роботи сайту. Є реалізація роботи як з Windows, і з Linux серверами. Реалізовано адмінку, віддалений командний рядок, є можливість зберігати скрипти, ведення логів. Поки що небагато, але, з часом, я сподіваюся, їх буде більше. Сайт використовує двигун Kohana 3.3.2, комерційна тема «SmartAdmin» (не дуже добре, думаю, що треба міняти), для роботи з Windows використовується Powershell v3 (необхідна на сервері, у клієнта може бути v2), для роботи з Linux використовується бібліотека Posh-SSH. Як кажуть, краще один раз побачити:

Плани на майбутнє

А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»