В этой статье я расскажу про возможности инструмента 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 может решить несколько проблем и удешевить обслуживание серверов.
Основные преимущества:
Недостатки, обнаруженные мною:
Как мы видим, у утилиты очень хороший потенциал. Если расширить функционал, то выполнение многих задач может стать ещё быстрее и проще.
upd: также имеется возможность управлять множеством серверов с одного веб-интерфейса путём добавления нужных серверов в «Machines dashboard». Функционал, например, может быть полезен при массовом обновлении сразу нескольких серверов. Подробнее читайте в официальной документации.
Интерес к 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». Функционал, например, может быть полезен при массовом обновлении сразу нескольких серверов. Подробнее читайте в официальной документации.