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

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
 
(не показано 15 промежуточных версий 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 и KVM для запуска сеанса виртуального рабочего стола, который позволяет пользователю в реальном времени редактировать конфигурацию приложений в системе шаблонов, которая будет применена на клиентах.
Fleet Commander использует libvirt на qemu-KVM для запуска виртуальной машины, которая позволяет пользователю в реальном времени редактировать конфигурацию DE (окружение рабочего стола), изменения которой должны быть применены для членов домена при последующей аутентификации в системе.
 
{{Attention|FC admin/client поддерживают только GNOME-based DE. Работа по добавлению поддержки KDE ведется.}}
{{Attention|FC не занимается доставкой конфигурации системы.}}


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


''admin, client, template, libvirt host''.
Если <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===
Предварительно необходимо установить и настроить FreeIPA сервер, с созданием домашнего каталога (добавить опцию ''--mkhomedir''). Инструкцию по установке FreeIPA сервера можно посмотреть в [[FreeIPA| соответствующем разделе]].
1) предварительно необходимо установить и настроить FreeIPA сервер, с созданием домашнего каталога (добавить опцию ''--mkhomedir''). Инструкцию по установке FreeIPA сервера можно посмотреть в [[FreeIPA| соответствующем разделе]].
 
2) установим ''freeipa-desktop-profile'':
<syntaxhighlight lang="console">
  [root@dc ~]# apt-get install freeipa-desktop-profile
</syntaxhighlight>


Далее установим необходимые пакеты
и проверим, что плагин работает:
  # apt-get install freeipa-desktop-profile cockpit
  <syntaxhighlight lang="console">
и запустим
  [root@dc ~]# kinit admin
  # systemctl start cockpit
  [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>
}}


web-интерфейс Cockpit будет доступен по адресу
3) установим ''fleet-commander-admin'':
  http://localhost:9090/
<syntaxhighlight lang="console">
  [root@dc ~]# apt-get install fleet-commander-admin
  </syntaxhighlight>


вход осуществляется по логину указанному при установке FreeIPA сервера.
и запустим cockpit:
<syntaxhighlight lang="console">
  [root@dc ~]# systemctl enable --now cockpit.socket
</syntaxhighlight>


Установим Fleet Commander плагирн для Cockpit
По умолчанию web-интерфейс FC будет доступен по адресу:
  # apt-get install fleet-commander-admin
  https://localhost:9090/fleet-commander-admin


после перезагрузки демона Cockpit на web-интерфейсе появится доступ к настройке Fleet Commander.
{{Note|Аутентифицироваться в cockpit нужно доменным пользователем, имеющим необходимые ACL на deskprofiles. В демонстрационных целях это будет ''admin''}}


Настроить Fleet Commander достаточно один раз при первом запуске. Окно настроек выглядит следующим образом:
4) настроить Fleet Commander достаточно один раз при первом запуске. Окно настроек выглядит следующим образом:
<br>[[Файл:fc_settings2.png|450px]]<br>
 
[[Файл:fc_settings2.png|450px]]


Fleet Commander позволяет установить глобальную политику для определения того, как применять несколько профилей: ''к конкретному пользователю, к группе, к хосту, к группе хостов''. По умолчанию это ''User-Group-Host-Hostgroup''.
Fleet Commander позволяет установить глобальную политику для определения того, как применять несколько профилей: ''к конкретному пользователю, к группе, к хосту, к группе хостов''. По умолчанию это ''User-Group-Host-Hostgroup''.


В форму настройки необходимо ввести адрес и имя пользователя libvirt-хоста для подключения. Если пользователь не является привилегированным, то переключаем <code>''Libvirt mode''</code> в режим сеанса.
В форму настройки необходимо ввести адрес и имя пользователя 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>.
 
Для запуска live-сессии необходимо работающее ssh-соединение с libvirt хостом. Fleet Commander генерирует собственный открытый ключ, который необходимо добавить в ''.ssh/authorized_keys'' для соответствующего пользователя на libvirt хосте. Это можно сделать с помощью <code>''Install public key''</code> на форме настройки, при этом будет необходимо ввести пароль пользователя. Пароль используется только для установки ключа и нигде не хранится.


==== Работа с профилями ====
==== Работа с профилями ====
После настройки Fleet Commander Admin необходимо создать и настроить профиль. Редактирование профиля производится из этого же интерфейса. После нажатия <code>''Add Profile''</code> появится форма настройки профиля:
После настройки Fleet Commander Admin необходимо создать и настроить профиль. Редактирование профиля производится из этого же интерфейса. После нажатия <code>''Add Profile''</code> появится форма настройки профиля:
<br>[[Файл:profile_settings1.png|400px]]<br>
 
