Cockpit kvm настройка сети

Обновлено: 02.07.2024

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

В данной заметке рассматривается вопрос быстрого поднятия гипервизора Qemu-KVM на базе CentOS 7 с удобным управлением сервера. В качестве интерфейса управления будет Cockpit.

Cockpit по умолчанию включен в CentOS 8, но его нет в 7-ке.

Итак, имеем сервер с установленным CentOS 7, включен Firewall и SELinux.

Проверим включена ли поддержка виртуализации:

Если ответ положительное число (больше нуля), то включена.

Установим гипервизор, библиотеки, утилиты управления и пакет для работы с bridge:

Кроме основных пакетов ставим пакеты управления хранилищами, пакетами, виртуальными машинами, контенерами docker и selinux.


Создаем bridge для соединения виртуальных машин к сети:



После создания bridge основное сетевое подключение исчезнет.

Перейдем на вкладку Virtual Machines и запустим гипервизор:


Можно создавать виртуальные машины. Список поддерживаемых гостевых ОС можно посмотреть:

Создадим ВМ на Debian:



Из минусов не нашел редактора конфигурации ВМ, но есть классический путь:

Рассмотрим еще одну возможность управления через Cockpit контейнерами:


Создадим контейнер c Nginx:

Запустим и настроим порт


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

Наш Nginx будет доступен по адресу сервера на порту 8080.

Данное решение, конечно, не покрывает все необходимые задачи управления гипервизором, но простые вещи, такие как создание, удаление, остановка и перезапуск ВМ вполне могут быть закрыты через простой и понятный веб-интерфейс.

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

KVM - средство виртуализации, интегрированное с ядром, которое превращает Linux в гипервизор типа один. Данная заметка на полях представляет из себя краткую инструкцию как установить KVM, быстро и просто создавать виртуальные машины и управлять ими в CentOS 8.

Установка KVM

Первым делом процессор должен поддерживать аппаратную виртуализацию, её необходимо включить в BIOS.

Вариант 1. Для установки сервера виртуализации в процессе установки операционной системы необходим полный дистрибутив CentOS. Весь процесс описывать нет смысла, единственное необходимо в Software Selection выбрать Virtualization Host .

software selection

virtualization host install

После установки необходимо установить средство просмотра virt-viewer , используемый для просмотра виртуальных машин.

Вариант 2. Для установки KVM на существующую систему необходимо установить модуль виртуализации и дополнительные пакеты. Выполняем:

Пакет virt-install . позволяет управлять установкой виртуальных машин из командной строки.

Проверка. На установленной системе убедиться, что аппаратная платформа поддерживает виртуализацию можно командой:

Для процессоров AMD:

Проверить, что модули KMV загружены в ядро можно выполнив команду:

Для систем на основе Intel будет следующий результат:

kvm support check

Проверяем возможность загрузки драйверов libvirt хост системой.

centos virt host validate

Управление с помощью WEB консоли

Управление виртуальными машинами будет производиться с помощью web консоли Cockpit . Устанавливаем необходимые компоненты и добавляем сервис в автозапуск.

Панель управления будет доступна через web браузер по адресу:

После запуска сервиса libvirtd по умолчанию создается сетевой интерфейс virbr0 типа мост, представляющий из себя виртуальный коммутатор с возможностью трансляции сетевых адресов посредствам NAT. Для возможности использования виртуальными машинами адресов той же сети, что и хост система необходимо создать новый интерфейс типа мост. В консоли Cockpit выбираем меню Networking , затем нажимаем кнопку Add Bridge .

cockpit add new bridge

В открывшемся окне вводим наименование нового моста и выбираем интерфейс, через который будет работать мост (обычно физический сетевой адаптер).

cockpit set new bridge settings

После применения настроек, в списке интерфейсов появится созданный интерфейс типа мост, а ethernet адаптер будет отключен.

cockpit new bridge created

Создание виртуальных машин

Для создания новой виртуальной машины в web консоли Cockpit необходимо выбрать пункт меню Virtual Machines , затем Create VM .

cockpit create new virtual machine

В открывшейся карточке настроек необходимо заполнить имя создаваемой виртуальной машины, выбрать тип установки, операционную систему, создать новый диск для системы с указанием размера или подключить существующий, указать количество выделяемой памяти. При указании типа установки Local Install Media необходимо предварительно позаботиться о носителе, с которого будет происходить установка (например, образ диска iso).

cockpit create new virtual machine settings

