Fleet Commander: различия между версиями
Mrdrew (обсуждение | вклад) (Add description of installation fc-admin) |
Нет описания правки |
||
(не показаны 22 промежуточные версии 6 участников) | |||
Строка 1: | Строка 1: | ||
[[Файл:fc_ico.png.png|frameless|right]] | [[Файл:fc_ico.png.png|frameless|right]] | ||
'''Fleet commander''' | '''Fleet commander''' — это инструмент для управления и развертывания конфигурации окружения рабочего стола (DE) в большой сети пользователей и рабочих станций. | ||
Fleet Commander состоит из трех компонентов: | Fleet Commander состоит из трех компонентов: | ||
*плагин FreeIPA, который позволяет хранить | *плагин FreeIPA, который позволяет хранить политики на контроллере домена (LDAP); | ||
*плагин Cockpit, | *плагин Cockpit, предоставляющий Web интерфейс для администрирования; | ||
*служба на стороне | *служба на стороне члена домена, применяющая политики. | ||
Fleet Commander использует libvirt | Fleet Commander использует libvirt на qemu-KVM для запуска виртуальной машины, которая позволяет пользователю в реальном времени редактировать конфигурацию DE (окружение рабочего стола), изменения которой должны быть применены для членов домена при последующей аутентификации в системе. | ||
{{Attention|FC admin/client поддерживают только GNOME-based DE. Работа по добавлению поддержки KDE ведется.}} | |||
{{Attention|FC не занимается доставкой конфигурации системы.}} | |||
== Установка и настройка Fleet Commander == | == Установка и настройка Fleet Commander == | ||
Как уже говорилось выше, Fleet Commander состоит из трех компонентов. | Как уже говорилось выше, Fleet Commander состоит из трех компонентов. В демонстрационных целях будет рассмотрен deploy ipa server + libvirtd на одном хосте на proxmox VM. | ||
===Подготовка домена libvirt в качестве шаблона FC=== | |||
Шаблон FC — это отдельный домен libvirt с запущенным на нем Fleet Commander Logger.<br /> | |||
Шаблон запускается при старте FC live-сессии из web-интерфейса cockpit. А логгер в свою очередь отслеживает сделанные изменения в шаблоне и передает их в реальном времени FC плагину для cockpit.<br /> | |||
{{Note|Шаблон запускается как qemu snapshot, то есть все изменения, совершенные над ним, существуют только пока запущен этот domain}} | |||
====Системные требования==== | |||
* proxmox VM должна поддерживать вложенную виртуализацию (ВМ внутри ВМ), для этого выбираем для ВМ тип процессора <span style="color:green">host</span>. | |||
*:Проверяется через <span style="color:blue">/sys/module/kvm_intel/parameters/nested</span> или <span style="color:blue">/sys/module/kvm_amd/parameters/nested</span> в зависимости от процессора. <span style="color:green">1</span> или <span style="color:green">Y</span> говорит о том, что вложенная виртуализация поддерживается. Также можно использовать утилиту <span style="color:blue">virt-host-validate</span> из пакета <span style="color:blue">libvirt-client</span>. | |||
* размер RAM должен удовлетворять запросам двух систем + ipa server | |||
* рекомендовано подключить отдельный hard disk, на котором будет храниться libvirt домен. | |||
====Установка libvirt==== | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# apt-get install libvirt virt-install | |||
</syntaxhighlight> | |||
====Запуск libvirtd==== | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# systemctl enable --now libvirtd | |||
</syntaxhighlight> | |||
====Настройка libvirtd==== | |||
Проверяем, что <span style="color:blue">default</span> сеть определена, запущена и автозапускаемая: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# virsh net-list --all | |||
Имя Статус Автозапуск Persistent | |||
---------------------------------------------- | |||
default активен yes yes | |||
</syntaxhighlight> | |||
Если <span style="color:blue">default</span> сеть не определена: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# virsh net-define /usr/share/libvirt/networks/default.xml | |||
Network default defined from /usr/share/libvirt/networks/default.xml | |||
</syntaxhighlight> | |||
Помечаем <span style="color:blue">default</span> сеть как автозапускаемую: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# virsh net-autostart default | |||
Добавлена метка автоматического запуска сети default | |||
</syntaxhighlight> | |||
Запускаем <span style="color:blue">default</span> сеть: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# virsh net-start default | |||
Сеть default запущена | |||
</syntaxhighlight> | |||
====Установка ОС на libvirt домен==== | |||
Запускаем домен, например: | |||
<syntaxhighlight lang="console"> | |||
[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 | |||
</syntaxhighlight> | |||
Подключаемся через remote-viewer и производим установку ОС, например: | |||
<syntaxhighlight lang="console"> | |||
[someuser@localpc ~]$ virt-viewer --connect qemu+ssh://test@dc.ipa.test/system | |||
</syntaxhighlight> | |||
После окончания установки ОС, доустанавливаем FC logger <span style="color:blue">на этом же домене-шаблоне</span>: | |||
<syntaxhighlight lang="console"> | |||
[root@template ~]# apt-get install fleet-commander-logger | |||
</syntaxhighlight> | |||
{{Note|Домен, который планируется использовать как FC шаблон, должен быть в выключенном состоянии. В противном случае FC не позволит запустить live-сессию на этом домене.}} | |||
===Установка и настройка Fleet Commander Admin=== | ===Установка и настройка Fleet Commander Admin=== | ||
1) предварительно необходимо установить и настроить FreeIPA сервер, с созданием домашнего каталога (добавить опцию ''--mkhomedir''). Инструкцию по установке FreeIPA сервера можно посмотреть в [[FreeIPA| соответствующем разделе]]. | |||
2) установим ''freeipa-desktop-profile'': | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# apt-get install freeipa-desktop-profile | |||
</syntaxhighlight> | |||
и проверим, что плагин работает: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# kinit admin | |||
[root@dc ~]# ipa deskprofileconfig-show | |||
Priority of profile application: 1 | |||
</syntaxhighlight> | |||
{{Note|Если на выходе такая ошибка: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# ipa deskprofileconfig-show | |||
ipa: ERROR: неизвестная команда "deskprofileconfig-show" | |||
</syntaxhighlight>то нужно почистить кеш текущему пользователю и повторить команду: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# rm -rf ~/.cache/ipa | |||
[root@dc ~]# ipa deskprofileconfig-show | |||
Priority of profile application: 1 | |||
</syntaxhighlight> | |||
}} | |||
3) установим ''fleet-commander-admin'': | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# apt-get install fleet-commander-admin | |||
</syntaxhighlight> | |||
и запустим cockpit: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# systemctl enable --now cockpit.socket | |||
</syntaxhighlight> | |||
По умолчанию web-интерфейс FC будет доступен по адресу: | |||
https://localhost:9090/fleet-commander-admin | |||
{{Note|Аутентифицироваться в cockpit нужно доменным пользователем, имеющим необходимые ACL на deskprofiles. В демонстрационных целях это будет ''admin''}} | |||
4) настроить Fleet Commander достаточно один раз при первом запуске. Окно настроек выглядит следующим образом: | |||
[[Файл:fc_settings2.png|450px]] | |||
Fleet Commander позволяет установить глобальную политику для определения того, как применять несколько профилей: ''к конкретному пользователю, к группе, к хосту, к группе хостов''. По умолчанию это ''User-Group-Host-Hostgroup''. | |||
В форму настройки необходимо ввести адрес и имя пользователя libvirt-хоста для подключения. Для запуска live-сессии необходимо работающее ssh-соединение с libvirt хостом. Fleet Commander генерирует собственный ключ для аутентификации по открытому ключу с sshd. В ALTLinux по умолчанию ''password'' аутентификация sshd отключена, также отключена аутентификация sshd для ''root''. Поэтому рекомендованный вариант — это добавить специального выделенного пользователя с членством в группе <span style="color:blue">vmusers</span>, и вручную добавить ему открытую часть ssh ключа FC в <span style="color:blue">.ssh/authorized_keys</span>. | |||
==== Работа с профилями ==== | |||
После настройки Fleet Commander Admin необходимо создать и настроить профиль. Редактирование профиля производится из этого же интерфейса. После нажатия <code>''Add Profile''</code> появится форма настройки профиля: | |||
[[Файл:profile_settings1.png|400px]] | |||
Форма настройки профиля содержит следующие поля: | |||
*<code>''Name''</code> — имя профиля; | |||
*<code>''Description''</code> — описание профиля; | |||
*<code>''Priority''</code> — приоритет профиля; | |||
*<code>''Users''</code> — пользователи, к которым будет применен профиль; | |||
*<code>''Groups''</code> — группы, к которым будет применен профиль; | |||
*<code>''Hosts''</code> — хосты, к которым будет применен профиль; | |||
*<code>''Host groups''</code> — группы хостов, к которым будет применен профиль. | |||
Если не указан ни один хост или группа хостов, то профиль будет применен к каждому хосту состоящему в домене. | |||
После редактирования профиля сохраним изменения. | |||
=== Настройка шаблона === | |||
Для этого в web-интерфейсе cocpkit'а необходимо нажать <code>''Edit''</code> напротив нужного профиля и внизу всплывшего окна кнопку <code>''Live session''</code>. В появившейся форме будет список всех доступных шаблонов, кликнув по шаблону он начнет загружаться. | |||
=== Установка и настройка Fleet Commander Client === | |||
Клиентская машина должна быть введена в домен, как установить и настроить FreeIPA Client можно посмотреть в [[FreeIPA| соответствующем разделе]]. | |||
Установим необходимый пакет: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# apt-get install fleet-commander-client | |||
</syntaxhighlight> | |||
== Использование Fleet Commander == | |||
Администрирование происходит через Cockpit web-интерфейс. Откроем ''https://localhost:9090/fleet-commander-admin'' и запустим live-сессию ''(Edit -> Live session)''. Появится окно выбора шаблона для загрузки в live-сессии. Все сделанные изменения в этой сессии, которые поддерживаются FC, будут отображены в cockpit. Администратор указывает какие из них стоит сохранить. При нажатии <code>''Save''</code> произойдет сохранение профиля и завершение live-сессии. | |||
{{Attention|При закрытии вкладки браузера или браузера с cockpit live-сессия прервется и изменения, внесенные за время ее существования, будут потеряны.}} | |||
Fleet Commander работает со следующими приложениями: | |||
* GSettings | |||
* LibreOffice | |||
* Chromium | |||
* Chrome | |||
* Firefox | |||
* NetworkManager | |||
Проверим работу Fleet Commander. На загруженной машине с логгером запустим chromium, и сделаем пару изменений: добавим закладку ''https://www.altlinux.org'' и в настройках браузера поставим галочку <code>''Показывать кнопку "Главная страница"''</code>. После чего в web-интерфейсе Cockpit нажмем <code>''Review and submit''</code>. Должно появиться окно со списком сделанных изменений: | |||
<br>[[Файл:fc_logger_changes.png|350px]]<br> | |||
В списке изменений можно выбрать как все изменения, так и частичные, установив галочку напротив нужного. После выбора сохраним изменения. | |||
Теперь можно проверить, как изменения применились на клиенте. Загрузим клиентскую машину, войдем в систему под доменным пользователем и запустим chromium (он должен быть предварительно установлен). Сделанные изменения успешно применились и доменный пользователь не сможет их отменить. | |||
[[Файл:chrom_set.png|500px|left]] | |||
[[Файл:chrom_bkm.png|350px|center]] | |||
=== Проблемы связанные с использованием === | |||
В текущей версии Fleet Commander выявлены некоторые проблемы. | |||
* ''Отлавливаются не все настройки Chromium.'' Fleet Commander имеет свою встроенную политику настроек Chromium, которые отслеживаются логгером, остальные настройки игнорируются. | |||
* ''Не отслеживаются настройки Firefox.'' Логгер не всегда правильно определяет путь до профиля настроек Firefox, поэтому не может отследить изменения в настройках. | |||
* ''Возможны различные ошибки в работе с GSettings.'' | |||
Так же для корректной работы Fleet Commander с Firefox необходимо добавить <code>''pref("toolkit.policies.perUserDir", true)''</code> в <br>''/usr/lib64/firefox/browser/defaults/preferences/all-altlinux.js''. | |||
== Устранение неполадок Fleet Commander == | |||
Для отлавливания любых ошибок возникших во время работы Fleet Commander Admin необходимо добавить <code>''log_level = debug''</code> в <br>''/etc/xdg/fleet-commander-admin.conf''. Возникшие ошибки можно отследить, используя ''journalctl''. | |||
=== Can’t initialize Fleet Commander === | |||
Проверьте установлен ли ''freeipa-desktop-profile'', если нет, то установите. Часто такая ошибка может возникнуть в случае отсутствия домашнего каталога, если установка FreeIPA Server была запущена без опции ''--mkhomedir''. Для решения данной проблемы можно воспользоваться командой: | |||
<syntaxhighlight lang="console"> | |||
[root@dc ~]# mkhomedir_helper `username` | |||
</syntaxhighlight> | |||
=== Не заходит под доменным пользователем === | |||
После создания доменного пользователя и попытки входа может возникнуть ошибка недоступности домашнего каталога. Обычно помогает выполнение | |||
# ssh -l `username` localhost | |||
после чего попытка входа под доменным пользователем удается. | |||
=== Error getting domain list === | |||
Ошибка, которая возникает при попытки подключения к live-сессии. Обычно проблема связана с неправильной конфигурацией libvirt-хоста. Проверьте установлен и запущен ли libvirt на libvirt-хосте. | |||
[[Категория:Корпоративная инфраструктура]] | [[Категория:Корпоративная инфраструктура]] |
Текущая версия от 12:36, 25 марта 2022
Fleet commander — это инструмент для управления и развертывания конфигурации окружения рабочего стола (DE) в большой сети пользователей и рабочих станций.
Fleet Commander состоит из трех компонентов:
- плагин FreeIPA, который позволяет хранить политики на контроллере домена (LDAP);
- плагин Cockpit, предоставляющий Web интерфейс для администрирования;
- служба на стороне члена домена, применяющая политики.
Fleet Commander использует libvirt на qemu-KVM для запуска виртуальной машины, которая позволяет пользователю в реальном времени редактировать конфигурацию DE (окружение рабочего стола), изменения которой должны быть применены для членов домена при последующей аутентификации в системе.
Установка и настройка Fleet Commander
Как уже говорилось выше, Fleet Commander состоит из трех компонентов. В демонстрационных целях будет рассмотрен deploy ipa server + libvirtd на одном хосте на proxmox VM.
Подготовка домена libvirt в качестве шаблона FC
Шаблон FC — это отдельный домен libvirt с запущенным на нем Fleet Commander Logger.
Шаблон запускается при старте FC live-сессии из web-интерфейса cockpit. А логгер в свою очередь отслеживает сделанные изменения в шаблоне и передает их в реальном времени FC плагину для cockpit.
Системные требования
- proxmox VM должна поддерживать вложенную виртуализацию (ВМ внутри ВМ), для этого выбираем для ВМ тип процессора host.
- Проверяется через /sys/module/kvm_intel/parameters/nested или /sys/module/kvm_amd/parameters/nested в зависимости от процессора. 1 или Y говорит о том, что вложенная виртуализация поддерживается. Также можно использовать утилиту virt-host-validate из пакета libvirt-client.
- размер RAM должен удовлетворять запросам двух систем + ipa server
- рекомендовано подключить отдельный 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 запущена
Установка ОС на 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 и производим установку ОС, например:
[someuser@localpc ~]$ virt-viewer --connect qemu+ssh://test@dc.ipa.test/system
После окончания установки ОС, доустанавливаем 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-хоста для подключения. Для запуска live-сессии необходимо работающее ssh-соединение с libvirt хостом. Fleet Commander генерирует собственный ключ для аутентификации по открытому ключу с sshd. В ALTLinux по умолчанию password аутентификация sshd отключена, также отключена аутентификация sshd для root. Поэтому рекомендованный вариант — это добавить специального выделенного пользователя с членством в группе vmusers, и вручную добавить ему открытую часть ssh ключа FC в .ssh/authorized_keys.
Работа с профилями
После настройки Fleet Commander Admin необходимо создать и настроить профиль. Редактирование профиля производится из этого же интерфейса. После нажатия Add Profile
появится форма настройки профиля:
Форма настройки профиля содержит следующие поля:
Name
— имя профиля;Description
— описание профиля;Priority
— приоритет профиля;Users
— пользователи, к которым будет применен профиль;Groups
— группы, к которым будет применен профиль;Hosts
— хосты, к которым будет применен профиль;Host groups
— группы хостов, к которым будет применен профиль.
Если не указан ни один хост или группа хостов, то профиль будет применен к каждому хосту состоящему в домене.
После редактирования профиля сохраним изменения.
Настройка шаблона
Для этого в web-интерфейсе cocpkit'а необходимо нажать Edit
напротив нужного профиля и внизу всплывшего окна кнопку Live session
. В появившейся форме будет список всех доступных шаблонов, кликнув по шаблону он начнет загружаться.
Установка и настройка Fleet Commander Client
Клиентская машина должна быть введена в домен, как установить и настроить FreeIPA Client можно посмотреть в соответствующем разделе.
Установим необходимый пакет:
[root@dc ~]# apt-get install fleet-commander-client
Использование Fleet Commander
Администрирование происходит через Cockpit web-интерфейс. Откроем https://localhost:9090/fleet-commander-admin и запустим live-сессию (Edit -> Live session). Появится окно выбора шаблона для загрузки в live-сессии. Все сделанные изменения в этой сессии, которые поддерживаются FC, будут отображены в cockpit. Администратор указывает какие из них стоит сохранить. При нажатии Save
произойдет сохранение профиля и завершение live-сессии.
Fleet Commander работает со следующими приложениями:
- GSettings
- LibreOffice
- Chromium
- Chrome
- Firefox
- NetworkManager
Проверим работу Fleet Commander. На загруженной машине с логгером запустим chromium, и сделаем пару изменений: добавим закладку https://www.altlinux.org и в настройках браузера поставим галочку Показывать кнопку "Главная страница"
. После чего в web-интерфейсе Cockpit нажмем Review and submit
. Должно появиться окно со списком сделанных изменений:
В списке изменений можно выбрать как все изменения, так и частичные, установив галочку напротив нужного. После выбора сохраним изменения.
Теперь можно проверить, как изменения применились на клиенте. Загрузим клиентскую машину, войдем в систему под доменным пользователем и запустим chromium (он должен быть предварительно установлен). Сделанные изменения успешно применились и доменный пользователь не сможет их отменить.
Проблемы связанные с использованием
В текущей версии Fleet Commander выявлены некоторые проблемы.
- Отлавливаются не все настройки Chromium. Fleet Commander имеет свою встроенную политику настроек Chromium, которые отслеживаются логгером, остальные настройки игнорируются.
- Не отслеживаются настройки Firefox. Логгер не всегда правильно определяет путь до профиля настроек Firefox, поэтому не может отследить изменения в настройках.
- Возможны различные ошибки в работе с GSettings.
Так же для корректной работы Fleet Commander с Firefox необходимо добавить pref("toolkit.policies.perUserDir", true)
в
/usr/lib64/firefox/browser/defaults/preferences/all-altlinux.js.
Устранение неполадок 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. Для решения данной проблемы можно воспользоваться командой:
[root@dc ~]# mkhomedir_helper `username`
Не заходит под доменным пользователем
После создания доменного пользователя и попытки входа может возникнуть ошибка недоступности домашнего каталога. Обычно помогает выполнение
# ssh -l `username` localhost
после чего попытка входа под доменным пользователем удается.
Error getting domain list
Ошибка, которая возникает при попытки подключения к live-сессии. Обычно проблема связана с неправильной конфигурацией libvirt-хоста. Проверьте установлен и запущен ли libvirt на libvirt-хосте.