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

    В этой статье я расскажу про возможности инструмента 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». Функционал, например, может быть полезен при массовом обновлении сразу нескольких серверов. Подробнее читайте в официальной документации.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 28

      +5
      Какие преимущества в сравнении с Webmin/Ajenti/Vesta?
        0

        Нативность?

          +2
          Что вы под этим подразумеваете, то что кокпит впилен по умолчанию в центОС8? Так я бы не назвал это плюсом, скорее даже наоборот — зачем совать в систему то что нужно единицам и что они прекрасно могут поставить парой команд из репозиториев?
            +2

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

              0
              Ну вот нативность тоже не аргумент.
          +2
          Целевая аудитория разная. Vesta — это в первую очередь вэб-панель. Для организации своего «виртуального хостинга». Вещь неплохая по сравнению с ISPmanager, бесплатная, но глючноватая. Ещё ужос-ужос, что Веста на баше написана. Целиком

          Ajenti — мне визуально понравилась, она больше нацелена именно на управление сервером, плюс к тому — написана на Питоне. Но функционал очень ограничен. И тоже глючновата. Поэтому мимо

          Кокпит же — очевидно, для сотрудника внутреннего техпода, у которого есть рутинные задачи с массивом серверов. И чтоб долго не обучать его — даёшь ему GUI. Но это выглядит тупиковым путем и кажется, что лучше ему дать Rundeck с заранее определенными сценариями или AWX/Ansible Tower
          +4
          Но… зачем? В 2019 балом правит IaC (Infrastructure as code)
            +3
            Это для тех, кто не осилил IaC.

            + всегда есть необходимость ставить эксперименты. И через IaC их делать… кхм… долго и дорого. Проще накликать в веб-гуе что-то, а если он еще и позволяет потом экспортнуть изменения, то потом их внедрить в IaC-среду не должно быть сложно. Но это влажные мечты. Опыт показывает, что с амазоном и прочим все эти экспортеры работают некорректно, а в случае CockPit — функциональность тулзы слишком ограничена.
            +3

            Есть еще куча плагинов к нему. Управление виртуалками на libvirt, управление контейнерами, например Есть API и можно писать свои плагины.

              +1

              Год назад внедрял на нескольких серверах с centos, проблема была — отваливался сервис, приходилось вручную перезапускать. Отказался потом.

                +2
                На мой взгляд ниша Cockpit это сервера совсем небольших компаний с админами-фрилансерами, где разворачивать более продвинутые средства (те же Cacti/Zabbix для мониторинга нагрузки) просто нет смысла. Ну или же в тестовых окружениях.

                Кстати говоря, вы забыли упомянуть такую важную фишку как добавление в вэб-интерфейс других хостов с установленным Cockpit. Вполне себе можно администрировать пару-тройку серверов из одного места (и, что тоже очень приятно, накатывать централизовано на все хосты обновления).

                В целом проект интересный, слежу за его развитием, хоть и ниша у него крайне специфичная.
                  0
                  Добавил пару строк в конец статьи, спасибо!
                  +1

                  Имхо, все эти панели нужны для единичных серверов админам, которые много умеют в консоль и если что-то пойдет не так — всегда смогут поправить.
                  А пользуются ими в большинстве, кто в консоль ни в зуб ногой, и проблемы с сервером скриншотят на форумы, вместо цитирования логов и конфигов.
                  Замкнутый круг.

                    +1
                    Мне кажется, слишком много слоёв между пользователем (силящим в своём пользователськом аккаунте!) и root-доступом, слишко много потенциальных мест для атаки. Например, зловред с пользовательскими правами может начать слать события клавиатуры и мыши в браузер с помощью xdtool.
                      +1
                      Как по мне — такие гуи вещь достаточно бесполезная. Если серверов один/несколько — изменения быстрее через шелл сделать, если серверов много — то нужен какой-то SCM и IaC, через месяц иначе забудешь что ты там мышкой натыкал и получатся серверы — снежинки. Ну и плюс добавляется прослойка где могут быть баги и уязвимости
                        0
                        Welcome to habr!
                        Поддержу полностью.

                        > Если серверов один/несколько — изменения быстрее через шелл сделать

                        скорее оркестрация. Через какой-нибудь salt, ansible, puppet etc.

                        > через месяц иначе забудешь что ты там мышкой натыкал и получатся серверы — снежинки

                        +1
                        0

                        Данный инструмент расчитан на рутиную работу. Например: раз в неделю вам нужно выполнить действия на сервере. Для этого консоль не нужна да и не удобна

                          +1
                          Да, для этого нужен cron
                            0
                            Присоединяюсь. Какие действия нужно выполнять руками раз в неделю?
                            «лвмы» ресайзить и «ники» бондить?
                              0
                              Ну смотрите, есть например локальный тестовый сервер в офисе с виртуалками/контейнерами/базами. Как для админов всякие кластера разворачивать/тестировать, так и для девелоперов что-то новое «щупать». Допустим, он страшно тормозит. Открываем в один клик вебстраничку и наблюдаем «виновника торжества». Тут же, не отходя от кассы, отправляем виртуалку в ребут (или сам сервер). Подобные действия в гуе могут выполнять даже не шибко искушённые в консоли пользователи.

                              Дело привычки конечно, но этот инструмент делает более приятной и наглядной работу с тестовым стендом и наглядно визуализирует происходящее на сервере плюс доступен «из коробки» (сейчас как-то народ больше любит красивые графики в веб-интерфейсе, нежели консольный htop).
                                0

                                Вы говорите так, что будто cockpit внутри себя держит подробные графики с разбивкой нагрузки по це-группам, виртуалкам и процессам.
                                А без детализации оно особо и не нужны — только качественно понять все совсем плохо или ещё терпимо.
                                Ну, так Кокпит — это же не система мониторинга и не должна этого делать. Как пример как это должно выглядеть — netdata. Но тут ещё отдельный вопрос стоит ли ставить такой мониторинг, т.к. он достаточно ресурсоемок (ну, т.е. в общем случае — должен быть отключаем)

                                  0
                                  Ну это все таки система мониторинга тоже. Название «cockpit» как бы намекает. И ее разработчики решили что она должна это делать :)
                                  Скажем там, это система мониторинг с возможностью удаленного управления, хоть и ограниченного.
                                    0

                                    Спасибо, я знаю что-такое кокпит ))))


                                    Другой вопрос, что Вы сами смотрели что там внутри за мониторинг? Насколько он полнее, чем тот же htop/atop/top ?

                                      0
                                      У htop/atop/top есть уже веб интерфейс и он собирает данные со многих машин?
                          0
                          Правильно ли я понимаю что Кокпит — инструмент подходящий для одного-двух серверов класса SOHO с начинающим админом?
                            0
                            Можете туда добавлять сколько угодно серверов. Но это будет скорее тулза для мониторинга, там неплохой дашборд. Если что-то идет не так на каком-то сервере, можно не вылезая из кокпита проверить и пофиксить.
                            Хотя я так и не понял его предназначение, если честно, слишком уже все в IaaC.
                            +1
                            Небольшая неточность — активация кокпита не через systemctl enable --now cockpit.service, а systemctl enable --now cockpit.socket
                              0
                              Спасибо, исправил.

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое