Fleet Commander: различия между версиями

Материал из ALT Linux Wiki
(fix Логгер не сбрасывает изменения)
Нет описания правки
Строка 3: Строка 3:


Fleet Commander состоит из трех компонентов:
Fleet Commander состоит из трех компонентов:
*плагин FreeIPA, который позволяет хранить профили на контроллере домена
*плагин FreeIPA, который позволяет хранить политики на контроллере домена(LDAP)
*плагин Cockpit, отвечающий за администрирование и предоставляющий интерфейс
*плагин Cockpit, предоставляющий Web интерфейс для администрирования
*служба на стороне клиента, которая работает на каждом узле сети.
*служба на стороне члена домена, применяющая политики


Fleet Commander использует libvirt и KVM для запуска сеанса виртуального рабочего стола, который позволяет пользователю в реальном времени редактировать конфигурацию приложений в системе шаблонов, которая будет применена на клиентах.
Fleet Commander использует libvirt и KVM для запуска сеанса виртуального рабочего стола, который позволяет пользователю в реальном времени редактировать конфигурацию приложений в системе шаблонов, которая будет применена на клиентах.
{{Note|Шаблон запускается как qemu snapshot, то есть все изменения, совершенные над ним, существуют только пока запущен этот domain}}


== Установка и настройка Fleet Commander ==
== Установка и настройка Fleet Commander ==
Как уже говорилось выше, Fleet Commander состоит из трех компонентов. Рассмотрим пример развертывания Fleet Commander на четырех машинах:
Как уже говорилось выше, Fleet Commander состоит из трех компонентов. В общем случае, ''admin'' и ''libvirtd host'' могут быть развернуты на одной машине.


''admin, client, template, libvirt host''.
===Установка и настройка Fleet Commander Admin===
1) предварительно необходимо установить и настроить FreeIPA сервер, с созданием домашнего каталога (добавить опцию ''--mkhomedir''). Инструкцию по установке FreeIPA сервера можно посмотреть в [[FreeIPA| соответствующем разделе]].


===Установка и настройка Fleet Commander Admin===
2) установим ''freeipa-desktop-profile'':
Предварительно необходимо установить и настроить FreeIPA сервер, с созданием домашнего каталога (добавить опцию ''--mkhomedir''). Инструкцию по установке FreeIPA сервера можно посмотреть в [[FreeIPA| соответствующем разделе]].
<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>


Далее установим необходимые пакеты
# apt-get install freeipa-desktop-profile cockpit
и запустим
и запустим
  # systemctl start cockpit
  <syntaxhighlight lang="console">
  # systemctl start cockpit
</syntaxhighlight>


web-интерфейс Cockpit будет доступен по адресу
web-интерфейс Cockpit будет доступен по адресу

Версия от 18:23, 25 сентября 2020

Fc ico.png.png

Fleet commander - это инструмент для управления и развертывания профилей в большой сети пользователей и рабочих станций.

Fleet Commander состоит из трех компонентов:

  • плагин FreeIPA, который позволяет хранить политики на контроллере домена(LDAP)
  • плагин Cockpit, предоставляющий Web интерфейс для администрирования
  • служба на стороне члена домена, применяющая политики

Fleet Commander использует libvirt и KVM для запуска сеанса виртуального рабочего стола, который позволяет пользователю в реальном времени редактировать конфигурацию приложений в системе шаблонов, которая будет применена на клиентах.

Примечание: Шаблон запускается как qemu snapshot, то есть все изменения, совершенные над ним, существуют только пока запущен этот domain


Установка и настройка Fleet Commander

Как уже говорилось выше, Fleet Commander состоит из трех компонентов. В общем случае, admin и libvirtd host могут быть развернуты на одной машине.

Установка и настройка 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

и запустим

  # systemctl start cockpit

web-интерфейс Cockpit будет доступен по адресу

http://localhost:9090/

вход осуществляется по логину указанному при установке FreeIPA сервера.

Установим Fleet Commander плагин для Cockpit

# apt-get install fleet-commander-admin

после перезагрузки демона Cockpit на web-интерфейсе появится доступ к настройке Fleet Commander.

Настроить Fleet Commander достаточно один раз при первом запуске. Окно настроек выглядит следующим образом:
Fc settings2.png

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 появится форма настройки профиля:
Profile settings1.png

Форма настройки профиля содержит следующие поля:

  • 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

Настройка шаблона

Шаблон это отдельная машина с запущенным на ней Fleet Commander Logger. Шаблон запускается на "админской" машине в live-сессии. Логгер отслеживает сделанные изменения в шаблоне и сохраняет их.

Если в качестве libvirt хоста используется FreeIPA сервер, то шаблон необходимо иметь на нем же.

На template-машине достаточно установить логгер:

# apt-get install fleet-commander-logger

После выключения шаблона можно попробовать запустить 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. Должно появиться окно со списком сделанных изменений:
Fc logger changes.png

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

Теперь можно проверить, как изменения применились на клиенте. Загрузим клиентскую машину, войдем в систему под доменным пользователем и запустим chromium (он должен быть предварительно установлен). Сделанные изменения успешно применились и доменный пользователь не сможет их отменить.

Chrom set.png
Chrom bkm.png


Проблемы связанные с использованием

В текущей версии 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.