3. Сервер утилит Calculate

Введение

Сервер утилит Calculate Core служит для выполнения методов утилит, таких как установка, настройка системы и т.д. и для осуществления сетевого доступа клиентам (cl-console и cl-console-gui) по протоколу https к функциям утилит Calculate. Calculate Core входит в состав утилит Calculate 3. Установить сервер утилит можно при помощи пакета sys-apps/calculate-core.

Начало работы, создание сертификата

Для запуска сервера утилит необходимо создать сертификат одним из двух способов:
  • создать запрос на подписание сертификата (далее запрос) и подписать сертификат у другого сервера;
  • создать самоподписной корневой сертификат и использовать его в качестве сертификата сервера.

Для запуска сервера утилит необходим серверный сертификат. Корневой самоподписной сертификат необходим для подписания сертификатов другим серверам утилит.

Подписание сертификата у другого сервера утилит

Для генерации секретного ключа и запроса, а так же для отправки запроса на сервер утилит используйте команду

cl-core --gen-cert-by HOST --port PORT
, где HOST - сетевой адрес сервера утилит, PORT - порт, который прослушивает сервер утилит (по умолчанию 8888)
Например,
cl-core --gen-cert-by 192.168.0.123 --port 4567

После подписания сертификата на сервере утилит необходимо забрать его с помощью команды

cl-core --get-cert-from ROOT_HOST --port PORT
, где ROOT_HOST - сетевой адрес сервера утилит, PORT - порт, который прослушивает сервер утилит (по умолчанию 8888)

Например,

cl-core --get-cert-from 192.168.0.123 --port 4567

Создание самоподписного сертификата

Для создания самоподписного корневого сертификата используйте команду

cl-core --gen-root-cert

Для использования созданного самоподписного корневого сертификата как сертификат сервера утилит используйте команду

cl-core --use-root-as-server

Запуск сервера утилит

После генерации сертификата сервер утилит можно запустить с помощью команды

cl-core --start

При этом сервер утилит будет прослушивать порт 8888, для указания порта используйте ключ --port, например

cl-core --start --port 5648

Для запуска в режиме отладки (debug), используйте ключ --debug

Действия с сервером утилит

Операции с запросами и сертификатами

Просмотр запросов и сертификатов

Многие действия с сервером утилит можно выполнять непосредственно на сервере, без использования клиентов. Для этого необходимы права суперпользователя - root.

Для просмотра клиентских запросов используйте ключ --show-request с указанием номера запроса или слова "all" для просмотра списка запросов, например

cl-core --show-request all
cl-core --show-request 2

Для просмотра клиентских подписанных сертификатов используйте ключ --cert с указанием номера сертификата или слова "all" для просмотра списка сертификатов, например

cl-core --cert all
cl-core --cert 2

С помощью ключа --dump можно просмотреть сразу все сертификаты

cl-core --cert all --dump

или содержимое файла сертификата, например
cl-core --cert 4 --dump

Для просмотра запросов и сертификатов серверов утилит используйте ключ --server-cert с указанием номера или "all", например

cl-core --server-cert all
cl-core --server-cert 2

Подписание запросов и отзыв сертификатов клиента

Для подписание клиентского запроса на подпись сертификата используйте ключ --sign-client с указанием номера запроса, например

cl-core --sign-client 4

После этого введите группу прав для нового сертификата (изменить её в дальнейшем невозможно). Подписание осуществляется серверным сертификатом.

Если необходимо отвергнуть клиентский запрос, используйте ключ --del-client-req с указанием номера запроса, например

cl-core --del-client-req 4

Для удаления уже подписанного сертификата клиента совместно с ключом --cert и указанием номера сертификата используйте ключ --remove, например

cl-core --cert 4 --remove

Также создать сертификат пользователь с правами группы "all" можно с помощью команды

cl-core --bootstrap username

например, с помощью команды
cl-core --bootstrap iivanov

для пользователя iivanov будет создан сертификат с правами группы "all" и добавлен в доверенные сертификат сервера утилит.

Для удаления всех сертификатов, запросов и конфигурационных файлов на сервере совместно с ключом --bootstrap используйте ключ --remove-certs, например:

cl-core --bootstrap iivanov --remove-certs

Подписание запросов и отзыв сертификатов сервера утилит

Для подписание запроса на подпись сертификата от другого сервера утилит используйте ключ --sign-server с указанием номера запроса, например

cl-core --sign-server 4

Подписание осуществляется корневым сертификатом.

Если необходимо отвергнуть запрос сервера утилит, используйте ключ --del-server-req с указанием номера запроса, например

cl-core --del-server-req 4

Для отзыва подписанного сертификата сервера утилит (добавление в список отзыва) используйте ключ --revoke-cert с указанием номера сертификата, например

