В этой статье я расскажу про возможности инструмента Cockpit. Cockpit создан с целью облегчения администрирования ОС Linux. Если говорить кратко, то он позволяет выполнять наиболее типичные задачи администратора Linux через приятный веб-интерфейс. Возможности Cockpit: установка и проверка обновление для системы и включение автообновления (процесс патчинга), управление пользователями (создание\удаление\смена паролей\блокировка\выдача прав суперпользователя), управление дисками (создание\редактирование lvm, создание\монтирования файловых систем), настройка сети (team, bonding, ip managing и т. д.), управление systemd-юнитами\таймерами.



Интерес к Cockpit обусловлен выходом Centos 8, где Cockpit уже встроен в систему и требуется его лишь активировать командой «systemctl enable --now cockpit.socket». На других дистрибутивах потребуется ручная установка из пакетного репозитория. Рассматривать тут установку мы не будем, смотрите официальное руководство.

После установки нам необходимо в браузере перейти на 9090 порт сервера, на котором установлен Cockpit (т. е. ip-сервера:9090). Например, 192.168.1.56:9090

Вводим обычный логин\пароль от локального аккаунта и ставим галочку «Reuse my password for privileged tasks», чтобы была возможность запускать некоторые команды от и��ени привилегированного пользователя (root). Естественно, ваш аккаунт должен обладать возможностью выполнять команды через sudo.

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



Интерфейс выглядит очень понятным и логичным, слева вы увидите навигационную панель:



Стартовый раздел называется «system», где вы можете увидеть информацию по утилизации ресурсов сервера (CPU, RAM, Network, Disks):



Чтобы посмотреть более подробную информацию, например, по дискам, просто нажмите на соответствующую надпись и вы попадёте сразу в другой раздел (storage):



Тут же можете создать lvm:



Выберите имя для vg-группы и диски, которые хотите использовать:



Задайте имя для lv и выберите размер:



И, наконец, создайте файловую систему:



Обратите внимание, что Cockpit сам пропишет нужную строку в fstab и смонтируем устройство. Также можно прописывать специфичные опции монтирования:



Вот это выглядит в системе:



Тут же можно расширять\сжимать файловые системы, добавлять новые устройства в vg-группу и т.д.

В разделе «Networking» можно не просто менять типичные сетевые настройки (ip, dns, маску, шлюз), но и создавать более сложные конфигурации, такие как bonding или teaming:



Вот так готовая конфигурация выглядит в системе:


Согласитесь, что настраивать через vi\nano было бы чуть дольше и сложнее. Особенно для новичков.

В «services» можно управлять systemd юнитами и таймерами: останавливать их, перезапускать, убирать из автозагрузки. Так же очень быстро создать свой таймер:





Единственное, что сделано плохо: не понятно, с какой периодичностью запускается таймер. Можно лишь посмотреть, когда он запускался в последний раз и когда запустится вновь.

В «Software updates», как не сложно догадаться, можно посмотреть все доступные обновления и установить их:



Система оповестит нас, если потребуется перезагрузка:



Тут же можно включить автоматическое обновление системы и кастомизировать время установки обновлений:



Так же в Cockpit можно управлять SeLinux, создавать sosreport (полезно при общении с вендорами при решении технических проблем):





Управление пользователями реализовано максимально просто и понятно:





Кстати, можно добавлять ssh-ключи.

И, наконец, можно читать системные логи и сортировать по важности:



Мы прошлись по всем основным разделам программы.

Вот такой краткий обзор возможностей. Использовать Cockpit или нет решать только вам. На мой взгляд, Cockpit может решить несколько проблем и удешевить обслуживание серверов.

Основные преимущества:

  • Порог вхождение в администрирование ОС Linux существенно снижается благодаря таким инструментам. Выполнять стандартные и базовые действия может практически любой человек. Администрирование можно частично делегировать разработчикам или аналитикам для удешевления производства и ускорения работы. Ведь теперь не надо набирать в консоли pvcreate, vgcreate, lvcreate, mkfs.xfs, создать точку монтирования, редактировать fstab и, наконец, набрать mount -a, достаточно кликнуть мышью пару раз
  • Можно разгрузить администраторов Linux и избавить их от рутины, чтобы они фокусировались на более сложных задачах
  • Можно уменьшить количество человеческих ошибок. Согласитесь, что через веб-интерфейс сделать ошибку сложнее, чем через консоль

Недостатки, обнаруженные мною:

  • Ограниченность утилиты. Можно делать лишь базовые операции. Нельзя, например, сразу расширить lvm после увеличения диска со стороны виртуализации, необходимо в консоли набрать pvresize и лишь потом продолжить работу через веб-интерфейс. Нельзя добавить пользователя в определённую группу, нельзя поменять права у директорий, проанализировать используемое место. Хотелось бы более обширный функционал
  • Раздел «Applications» не работал корректно
  • Нельзя поменять цвет консоли. Я, например, могу комфортно работать лишь на светлом фоне с тёмным шрифтом:


Как мы видим, у утилиты очень хороший потенциал. Если расширить функционал, то выполнение многих задач может стать ещё быстрее и проще.

upd: также имеется возможность управлять множеством серверов с одного веб-интерфейса путём добавления нужных серверов в «Machines dashboard». Функционал, например, может быть полезен при массовом обновлении сразу нескольких серверов. Подробнее читайте в официальной документации.