Cockpit – упрощение типичных административных задач в ОС Linux через удобный веб-интерфейс

В этой статье я расскажу про возможности инструмента Cockpit. Cockpit создан с целью облегчения администрирования ОС Linux. Если говорить кратко, то он позволяет выполнять наиболее типичные задачи администратора Linux через приятный веб-интерфейс. Возможности Cockpit: установка и проверка обновление для системы и включение автообновления (процесс патчинга), управление пользователями (создание\удаление\смена паролей\блокировка\выдача прав суперпользователя), управление дисками (создание\редактирование lvm, создание\монтирования файловых систем), настройка сети (team, bonding, ip managing и т. д.), управление systemd-юнитами\таймерами.
dbs7lvfpihe5bbcrvaghi2xrivo.png
Интерес к Cockpit обусловлен выходом Centos 8, где Cockpit уже встроен в систему и требуется его лишь активировать командой «systemctl enable --now cockpit.service». На других дистрибутивах потребуется ручная установка из пакетного репозитория. Рассматривать тут установку мы не будем, смотрите официальное руководство.

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

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

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

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

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

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

Тут же можете создать lvm:
iffqmptdygmz-uvaa_aqckzbdwo.png

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

Задайте имя для lv и выберите размер:
yt7bf-21qnibrzldybfthuurndk.png

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

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

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

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

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

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

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

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

q9oketaseoa5_z8n2lrfp5jjj4u.png

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

© Habrahabr.ru