cl-core --revoke-cert 4

Для удаления списка отзывов сертификатов, используйте команду
cl-core --revoke-cert rm

Изменение прав сертификатов

Права для групп сертификатов по умолчанию хранятся в файле /var/calculate/server/conf/group_right.conf в следующем виде: group right1[, right2[,right3...]], например

manager install, get-sessions, request
user get-sessions,request,view_cert

Для изменения прав конкретного сертификата используется файл /var/calculate/server/conf/right.conf, куда необходимо вписать права и номера сертификатов, например

install 1 2 -3

для сертификатов с номерами 1 и 2 добавить право на действие install и удалить его для сертификата с номером 3.
Права для конкретного сертификата имеют приоритет перед правами для группы сертификата.

Для изменения прав конкретного сертификата клиента используется ключи --right-add и --right-del совместно с ключом --cert, например

cl-core -c 6 --right-del install_pxe,install
cl-core -c 7 --right-add install_pxe,install,configure_video

В примере для сертификата с номером 6 установится запрет на методы, требующие права install_pxe и install, а для сертификата с номером 7 установится разрешение на методы install_pxe, install и configure_video.

Локальный запуск процессов

Запуск методов с помощью ключа --method

Все действия на сервере утилит можно запускать как через клиентов (cl-console-gui, cl-console), с использованием шифрования по сертификатам и позволяющим выполнять действия на удалённых серверах утилит, так и с помощью самих серверов утилит, выполняющих действия напрямую и только на локальных серверах утилит.

Для просмотра всех доступных действий на сервере утилит используйте команду

# cl-core --list-methods

install  -  Установка системы
setup_boot  -  Загрузка
core_setup  -  Настройка пакета
...

Для запуска метода используйте команду

cl-core --method METHOD

например:
cl-core --method install --iso /path_to_image/cld-x86_64.iso -d /dev/sda1:swap -d /dev/sda2:/:ext4:on

Для просмотра справки действия используйте команду

cl-core --method METHOD --help

например:
cl-core --method install --help

Ключ -f, --force устанавливает режим, при котором пользователю не задаются вопросы и не отображаются предварительные параметры (brief).

Ключ --no-progress отключает отображение прогрессбаров (текущего прогресса выполнения задачи).

Ссылки на методы

При установке системы для всех действий на сервере утилит создаются символические ссылки вида cl-method, где method - название метода, которое можно получить с помощью cl-core --list-methods. Например, для метода setup_network ссылкой будет команда cl-setup-network (символы "_" заменяются на "‐").

Для создания отсутствующих ссылок и удаления ссылок на отсутствующие действия сервера утилит используйте команду

cl-core --create-symlink

Выполнять команду cl-core и все символические ссылки на неё может только пользователь root.
Все символические ссылки работают по принципу вызова метода сервера утилит - только на локальной машине без использования сертификатов и шифрования.

Другие действия

Проверить конфигурацию (наличие сертификата и секретного ключа, их соответствие друг другу, а так же действителен ли сертификат) можно с помощью ключа --check

Указать путь к для ведения журнал событий (логов) можно с помощью ключа --log-path, например:

cl-core --log-path /var/log/calculate/mylogs/

Файл логов по умолчанию - /var/log/calculate/logging_cl_core.out.

Указание пути к PID файлу осуществляется с помощью ключа --pid-file PIDFILE

Дополнительно есть две опции для отображения прогресса выполнения в GUI:
  • --gui-progress - отображает индикатор прогресса в GUI
  • --gui-warning - отображает предупреждения в конце

Передача пароля со стандартного ввода осуществляется с помощью ключа -P, например:

cat pass | cl-core -P --method install -u test -f

Опция -P должна использоваться вместе с опцией -f, т.к. при перенаправлении потоков ввода/вывода использование интерактивного режима невозможно.

Стандартные методы сервера утилит

Все методы сервера утилит разделены на категории. В версии сервера утилит 3.2.0 существуют следующие стандартные категории: Клиент, Настройка, Обновить, Рабочий стол, Установка и Утилиты.

Клиент

Категория Клиент включает в себя методы для изменения поведения системы(локальная/доменная) и для смены паролей пользователей.

Настройка

Категория Настройка включает в себя методы для настройки параметров системы и пакетов.

Обновить

Категория Обновить включает в себя методы для обновления системы, настроек и смены профиля.

Рабочий стол

Категория Рабочий стол включает в себя методы для принудительного выхода пользователей из сеанса и настройки профилей пользователей.

Установка

Категория Установка включает в себя методы для установки системы.

Утилиты

Категория Утилиты включает в себя методы для работы с сертификатами, запросами и группами прав сертификатов.

Спасибо!