[[Файл:profile_settings1.png|400px]]


Форма настройки профиля содержит следующие поля:
Форма настройки профиля содержит следующие поля:
*<code>''Name''</code> - имя профиля
*<code>''Name''</code> имя профиля;
*<code>''Description''</code> - описание профиля
*<code>''Description''</code> описание профиля;
*<code>''Priority''</code> - приоритет профиля
*<code>''Priority''</code> приоритет профиля;
*<code>''Users''</code> - пользователи, к которым будет применен профиль
*<code>''Users''</code> пользователи, к которым будет применен профиль;
*<code>''Groups''</code> - группы, к которым будет применен профиль
*<code>''Groups''</code> группы, к которым будет применен профиль;
*<code>''Hosts''</code> - хосты, к которым будет применен профиль
*<code>''Hosts''</code> хосты, к которым будет применен профиль;
*<code>''Host groups''</code> - группы хостов, к которым будет применен профиль
*<code>''Host groups''</code> группы хостов, к которым будет применен профиль.


Если не указан ни один хост или группа хостов, то профиль будет применен к каждому хосту состоящему в домене.
Если не указан ни один хост или группа хостов, то профиль будет применен к каждому хосту состоящему в домене.


После редактирования профиля сохраним изменения и перейдем к настройка libvirt хоста.
После редактирования профиля сохраним изменения.
 
=== Настройка шаблона ===
Для этого в 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-сессия прервется и изменения, внесенные за время ее существования, будут потеряны.}}


=== Настройка libvirt-хоста ===
Fleet Commander работает со следующими приложениями:
В качестве libvirt-хоста может выступать как отдельная машина, так и машина с Fleet Commander Admin.
* GSettings
* LibreOffice
* Chromium
* Chrome
* Firefox
* NetworkManager


Установим необходимый пакет
Проверим работу Fleet Commander. На загруженной машине с логгером запустим chromium, и сделаем пару изменений: добавим закладку ''https://www.altlinux.org'' и в настройках браузера поставим галочку <code>''Показывать кнопку "Главная страница"''</code>. После чего в web-интерфейсе Cockpit нажмем <code>''Review and submit''</code>. Должно появиться окно со списком сделанных изменений:
# apt-get install libvirt
<br>[[Файл:fc_logger_changes.png|350px]]<br>


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


Если есть необходимость использовать привилегированного пользователя libvirt хоста, то необходимо разрешить root-доступ по ssh. Для этого в конфигурационном файле ''/etc/openssh/sshd_config'' нужно указать <code>''PermitRootLogin yes''</code> и перезагрузить ssh-сервис:
Теперь можно проверить, как изменения применились на клиенте. Загрузим клиентскую машину, войдем в систему под доменным пользователем и запустим chromium (он должен быть предварительно установлен). Сделанные изменения успешно применились и доменный пользователь не сможет их отменить.
# systemctl restart sshd.service


=== Настройка шаблона ===
[[Файл:chrom_set.png|500px|left]]
Шаблон это отдельная машина с запущенным на ней Fleet Commander Logger. Шаблон запускается на "админской" машине в live-сессии. Логгер отслеживает сделанные изменения в шаблоне и сохраняет их.
[[Файл:chrom_bkm.png|350px|center]]


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


На template-машине достаточно установить логгер:
=== Проблемы связанные с использованием ===
# apt-get install fleet-commander-logger
В текущей версии Fleet Commander выявлены некоторые проблемы.


После выключения шаблона можно попробовать запустить live-сессию. Для этого в web-интерфейсе cocpkit'а необходимо нажать <code>''Edit''</code> напротив нужного профиля и внизу всплывшего окна кнопку <code>''Live session''</code>. В появившейся форме будет список всех доступных шаблонов, кликнув по шаблону он начнет загружаться.
* ''Отлавливаются не все настройки Chromium.'' Fleet Commander имеет свою встроенную политику настроек Chromium, которые отслеживаются логгером, остальные настройки игнорируются.


=== Установка и настройка Fleet Commander Client ===
* ''Не отслеживаются настройки Firefox.'' Логгер не всегда правильно определяет путь до профиля настроек Firefox, поэтому не может отследить изменения в настройках.
Клиентская машина должна быть введена в домен, как установить и настроить FreeIPA Client можно посмотреть в [[FreeIPA| соответствующем разделе]].


Установим необходимый пакет:
* ''Возможны различные ошибки в работе с GSettings.''
# apt-get install fleet-commander-client


