Fleet Commander: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 112: | Строка 112: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
и запустим | и запустим cockpit: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
[root@dc ~]# systemctl enable --now cockpit.socket | [root@dc ~]# systemctl enable --now cockpit.socket | ||
</syntaxhighlight> | </syntaxhighlight> | ||
По умолчанию web-интерфейс | По умолчанию web-интерфейс FC будет доступен по адресу: | ||
https://localhost:9090/fleet-commander-admin | https://localhost:9090/fleet-commander-admin | ||
Версия от 14:57, 28 сентября 2020
Fleet commander - это инструмент для управления и развертывания профилей в большой сети пользователей и рабочих станций.
Fleet Commander состоит из трех компонентов:
- плагин FreeIPA, который позволяет хранить политики на контроллере домена(LDAP)
- плагин Cockpit, предоставляющий Web интерфейс для администрирования
- служба на стороне члена домена, применяющая политики
Fleet Commander использует libvirt и KVM для запуска сеанса виртуального рабочего стола, который позволяет пользователю в реальном времени редактировать конфигурацию приложений в системе шаблонов, которая будет применена на клиентах.
Установка и настройка Fleet Commander
Как уже говорилось выше, Fleet Commander состоит из трех компонентов. В демонстрационных целях будет рассмотрен deploy ipa server + libvirtd на одном хосте на proxmox VM.
Подготовка домена libvirt в качестве шаблона FC
Шаблон FC - это отдельный домен libvirt с запущенным на нем Fleet Commander Logger.
Шаблон запускается при старте FC live-сессии из web-интерфейса cockpit. А логгер в свою очередь отслеживает сделанные изменения в шаблоне и передает их в реальном времени FC плагину для cockpit.
системные требования
1) proxmox VM должна поддерживать вложенную виртуализацию (VM внутри VM), для этого выбираем для VM тип процессора host. Проверяется через /sys/module/kvm_intel/parameters/nested или /sys/module/kvm_amd/parameters/nested в зависимости от процессора. 1 или Y говорит о том, что вложенная виртуализация поддерживается. Также можно использовать утилиту virt-host-validate из пакета libvirt-client.
2) размер RAM должен удовлетворять запросам двух систем + ipa server
3) рекомендовано подключить отдельный hard disk, на котором будет храниться libvirt домен.
установка libvirt
[root@dc ~]# apt-get install libvirt virt-install
запуск libvirtd
[root@dc ~]# systemctl enable --now libvirtd
настройка libvirtd
Проверяем, что default сеть определена, запущена и автозапускаемая.
[root@dc ~]# virsh net-list --all
Имя Статус Автозапуск Persistent
----------------------------------------------
default активен yes yes
Если default сеть не определена:
[root@dc ~]# virsh net-define /usr/share/libvirt/networks/default.xml
Network default defined from /usr/share/libvirt/networks/default.xml
Помечаем default сеть как автозапускаемую:
[root@dc ~]# virsh net-autostart default
Добавлена метка автоматического запуска сети default
Запускаем default сеть:
[root@dc ~]# virsh net-start default
Сеть default запущена
установка OS на libvirt домен
Запускаем домен, например:
[root@dc ~]# virt-install --name p9_mate --ram 4096 --cpu kvm64 --vcpus 2 --disk path=/dev/sdb,cache=none,bus=virtio --network bridge=virbr0 --graphics spice,listen=127.0.0.1,password=test --cdrom /ALT/images/p9/workstation/x86_64/alt-workstation-9.1-x86_64.iso
Подключаемся через remote-viewer и производим установку OS, например:
[someuser@localpc ~]$ virt-viewer --connect qemu+ssh://test@dc.ipa.test/system
После окончания установки OS, доустанавливаем FC logger:
[root@template ~]# apt-get install fleet-commander-logger
Установка и настройка Fleet Commander Admin
1) предварительно необходимо установить и настроить FreeIPA сервер, с созданием домашнего каталога (добавить опцию --mkhomedir). Инструкцию по установке FreeIPA сервера можно посмотреть в соответствующем разделе.
2) установим freeipa-desktop-profile:
[root@dc ~]# apt-get install freeipa-desktop-profile
и проверим, что плагин работает:
[root@dc ~]# kinit admin
[root@dc ~]# ipa deskprofileconfig-show
Priority of profile application: 1
[root@dc ~]# ipa deskprofileconfig-show
ipa: ERROR: неизвестная команда "deskprofileconfig-show"
[root@dc ~]# rm -rf ~/.cache/ipa
[root@dc ~]# ipa deskprofileconfig-show
Priority of profile application: 1
3) установим fleet-commander-admin:
[root@dc ~]# apt-get install fleet-commander-admin
и запустим cockpit:
[root@dc ~]# systemctl enable --now cockpit.socket
По умолчанию web-интерфейс FC будет доступен по адресу:
https://localhost:9090/fleet-commander-admin
4) настроить Fleet Commander достаточно один раз при первом запуске. Окно настроек выглядит следующим образом:
Fleet Commander позволяет установить глобальную политику для определения того, как применять несколько профилей: к конкретному пользователю, к группе, к хосту, к группе хостов. По умолчанию это User-Group-Host-Hostgroup.
В форму настройки необходимо ввести адрес и имя пользователя libvirt-хоста для подключения. Если пользователь не является привилегированным, то переключаем Libvirt mode
в режим сеанса.
Для запуска live-сессии необходимо работающее ssh-соединение с libvirt хостом. Fleet Commander генерирует собственный открытый ключ, который необходимо добавить в .ssh/authorized_keys для соответствующего пользователя на libvirt хосте. Это можно сделать с помощью Install public key
на форме настройки, при этом будет необходимо ввести пароль пользователя. Пароль используется только для установки ключа и нигде не хранится.
Работа с профилями
После настройки Fleet Commander Admin необходимо создать и настроить профиль. Редактирование профиля производится из этого же интерфейса. После нажатия Add Profile
появится форма настройки профиля:
Форма настройки профиля содержит следующие поля:
Name
- имя профиляDescription
- описание профиляPriority
- приоритет профиляUsers
- пользователи, к которым будет применен профильGroups
- группы, к которым будет применен профильHosts
- хосты, к которым будет применен профильHost groups
- группы хостов, к которым будет применен профиль
Если не указан ни один хост или группа хостов, то профиль будет применен к каждому хосту состоящему в домене.
После редактирования профиля сохраним изменения и перейдем к настройка libvirt хоста.
Настройка libvirt-хоста
В качестве libvirt-хоста может выступать как отдельная машина, так и машина с Fleet Commander Admin.
Установим необходимый пакет
# apt-get install libvirt
и запустим его сервис
# systemctl enable libvirtd.service # systemctl start libvirtd.service
Если есть необходимость использовать привилегированного пользователя libvirt хоста, то необходимо разрешить root-доступ по ssh. Для этого в конфигурационном файле /etc/openssh/sshd_config нужно указать PermitRootLogin yes
и перезагрузить ssh-сервис:
# systemctl restart sshd.service
Настройка шаблона
После выключения шаблона можно попробовать запустить live-сессию. Для этого в web-интерфейсе cocpkit'а необходимо нажать Edit
напротив нужного профиля и внизу всплывшего окна кнопку Live session
. В появившейся форме будет список всех доступных шаблонов, кликнув по шаблону он начнет загружаться.
Установка и настройка Fleet Commander Client
Клиентская машина должна быть введена в домен, как установить и настроить FreeIPA Client можно посмотреть в соответствующем разделе.
Установим необходимый пакет:
# apt-get install fleet-commander-client
Создадим доменного пользователя. Это можно сделать как через консоль, так и через web-интерфейс по адресу FreeIPA сервера, войдя под "админской" учетной записью.
Устранение неполадок Fleet Commander
Для отлавливания любых ошибок возникших во время работы Fleet Commander Admin необходимо добавить log_level = debug
в
/etc/xdg/fleet-commander-admin.conf. Возникшие ошибки можно отследить используя journalctl.
Can’t initialize Fleet Commander
Проверьте установлен ли freeipa-desktop-profile, если нет, то установите. Часто такая ошибка может возникнуть в случае отсутствия домашнего каталога, если установка FreeIPA Server была запущена без опции --mkhomedir. Для решения данной проблемы можно воспользоваться командой:
# mkhomedir_helper `username`
Если вышеприведенные способы не помогают, проверьте есть ли у администратора доступ к командам интерфейса:
# ipa console (Custom IPA interactive Python console) >>'deskprofileconfig_show' in api.Command False
В этом случае кэш пользователя должен быть удален, это можно сделать добавив force_schema_check = True
в /etc/ipa/fleetcommander.conf в секцию [global].
Не заходит под доменным пользователем
После создания доменного пользователя и попытки входа может возникнуть ошибка недоступности домашнего каталога. Обычно помогает выполнение
# ssh -l `username` localhost
после чего попытка входа под доменным пользователем удается.
Error getting domain list
Ошибка, которая возникает при попытки подключения к live-сессии. Обычно проблема связана с неправильной конфигурацией libvirt-хоста. Проверьте установлен и запущен ли libvirt-client на libvirt хосте.
Использование Fleet Commander
Администрирование происходит через Cockpit web-интерфейс. Откроем http://localhost:9090/fleet-commander-admin и запустим live-сессию (Edit -> Live session). Появится окно выбора машины для загрузки в live-сессии. Необходимо выбрать машину на которой установлен Fleet Commander Logger и запустить ее. Загруженная машина является шаблоном, все сделанные на ней изменения будут отловлены логгером, сохранены и применены на клиентских системах.
Fleet Commander работает со следующими приложениями:
- GSettings
- LibreOffice
- Chromium
- Chrome
- Firefox
- NetworkManager
Проверим работу Fleet Commander. На загруженной машине с логгером запустим chromium, и сделаем пару изменений: добавим закладку https://www.altlinux.org и в настройках браузера поставим галочку Показывать кнопку "Главная страница"
. После чего в web-интерфейсе Cockpit нажмем Review and submit
. Должно появиться окно со списком сделанных изменений:
В списке изменений можно выбрать как все изменения, так и частичные, установив галочку напротив нужного. После выбора сохраним изменения.
Теперь можно проверить, как изменения применились на клиенте. Загрузим клиентскую машину, войдем в систему под доменным пользователем и запустим chromium (он должен быть предварительно установлен). Сделанные изменения успешно применились и доменный пользователь не сможет их отменить.
Проблемы связанные с использованием
В текущей версии Fleet Commander выявлены некоторые проблемы, в том числе и уязвимости. О них мы поговорим ниже.
- Незащищенный профиль Firefox и Chromium. Владельцем создаваемого Fleet Commander'ом профиля для Firefox и Chromium является доменный пользователь. Поэтому, он может изменить его модификатор доступа и соответственно содержимое файла.
- Отлавливаются не все настройки Chromium. Fleet Commander имеет свою встроенную политику настроек Chromium, которые отслеживаются логгером, остальные настройки игнорируются.
- Не отслеживаются настройки Firefox. Логгер не всегда правильно определяет путь до профиля настроек Firefox, поэтому не может отследить изменения в настройках.
- Возможны различные ошибки в работе с GSettings.
Так же для корректной работы Fleet Commander с Firefox необходимо добавить pref("toolkit.policies.perUserDir", true)
в
/usr/lib64/firefox/browser/defaults/preferences/all-altlinux.js.