net/zadanie3/hq-cli.sh

88 lines
4.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# ============================================================
# ЗАДАНИЕ 3. Настройка HQ-CLI (Linux / РЕД ОС 8)
# 4. Доверие корневому сертификату ЦС (HQ-SRV)
# 6. Подключение виртуального pdf-принтера как принтера по умолчанию
# 9. Агент Кибер Бэкап — ДЕЛАЕТСЯ ВРУЧНУЮ (MANUAL.md)
# ============================================================
# --- Проверка прав root ---
if [[ $EUID -ne 0 ]]; then
echo "Запустите скрипт с правами root (sudo bash hq-cli.sh)"
exit 1
fi
# ================= ПЕРЕМЕННЫЕ (заполните перед запуском) =================
EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург
# --- 4. Доверие корневому сертификату ---
CA_ROOT_FILE="" # путь к скопированному корневому сертификату
# (root.crt копируется с HQ-SRV вручную — MANUAL.md)
CA_ANCHORS_DIR="/etc/pki/ca-trust/source/anchors" # ПРОВЕРИТЬ на РЕД ОС 8
CA_TRUST_CMD="update-ca-trust" # ПРОВЕРИТЬ команду обновления хранилища
# --- 6. Принтер по умолчанию (виртуальный pdf с HQ-SRV) ---
CUPS_SERVER="" # адрес HQ-SRV (без префикса)
PRINTER_NAME="pdf" # имя принтера, как он опубликован на HQ-SRV
CLIENT_PRINTER="pdf_printer" # локальное имя подключения на HQ-CLI
CUPS_PACKAGE="cups" # клиенту нужны утилиты lpadmin/lpstat
# ============ Проверка заполнения переменных ============
MISSING=()
for NAME in CA_ROOT_FILE CUPS_SERVER EXAM_TZ; do
[[ -z "${!NAME}" ]] && MISSING+=("$NAME")
done
if [[ ${#MISSING[@]} -gt 0 ]]; then
echo "Заполните переменные в начале скрипта: ${MISSING[*]}"
exit 1
fi
echo "=== Настройка HQ-CLI, задание 3 ==="
# --- 1. Доверие корневому сертификату ЦС ---
echo "--- Доверие CA ---"
if [[ ! -f "$CA_ROOT_FILE" ]]; then
echo "ДЕЛАЕТСЯ ВРУЧНУЮ: файла $CA_ROOT_FILE нет — скопируйте root.crt с HQ-SRV"
echo " scp root@<адрес HQ-SRV>:$CA_ROOT_FILE "
exit 1
fi
cp "$CA_ROOT_FILE" "$CA_ANCHORS_DIR/"
"$CA_TRUST_CMD" && echo "Хранилище сертификатов обновлено" \
|| echo "ПРОВЕРИТЬ: $CA_TRUST_CMD не выполнился"
echo "Проверка: curl -I https://web.au-team.irpo (не должен писать про сертификат)"
# --- 2. Принтер по умолчанию ---
echo "--- Подключение принтера — $CLIENT_PRINTER <- $CUPS_SERVER:$PRINTER_NAME ---"
dnf install -y "$CUPS_PACKAGE" || echo "ПРОВЕРИТЬ: пакет $CUPS_PACKAGE не установился"
if lpstat -p 2>/dev/null | grep -qw "$CLIENT_PRINTER"; then
echo "Принтер $CLIENT_PRINTER уже подключён"
else
lpadmin -p "$CLIENT_PRINTER" \
-v "ipp://$CUPS_SERVER:631/printers/$PRINTER_NAME" -E \
&& echo "Принтер добавлен" \
|| echo "ПРОВЕРИТЬ: lpadmin не смог добавить принтер (CUPS на HQ-SRV слушает 631?)"
fi
# Назначить принтер по умолчанию (повторно безопасно)
lpoptions -d "$CLIENT_PRINTER" >/dev/null && echo "Принтер по умолчанию: $CLIENT_PRINTER"
lpstat -p -d
# --- 3. Агент Кибер Бэкап — вручную ---
echo ""
echo "ДЕЛАЕТСЯ ВРУЧНУЮ (MANUAL.md): установить агент с функциями узла"
echo "хранилища, подключить к серверу HQ-SRV, создать /backup и выбрать"
echo "её как устройство хранения. Директорию /backup можно создать сейчас:"
mkdir -p /backup && echo " Директория /backup создана"
# --- 4. Часовой пояс ---
timedatectl set-timezone "$EXAM_TZ"
echo ""
echo "=== Самопроверка на HQ-CLI ==="
lpstat -p -d
echo ""
echo "Дополнительные проверки вручную:"
echo " curl -I https://web.au-team.irpo (без предупреждений о сертификате)"
echo " curl -I https://docker.au-team.irpo (без предупреждений + логин WEB/P@ssw0rd на web)"
echo " echo test | lp -d $CLIENT_PRINTER (печать в pdf-принтер)"
echo " ls /var/spool/cups-pdf на HQ-SRV (pdf появился у принтера?)"