Создадим доменного пользователя. Это можно сделать как через консоль, так и через web-интерфейс по адресу FreeIPA сервера, войдя под "админской" учетной записью.
Так же для корректной работы Fleet Commander с Firefox необходимо добавить <code>''pref("toolkit.policies.perUserDir", true)''</code> в <br>''/usr/lib64/firefox/browser/defaults/preferences/all-altlinux.js''.


== Устранение неполадок Fleet Commander ==
== Устранение неполадок Fleet Commander ==
Для отлавливания любых ошибок возникших во время работы Fleet Commander Admin необходимо добавить <code>''log_level = debug''</code> в <br>''/etc/xdg/fleet-commander-admin.conf''. Возникшие ошибки можно отследить используя ''journalctl''.
Для отлавливания любых ошибок возникших во время работы Fleet Commander Admin необходимо добавить <code>''log_level = debug''</code> в <br>''/etc/xdg/fleet-commander-admin.conf''. Возникшие ошибки можно отследить, используя ''journalctl''.


=== Can’t initialize Fleet Commander ===
=== Can’t initialize Fleet Commander ===
Проверьте установлен ли ''freeipa-desktop-profile'', если нет, то установите. Часто такая ошибка может возникнуть в случае отсутствия домашнего каталога, если установка FreeIPA Server была запущена без опции ''--mkhomedir''. Для решения данной проблемы можно воспользоваться командой:
Проверьте установлен ли ''freeipa-desktop-profile'', если нет, то установите. Часто такая ошибка может возникнуть в случае отсутствия домашнего каталога, если установка FreeIPA Server была запущена без опции ''--mkhomedir''. Для решения данной проблемы можно воспользоваться командой:
  # mkhomedir_helper `username`
  <syntaxhighlight lang="console">
 
[root@dc ~]# mkhomedir_helper `username`
Если вышеприведенные способы не помогают, проверьте есть ли у администратора доступ к командам интерфейса:
  </syntaxhighlight>
# ipa console
  (Custom IPA interactive Python console)
>>'deskprofileconfig_show' in api.Command
False
 
В этом случае кэш пользователя должен быть удален, это можно сделать добавив <code>''force_schema_check = True''</code> в ''/etc/ipa/fleetcommander.conf'' в секцию ''[global]''.


=== Не заходит под доменным пользователем ===
=== Не заходит под доменным пользователем ===
Строка 111: Строка 214:


=== Error getting domain list ===
=== Error getting domain list ===
Ошибка, которая возникает при попытки подключения к live-сессии. Обычно проблема связана с неправильной конфигурацией libvirt-хоста. Проверьте установлен и запущен ли libvirt-client на libvirt хосте.
Ошибка, которая возникает при попытки подключения к live-сессии. Обычно проблема связана с неправильной конфигурацией libvirt-хоста. Проверьте установлен и запущен ли libvirt на 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|frameless|right]]


[[Категория:Корпоративная инфраструктура]]
[[Категория:Корпоративная инфраструктура]]

Текущая версия от 12:36, 25 марта 2022

Fc ico.png.png

Fleet commander — это инструмент для управления и развертывания конфигурации окружения рабочего стола (DE) в большой сети пользователей и рабочих станций.

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

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

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

Внимание! FC admin/client поддерживают только GNOME-based DE. Работа по добавлению поддержки KDE ведется.
Внимание! FC не занимается доставкой конфигурации системы.


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

Как уже говорилось выше, Fleet Commander состоит из трех компонентов. В демонстрационных целях будет рассмотрен deploy ipa server + libvirtd на одном хосте на proxmox VM.

Подготовка домена libvirt в качестве шаблона FC

Шаблон FC — это отдельный домен libvirt с запущенным на нем Fleet Commander Logger.
Шаблон запускается при старте FC live-сессии из web-интерфейса cockpit. А логгер в свою очередь отслеживает сделанные изменения в шаблоне и передает их в реальном времени FC плагину для cockpit.

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


Системные требования

  • 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
Примечание: Домен, который планируется использовать как FC шаблон, должен быть в выключенном состоянии. В противном случае FC не позволит запустить live-сессию на этом домене.


Установка и настройка 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
Примечание: Аутентифицироваться в cockpit нужно доменным пользователем, имеющим необходимые ACL на deskprofiles. В демонстрационных целях это будет admin


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

Fc settings2.png

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

Profile settings1.png

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

  • 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-сессии.

Внимание! При закрытии вкладки браузера или браузера с cockpit live-сессия прервется и изменения, внесенные за время ее существования, будут потеряны.


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 выявлены некоторые проблемы.

  • Отлавливаются не все настройки 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-хосте.