3. Сервер утилит Calculate¶
- Сервер утилит Calculate
- Введение
- Начало работы, создание сертификата
- Подписание сертификата у другого сервера утилит
- Создание самоподписного сертификата
- Запуск сервера утилит
- Действия с сервером утилит
- Операции с запросами и сертификатами
- Локальный запуск процессов
- Другие действия
- Стандартные методы сервера утилит
Введение¶
Сервер утилит Calculate Core служит для выполнения методов утилит, таких как установка, настройка системы и т.д. и для осуществления сетевого доступа клиентам (cl-console и cl-console-gui) по протоколу 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 существуют следующие стандартные категории: Клиент, Настройка, Обновить, Рабочий стол, Установка и Утилиты.
Клиент
Категория Клиент включает в себя методы для изменения поведения системы(локальная/доменная) и для смены паролей пользователей.
Настройка
Категория Настройка включает в себя методы для настройки параметров системы и пакетов.
Обновить
Категория Обновить включает в себя методы для обновления системы, настроек и смены профиля.
Рабочий стол
Категория Рабочий стол включает в себя методы для принудительного выхода пользователей из сеанса и настройки профилей пользователей.
Установка
Категория Установка включает в себя методы для установки системы.
Утилиты
Категория Утилиты включает в себя методы для работы с сертификатами, запросами и группами прав сертификатов.