После выставления флажка Immediately Start VM и нажав кнопку Create будет создана новая виртуальная машина и после начнется установка системы с указанного носителя. Выбрав вкладку Consoles , вы получите доступ к установке и управлению виртуальной машиной.

cockpit install new vm

Изменить используемый сетевой интерфейс виртуальной машины на созданный ранее можно во вкладке Network Interfaces . Изменения необходимо делать, когда виртуальная машина выключена, если виртуальная машина включена, то изменения вступят в силу после выключения ВМ.

cockpit change network adaper in vm

После установки операционной системы на виртуальную машину установочный диск можно отключить во вкладке Disks . Отключение/подключение дисков производится только при выключенной виртуальной машине.

cockpit delete disk in vm

На вкладке Usage показана информация использования памяти и процессора виртуальной машиной.

cockpit usage statistic vm

На вкладке Overview можно задать количество выделяемой памяти и процессоров для виртуальной машины. В меню Boot Order выставляется порядок загрузки с дисков. Для запуска виртуальной машины вместе с хост системой отмечаем параметр Run when host boots . Все изменения кроме автостарта при запуске хост системы необходимо выполнять при выключенной виртуальной машине, иначе изменения вступают в силу после выключения ВМ.

cockpit change rosources vm

После установки и первоначальной настройки используйте средства удаленного доступа для управления виртуальной машиной.

Как установить Cockpit на

В предыдущем разделе мы рассказали вам, как создавать машины KVM и управлять ими в командной строке . Для энтузиастов командной строки это идеальный способ создания и ведения вкладок на виртуальных машинах. Тем, кто предпочитает графический дисплей, очень пригодится утилита Cockpit.

Cockpit позволяет выполнять подмножество операций, включая:

  • Настройка межсетевого экрана.
  • Создание и управление учетными записями пользователей.
  • Настройка сетевых параметров.
  • Создание и управление виртуальными машинами.
  • Обновление / апгрейд программных пакетов.
  • Скачивание и запуск контейнеров.
  • Проверка системных журналов.
  • Мониторинг работы сервера.

Основное внимание в этом руководстве уделяется управлению виртуальными машинами kvm с помощью веб-консоли кабины.

Шаг 1) Установите дополнительные зависимости

Чтобы управлять виртуальными машинами, нам сначала нужно установить пакет cockpit-machines . Это пользовательский интерфейс Cockpit для виртуальных машин. Пакет взаимодействует с API виртуализации libvirt, который обрабатывает виртуализацию платформы.

Чтобы установить пакет cockpit-machines в Ubuntu / Debian, выполните команду:

Для CentOS 8.x, RHEL 8.x и Rocky Linux 8 выполните команду:

После установки перезапустите утилиту Cockpit.

И проверьте, работает ли он:

Шаг 2) Доступ к веб-консоли кабины.

Чтобы получить доступ к Cockpit, запустите браузер и перейдите по ссылке, показанной ниже.

Если у вас возникли проблемы с доступом к веб-консоли Cockpit, вам необходимо открыть порт 9090 на брандмауэре. Это порт, который прослушивает Cockpit. Если вы используете брандмауэр UFW, выполните команду:

Если вы входите в систему впервые, вы увидите предупреждение о том, что собираетесь просматривать опасный сайт. Но не волнуйтесь. Причина, по которой вы получаете такое «предупреждение», заключается в том, что Cockpit зашифрован с использованием самоподписанного сертификата SSL, который не распознается CA (центром сертификации).

Чтобы обойти это ограничение, нажмите кнопку « Дополнительно ».

Затем нажмите « Принять риск и продолжить », чтобы перейти на страницу входа в Cockpit.

На экране входа в систему введите свое имя пользователя и пароль и нажмите « Войти », чтобы получить доступ к приборной панели кабины.

После этого вы попадете в раздел « Обзор », который дает вам представление о показателях производительности вашей системы.

Поскольку мы заинтересованы в создании виртуальных машин и управлении ими, нажмите на кнопку « Виртуальные машины » на левой боковой панели, как показано.

Будут перечислены существующие виртуальные машины. Однако, поскольку мы начинаем с нуля, наш раздел виртуальных машин пуст. Справа представлены две опции: « Создать виртуальную машину » и « Импортировать виртуальную машину ».

Как создать новую виртуальную машину

Чтобы создать новую виртуальную машину, нажмите кнопку « Создать виртуальную машину

Заполните сведения о виртуальной машине, включая имя виртуальной машины, тип установки, источник установки, тип ОС, диск и объем памяти.

После того, как вы выбрали все параметры, нажмите кнопку « Создать », чтобы создать виртуальную машину.

