Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Введение в Cockpit, инструмент администрирования Linux через браузер

Оригинал: An introduction to Cockpit, a browser-based administration tool for Linux
Автор: Michael Zamot (Red Hat)
Дата публикации: 14 апреля 2020 г.
Перевод: В.Костромин
Дата перевода: 8 мая 2020 г.

Нужно контролировать или администрировать сервер удаленно через Интернет? Не ищите ничего другого, если у вас есть Cockpit.

Cockpit - это инструмент администрирования серверов, спонсируемый Red Hat, который нацелен на предоставление современного и удобного интерфейса для управления и администрирования серверов. Cockpit по умолчанию включен в Fedora 21, и с тех пор он продолжает расти и развиваться. Red Hat Enterprise Linux 7 включил Cockpit в необязательные и дополнительные репозитории, и он включен в Red Hat Enterprise Linux 8 по умолчанию.

Cockpit не первый в своем классе (многие системные администраторы могут вспомнить Webmin), но альтернативы обычно неуклюжи, раздуты, и их базовые API могут представлять угрозу безопасности. Cockpit выгодно от них отличается. При использовании Cockpit, ненужные сервисы или API не мешают выполнять необходимые действия.

Возможности и особенности Cockpit

Вот краткий перечень свмых важных особенностей Cockpit:

  • В проекте участвуют дизайнеры графики и интерфейса.
  • Cockpit является модульным и может быть расширен за счет установки дополнительных модулей. Вы даже можете разрабатывать свои собственные модули.
  • Он может поддерживать несколько серверов с одной панели.
  • Он не навязчив, в том смысле что может работать вместе с другими инструментами управления, не вызывая проблем.
  • Cockpit использует сокет systemd и не занимает память, когда не используется.
  • Cockpit строится на основе существующей функциональности; по умолчанию он не требует настройки.
  • Cockpit не хранит нигде состояние или данные о серверах. Он использует те же API, которые используют инструменты командной строки.
  • Cockpit не требует особых привилегий или прав суперпользователя. Он создает сессию от имени запустившего его пользователя и испольует те же права, что этот пользователь. Чтобы выполнить действия по администрированию, пользователь должен иметь право использовать sudo или PolicyKit для получения необходимых привилегий.
  • Он бесплатен!

Установка Cockpit

Cockpit доступен и поддерживается в большинстве основных дистрибутивов.

Чтобы установить его в Fedora/CentOS 8/RHEL 8, выполните следующую команду:

sudo dnf install cockpit

В Ubuntu/Debian 10 нужно выполнить команду:

sudo apt install cockpit

Для того, чтобы задействовать сокет, используйте команду:

sudo systemctl enable --now cockpit.socket

Чтобы открыть порты в файерволе (если требуется), выполните следующие команды:

sudo firewall-cmd --add-service=cockpit --permanent
sudo firewall-cmd --reload

Дополнительные модули для Cockpit

Как уже упоминалось выше, Cockpit может быть дополнен существующими плагинами или теми, которые вы напишете сами. Cockpit предлагает набор Starter Kit для использования в качестве отправной точки при создании ваших собственных модулей.

Множество компьютеров или серверов могут управляться из одной сессии Cockpit после инсталляции панели cockpit-dashboard. Для управления контейнерами посредством Podman, вы можете использовать cockpit-podman. С помощью cockpit-machines вы можете управлять виртуальными машинами, используя libvirt. Этот плагин позволяет пользователям создавать, удалять или обновлять пулы хранения и сети, изменять виртуальные машины и получать доступ к консоли просмотра. Этот модуль заменяет известный инструмент virt-manager. Использование cockpit-networkmanager позволяет вам настраивать сетевые интерфейсы, создавать связи, мосты, VLAN-ы, правила файерволов и многое другое. Cockpit-packagekit позволяет устанавливать, удалять или обновлять пакеты ПО.

Cockpit позволяет управлять системными хранилищами данных, включая создание и форматирование разделов, управление LVM-томами и соединениями по протоколу iSCSI, используя cockpit-storaged.

Для инсталляции любого из перечисленных модулей в вашу систему запустите следующие команды, указава название нужного модуля.

Fedora/CentOS 8/RHEL 8:

Ubuntu/Debian 10:

Перезапустите Cockpit:

systemctl restart cockpit.socket

Работа с Cockpit

Чтобы получить доступ к Cockpit, укажите в веб-браузере IP-адрес вашего компьютера или сервера с указанием порта 9090: https://Computer IP:9090.

В интерфейсе управления Cockpit используются отдельные блоки для каждого типа конфигурации.

Управление множеством серверов

Множество серверов может управляться из одной консоли Cockpit. Для этого выберите в левой панели вариант Dashboard.

В блоке Servers кликните по кнопке Add.

Cockpit multiple servers

Cockpit пытается использовать те же учетные данные, которые используются для входа в текущий сеанс. Если не получается, он запрашивает их.

Dashboard показывает унифицированные графики использования CPU, Memory, Network и Disk I/O.

Dashboard

Создание виртуальной машины с помощью Cockpit

Перейдите к Host -> Virtual Machines.

Cockpit new VMs

Чтобы создать новое хранилище данных, щелкните Storage Pool -> Create Storage Pool.

Чтобы создать новую виртуальную сеть libvirt, перейдите по ссылке Networks -> Create Virtual Network.

Чтобы создать новую виртуальную машину, выберите Create VM.

Cockpit new VM

Поле Installation Type позволяет выбрать вариант инсталляции дистрибутива Linux: из интернет, используя локальный носитель, например ISO, или используя PXE для загрузки виртуальной машины.

Чтобы эти возможности можно было использовать, должны быть соответственно доступны сеть и устройства хранения данных.

Для запуска виртуальной машины, используя существующий образ виртуального диска, щелкните по кнопке Import VM. Все остальное похоже на то как создается виртуальная машина посредством Create VM.

Управление устройствами хранения данных

Перейдите к Host -> Storage

Cockpit storage

Экран разделен на блоки. В верхних блоках отображается график производительности операций чтения (Read) и записи (Write) для выбранного устройства.

  • В блоке Filesystems показаны смонтированные файловые системы.
  • В блоке NFS Mounts показаны смонтированные NFS-соединения.
  • В блоке Storage Logs показывает соответствующие журналы, относящиеся к устройствам хранения в системе. Это может быть особенно полезно, когда диск начинает выходить из строя.
  • Блок Drives блок показывает все подключенные в данный момент физические устройства в системе, смонтированные или нет. Чтобы создать новую таблицу разделов, нажмите на диск, затем нажмите Create Partition Table. Чтобы создать разделы, нажмите на диск, затем нажмите Create Partition.
  • В блоке Devices отображаются блоки томов, DM RAID и группы VDO. Чтобы создать логический том, выберите Volume Group в блоке Devices и щелкните по Create New Logical Volume.
  • Блок iSCSI Target позволяет пользователям подключаться и отключаться от iSCSI-целей (targets). Логические номера устройств LUN (Logical Unit Number) отображаются в блоке Drives.

Управление сетевыми устройствами

Перейдите к Host -> Networking.

Cockpit networking

Имеющиеся сетевые интерфейсы можно изменять в блоке Interfaces. Чтобы создать VLAN-интерфейс, щелкните по Add VLAN. Аналогично, чтобы создать мост, щелкайте по Add Bridge. Чтобы создать склейку адаптеров (NIC bonding), нажмите Add Bond.

Для задания правил файервола, щелкните по Active Zone в блоке Firewall.

Заключение

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

Нужно иметь в виду, что cockpit-machines заменят virt-manager в будущих выпусках.