Provoz SOFiE za explicitní proxy

Provoz SOFiE za explicitní proxy

Tento postup slouží pro instalace, kde je odchozí HTTP/HTTPS provoz ze serveru SOFiE povolený pouze přes explicitní proxy. Ruční nastavení níže je záměrně kompatibilní s příkazem sofie proxy, který je dostupný od verze 2.6+. Po ručním nastavení tedy půjde přejít na správu pomocí skriptu.

Od verze 2.6+ lze použít automatizovaný postup:

sofie proxy status sofie proxy set proxy.example.local 3128 sofie proxy unset sofie restart

Pro verzi 2.5 a starší nebo pro ruční zásah použijte následující postup.

Zatím je podporována pouze proxy zadaná jako host a port bez autentizace. Pokud proxy vyžaduje autentizaci, lze konfiguraci ručně dále upravit, ale to není součástí tohoto návodu.

Co se nastavuje

  • Java služby SOFiE dostanou JVM properties pro HTTP a HTTPS proxy přes soubor /etc/sofie/setenv.local.sh. Týká se aplikačních služeb jako sofie-web, sofie-worker, sofie-scheduler a sofie-sftp-server.

  • SOFiE DNF repozitář v souboru /etc/yum.repos.d/sofie.repo dostane řádek proxy=http://host:port.

Tímto postupem se nenastavuje globální proxy pro celý operační systém, nginx před aplikací ani aktualizační mechanismy antivirů či jiných externích komponent. Pokud je toto také potřeba, postupujte podle dokumentace či návodů jednotlivých výrobců (operačního systému, anti-virů, atd.).

Ruční nastavení

Příklady níže používají proxy proxy.example.local na portu 3128. Nahraďte je skutečným hostem a portem. Kvůli kompatibilitě se skriptem používejte pro host pouze písmena, čísla, tečku, pomlčku a podtržítko; port musí být v rozsahu 1 až 65535.

Následující kroky je třeba provádět jako root.

(volitelně) Zálohujte upravované soubory

cp -a /etc/yum.repos.d/sofie.repo /etc/yum.repos.d/sofie.repo.bak.$(date +%Y%m%d%H%M%S) if [ -f /etc/sofie/setenv.local.sh ]; then cp -a /etc/sofie/setenv.local.sh /etc/sofie/setenv.local.sh.bak.$(date +%Y%m%d%H%M%S) fi

Nastavte Java proxy

Do souboru /etc/sofie/setenv.local.sh vložte následující blok:

# BEGIN SOFIE MANAGED PROXY SOFIE_PROXY_JAVA_OPTS="-Dhttp.proxyHost=proxy.example.local -Dhttp.proxyPort=3128 -Dhttps.proxyHost=proxy.example.local -Dhttps.proxyPort=3128 -Dhttp.nonProxyHosts=localhost|127.0.0.1|::1" JAVA_OPTS="$JAVA_OPTS $SOFIE_PROXY_JAVA_OPTS" # END SOFIE MANAGED PROXY

Značky # BEGIN SOFIE MANAGED PROXY a # END SOFIE MANAGED PROXY ponechte přesně v tomto tvaru; podle nich může později skript sofie proxy nastavení nalézt a spravovat.

Hodnota http.nonProxyHosts zajišťuje, že lokální komunikace nepůjde přes proxy. Pokud ji ručně rozšíříte, počítejte s tím, že pozdější spuštění sofie proxy set ji nahradí výchozí hodnotou skriptu.

Nastavte proxy pro SOFiE DNF repozitář

Otevřete soubor /etc/yum.repos.d/sofie.repo a do sekce SOFiE repozitáře přidejte za řádek baseurl=... následující řádek. Pokud už v souboru řádek proxy=... existuje, nahraďte ho:

proxy=http://proxy.example.local:3128

Restartujte aplikaci

Java proxy se projeví až po restartu aplikačních služeb. Restart způsobí krátký výpadek aplikace.

sofie restart

(volitelně) Kontrola nastavení

Po ručním nastavení zkontrolujte obsah obou souborů. Například takto:

grep -A3 -B1 'SOFIE MANAGED PROXY' /etc/sofie/setenv.local.sh grep -E '^[[:space:]]*proxy[[:space:]]*=' /etc/yum.repos.d/sofie.repo

Dostupnost SOFiE repozitáře přes proxy lze ověřit například takto:

dnf --disablerepo='*' --enablerepo='sofie' makecache

Po upgradu na verzi (2.6+), která obsahuje příkaz sofie proxy, ověřte převzetí ruční konfigurace:

sofie proxy status

Pokud byl použit přesný blok výše a standardní řádek proxy=... v sofie.repo, skript zobrazí Java proxy i proxy pro DNF repozitář a následně ji umí spravovat příkazy sofie proxy set ... a sofie proxy unset.

Ruční odstranění

Pokud potřebujete konfiguraci odstranit ještě před přechodem na verzi se skriptem, odstraňte ručně úpravy provedené výše v části Ruční nastavení. Pokud byla provedena záloha souborů, lze ji využít a přepsat soubory zálohovanou verzí před úpravami. Nebo použijte následující příkazy, které úpravy vymažou a restartují služby:

sed -i '/^# BEGIN SOFIE MANAGED PROXY$/,/^# END SOFIE MANAGED PROXY$/d' /etc/sofie/setenv.local.sh sed -i -E '/^[[:space:]]*#?[[:space:]]*proxy[[:space:]]*=/d' /etc/yum.repos.d/sofie.repo sofie restart

Po upgradu na verzi se skriptem (2.6+) můžete použít:

sofie proxy unset sofie restart

Poznámky

  • DNF nastavení v tomto postupu platí jen pro SOFiE repozitář. Pokud má přes proxy chodit i aktualizace operačního systému z jiných repozitářů, nastavte je samostatně podle pravidel daného prostředí.

  • Java proxy se použije jen u klientů, kteří respektují standardní systémové properties Javy. Samotná přítomnost parametrů v JAVA_OPTS nezaručuje proxy pro každý externí nástroj spouštěný mimo JVM.

  • Nepřidávejte do hodnoty proxyHost schéma http://. Pro Java properties se používá jen host, zatímco v sofie.repo se zapisuje celé http://host:port.