ПРИМЕЧАНИЕ. По умолчанию установлен флажок « Немедленно запустить виртуальную машину». Эта опция вызывает немедленный запуск виртуальной машины после нажатия кнопки « Создать ». Если вы хотите проверить настройки перед запуском виртуальной машины, снимите флажок и нажмите кнопку « Создать ».

После этого кабина начнет создавать виртуальную машину.

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

Если вы готовы, просто нажмите кнопку « Установить », как показано.

Итак, перейдите в раздел « Сетевые интерфейсы » и нажмите кнопку « Добавить сетевой интерфейс ».

Укажите « Мост к локальной сети », укажите в качестве источника активный сетевой интерфейс на вашем ПК и нажмите кнопку « Добавить ».

Мостовая сеть будет указана под сетью по умолчанию, которую Cockpit создает для виртуальной машины.

Наконец, нажмите кнопку « Установить », чтобы начать установку вашей операционной системы.

Вы попадете в раздел « Консоль », где у вас будет возможность выбрать тип консоли. По умолчанию выбран VNC.

Вы также можете выбрать между Desktop Viewer и последовательной консолью. Я бы рекомендовал выбрать программу просмотра рабочего стола, которая более удобна и проста в использовании для графического доступа к виртуальной машине.

После того, как вы выбрали опцию « Desktop Viewer », вы получите некоторую информацию об IP-адресе и используемом порту. Desktop Viewer использует соединение с графическим интерфейсом пользователя Spice.

Чтобы установить соединение, найдите и запустите удаленную программу просмотра, которая предоставляется в пакете virt-viewer .

После запуска введите указанный URL и нажмите «Подключиться».

Средство удаленного просмотра откроет виртуальную машину, и отсюда вы сможете продолжить установку своей операционной системы.

Импортировать виртуальную машину

Чтобы импортировать виртуальную машину, просто щелкните вкладку « Импортировать виртуальную машину». В появившемся всплывающем графическом интерфейсе обязательно введите имя виртуальной машины, выберите существующее расположение образа диска, тип ОС и объем памяти. Наконец нажмите кнопку « Импорт ».

Заполните данные, такие как имя виртуальной машины, источник установки, ОС и память, и нажмите « Импорт ».

Настроить пулы устройств хранения данных KVM

По умолчанию при создании виртуальной машины отображаются два пула хранения. Чтобы перечислить их, щелкните вкладку « Пулы хранения ».

В « по умолчанию » пула хранит хранения всех виртуальных машин изображения в /var/lib/libvirt/images изображения каталога.

Щелкните пул хранения « default », чтобы отобразить подробную информацию, например целевой путь.

Другой пул хранения указывает на расположение образа диска, который вы использовали для создания виртуальной машины. В моем случае это каталог « Загрузки » в моем домашнем каталоге.

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

Далее заполните все необходимые детали. Пул хранения может принимать различные формы, например:

  • Каталог файловой системы
  • Сетевая файловая система
  • цель iSCSI / цель каталога iSCSI
  • Физическое дисковое устройство
  • Группа томов LVM

Настроить сеть KVM

Кроме того, вы можете создавать виртуальные сети в KVM. Просто нажмите на опцию « Сеть ».

Это будет список всех доступных виртуальных сетей. По умолчанию KVM создает виртуальную сеть по умолчанию под названием virbr0, которая позволяет виртуальным машинам взаимодействовать друг с другом.

Виртуальная сеть по умолчанию предоставляет собственную подсеть и диапазон IP-адресов DHCP, как показано. Вы можете добавить столько виртуальных сетей, сколько захотите. Другие параметры управления сетью включают отключение и удаление сети.

Перезагрузка / пауза / выключение виртуальной машины

Наконец, вы можете контролировать рабочее состояние ваших виртуальных машин. Вы можете перезапустить, приостановить, выключить и даже удалить виртуальную машину.

В разделе «Перезагрузка» есть еще 2 дополнительных параметра:

Параметр «Перезагрузка» выполняет обычный перезапуск виртуальной машины, в то время как « принудительный перезапуск » немедленно перезапускает виртуальную машину.

В разделе « Завершение работы » есть 3 дополнительных параметра:

Параметр « Завершение работы » выполняет плавное завершение работы, в то время как параметр « Принудительное завершение работы » мгновенно выключает виртуальную машину, не давая ей времени для корректного завершения работы.

Заключительные мысли:

Мы надеемся, что это руководство было полезным, когда вы начали управлять виртуальными машинами с помощью Cockpit.

Читайте также: