Интерес к 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.
После входа вы увидите красивый и понятный веб-интерфейс. Первым делом переключите язык интерфейса на английский, поскольку перевод выполнен просто ужасно.
Интерфейс выглядит очень понятным и логичным, слева вы увидите навигационную панель:
Стартовый раздел называется «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». Функционал, например, может быть полезен при массовом обновлении сразу нескольких серверов. Подробнее читайте в официальной документации.
Комментарии (21)
Inlore
13.10.2019 17:29+1Но… зачем? В 2019 балом правит IaC (Infrastructure as code)
gecube
13.10.2019 19:13Это для тех, кто не осилил IaC.
+ всегда есть необходимость ставить эксперименты. И через IaC их делать… кхм… долго и дорого. Проще накликать в веб-гуе что-то, а если он еще и позволяет потом экспортнуть изменения, то потом их внедрить в IaC-среду не должно быть сложно. Но это влажные мечты. Опыт показывает, что с амазоном и прочим все эти экспортеры работают некорректно, а в случае CockPit — функциональность тулзы слишком ограничена.
dominigato
13.10.2019 20:58+1Есть еще куча плагинов к нему. Управление виртуалками на libvirt, управление контейнерами, например Есть API и можно писать свои плагины.
pprometey
13.10.2019 08:12Год назад внедрял на нескольких серверах с centos, проблема была — отваливался сервис, приходилось вручную перезапускать. Отказался потом.
MSigillite
13.10.2019 11:01+1На мой взгляд ниша Cockpit это сервера совсем небольших компаний с админами-фрилансерами, где разворачивать более продвинутые средства (те же Cacti/Zabbix для мониторинга нагрузки) просто нет смысла. Ну или же в тестовых окружениях.
Кстати говоря, вы забыли упомянуть такую важную фишку как добавление в вэб-интерфейс других хостов с установленным Cockpit. Вполне себе можно администрировать пару-тройку серверов из одного места (и, что тоже очень приятно, накатывать централизовано на все хосты обновления).
В целом проект интересный, слежу за его развитием, хоть и ниша у него крайне специфичная.
karavan_750
13.10.2019 14:04Имхо, все эти панели нужны для единичных серверов админам, которые много умеют в консоль и если что-то пойдет не так — всегда смогут поправить.
А пользуются ими в большинстве, кто в консоль ни в зуб ногой, и проблемы с сервером скриншотят на форумы, вместо цитирования логов и конфигов.
Замкнутый круг.
atbuhw
13.10.2019 14:46Мне кажется, слишком много слоёв между пользователем (силящим в своём пользователськом аккаунте!) и root-доступом, слишко много потенциальных мест для атаки. Например, зловред с пользовательскими правами может начать слать события клавиатуры и мыши в браузер с помощью xdtool.
inqfen
13.10.2019 16:26Как по мне — такие гуи вещь достаточно бесполезная. Если серверов один/несколько — изменения быстрее через шелл сделать, если серверов много — то нужен какой-то SCM и IaC, через месяц иначе забудешь что ты там мышкой натыкал и получатся серверы — снежинки. Ну и плюс добавляется прослойка где могут быть баги и уязвимости
gecube
13.10.2019 16:55Welcome to habr!
Поддержу полностью.
> Если серверов один/несколько — изменения быстрее через шелл сделать
скорее оркестрация. Через какой-нибудь salt, ansible, puppet etc.
> через месяц иначе забудешь что ты там мышкой натыкал и получатся серверы — снежинки
+1
Fluke87
14.10.2019 08:23Данный инструмент расчитан на рутиную работу. Например: раз в неделю вам нужно выполнить действия на сервере. Для этого консоль не нужна да и не удобна
gunrunner
14.10.2019 13:39Правильно ли я понимаю что Кокпит — инструмент подходящий для одного-двух серверов класса SOHO с начинающим админом?
dominigato
14.10.2019 14:04Можете туда добавлять сколько угодно серверов. Но это будет скорее тулза для мониторинга, там неплохой дашборд. Если что-то идет не так на каком-то сервере, можно не вылезая из кокпита проверить и пофиксить.
Хотя я так и не понял его предназначение, если честно, слишком уже все в IaaC.
FeNUMe
Какие преимущества в сравнении с Webmin/Ajenti/Vesta?
mammuthus
Нативность?
FeNUMe
Что вы под этим подразумеваете, то что кокпит впилен по умолчанию в центОС8? Так я бы не назвал это плюсом, скорее даже наоборот — зачем совать в систему то что нужно единицам и что они прекрасно могут поставить парой команд из репозиториев?
mammuthus
Я не смог найти других аргументов, учитывая низкую функциональность кокпита
katzen
Ну вот нативность тоже не аргумент.
gecube
Целевая аудитория разная. Vesta — это в первую очередь вэб-панель. Для организации своего «виртуального хостинга». Вещь неплохая по сравнению с ISPmanager, бесплатная, но глючноватая. Ещё ужос-ужос, что Веста на баше написана. Целиком
Ajenti — мне визуально понравилась, она больше нацелена именно на управление сервером, плюс к тому — написана на Питоне. Но функционал очень ограничен. И тоже глючновата. Поэтому мимо
Кокпит же — очевидно, для сотрудника внутреннего техпода, у которого есть рутинные задачи с массивом серверов. И чтоб долго не обучать его — даёшь ему GUI. Но это выглядит тупиковым путем и кажется, что лучше ему дать Rundeck с заранее определенными сценариями или AWX/Ansible Tower