<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa Patching - soban</title>
	<atom:link href="https://soban.pl/pl/category/patching-pl/feed/" rel="self" type="application/rss+xml" />
	<link>https://soban.pl/pl/category/patching-pl/</link>
	<description>IT, Linux, Servers, Security</description>
	<lastBuildDate>Fri, 23 Jan 2026 16:56:51 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Proxmox Automatyczne aktualizacje VM (qm + vzdump) z testami sieci i auto-przywracaniem</title>
		<link>https://soban.pl/pl/proxmox-vm-auto-upgrade-script-2/</link>
		
		<dc:creator><![CDATA[soban]]></dc:creator>
		<pubDate>Fri, 23 Jan 2026 16:02:07 +0000</pubDate>
				<category><![CDATA[Patching]]></category>
		<category><![CDATA[Proxmox]]></category>
		<guid isPermaLink="false">https://soban.pl/?p=683</guid>

					<description><![CDATA[<p>Proxmox: Automatyczne aktualizacje VM (qm + vzdump) z testami sieci i auto-przywracaniem W tym artykule opisuję prosty (ale bardzo skuteczny) skrypt automatyzujący aktualizacje maszyn wirtualnych na Proxmox VE. Skrypt potrafi: Skąd pobrać skrypt Skrypt możesz pobrać bezpośrednio z mojej strony: soban.pl/bash/upgrade_proxmox_qm.sh Wymagane katalogi Zanim uruchomisz automatyzację, utwórz dwa katalogi: jeden na skrypty i jeden na [&#8230;]</p>
<p>Artykuł <a href="https://soban.pl/pl/proxmox-vm-auto-upgrade-script-2/">Proxmox Automatyczne aktualizacje VM (qm + vzdump) z testami sieci i auto-przywracaniem</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" width="498" height="745" src="https://soban.pl/wp-content/uploads/2026/01/image-1.png" alt="" class="wp-image-681" style="width:452px;height:auto" srcset="https://soban.pl/wp-content/uploads/2026/01/image-1.png 498w, https://soban.pl/wp-content/uploads/2026/01/image-1-201x300.png 201w" sizes="(max-width: 498px) 100vw, 498px" /></figure>



<h2 class="wp-block-heading">Proxmox: Automatyczne aktualizacje VM (qm + vzdump) z testami sieci i auto-przywracaniem</h2>



<p>W tym artykule opisuję prosty (ale bardzo skuteczny) skrypt automatyzujący aktualizacje maszyn wirtualnych na Proxmox VE. Skrypt potrafi:</p>



<ul class="wp-block-list">
<li>utworzyć backup maszyny (opcjonalnie),</li>



<li>uruchomić VM, jeśli wcześniej była wyłączona,</li>



<li>zrobić pełny upgrade systemu przez apt i wykonać reboot,</li>



<li>zrobić testy sieciowe przed i po aktualizacji,</li>



<li>w razie problemów automatycznie przywrócić VM z backupu (opcjonalnie),</li>



<li>na końcu wyłączyć VM, jeśli wcześniej była wyłączona.</li>
</ul>



<h3 class="wp-block-heading">Skąd pobrać skrypt</h3>



<p>Skrypt możesz pobrać bezpośrednio z mojej strony:</p>



<p><strong>soban.pl/bash/upgrade_proxmox_qm.sh</strong></p>



<h3 class="wp-block-heading">Wymagane katalogi</h3>



<p>Zanim uruchomisz automatyzację, utwórz dwa katalogi: jeden na skrypty i jeden na logi:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">mkdir -p /root/automate_scripts /root/logs</pre></div>



<h3 class="wp-block-heading">Instalacja skryptu</h3>



<p>Pobierz skrypt do <code>/root/automate_scripts/</code> i nadaj mu prawa wykonywania:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">cd /root/automate_scripts
curl -fsSL -o upgrade_proxmox_qm.sh "https://soban.pl/bash/upgrade_proxmox_qm.sh"
chmod +x /root/automate_scripts/upgrade_proxmox_qm.sh</pre></div>



<h3 class="wp-block-heading">Jak to działa (w skrócie)</h3>



<ul class="wp-block-list">
<li>Najpierw wykonywany jest <strong>backup</strong> (vzdump snapshot + zstd) – jeśli backup jest włączony.</li>



<li>Jeśli VM była <strong>stopped</strong>, skrypt ją uruchamia i czeka <strong>WAIT_TIME</strong> sekund.</li>



<li>Następnie wykonywane są <strong>testy sieciowe PRZED aktualizacją</strong>:
		<ul>
			
			
			
			
		</ul>
	

















</li>



<li>Skrypt wykonuje apt update/upgrade/dist-upgrade/autoremove/clean i na końcu robi <strong>reboot</strong> VM.</li>



<li>Po reboocie czeka ponownie (<strong>WAIT_TIME</strong>) i uruchamia te same testy <strong>PO aktualizacji</strong>.</li>



<li>Jeśli testy nie przejdą i istnieje backup, skrypt wykonuje <strong>qmrestore</strong> automatycznie.</li>



<li>Na końcu (opcjonalnie) wyłącza VM, jeśli wcześniej była wyłączona.</li>
</ul>



<h3 class="wp-block-heading">Uruchomienie (manualnie)</h3>



<p>Skrypt przyjmuje dokładnie dwa argumenty:</p>



<ul class="wp-block-list">
<li><code>VMID</code> – ID maszyny wirtualnej na Proxmox</li>



<li><code>TIME_SEC</code> – czas oczekiwania po starcie/reboocie (w sekundach)</li>
</ul>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">/root/automate_scripts/upgrade_proxmox_qm.sh 901 500</pre></div>



<p><strong>Wskazówka:</strong> dobierz WAIT_TIME do realnego czasu bootowania VM oraz czasu trwania aktualizacji. Najczęściej sprawdza się <code>300</code> do <code>1000</code> sekund (zależnie od maszyny).</p>



<h3 class="wp-block-heading">Pełny skrypt (do wklejenia / podglądu)</h3>



<p>Poniżej wrzucam całość w jednym miejscu – dokładnie w takiej formie, w jakiej jest używana w tej automatyzacji:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">#!/bin/bash

WAIT_TIME=$2  # wait time for VM start/restart (in seconds)
DO_BACKUP="y" # 'y' - create backup, 'n' - skip backup
DO_UPDATE="y" # 'y' - run system update, 'n' - skip update

echo "---------------START---------------"
date
echo "-----------------------------------"

# Argument check
if [ "$#" -ne 2 ]; then
    echo "Usage: $0 &lt;VMID&gt; &lt;TIME_SEC&gt;"
    exit 1
fi

VMID="$1"
TARGET_HOSTNAME=$(/usr/sbin/qm list | grep -w "$VMID" | awk '{print $2}')
VM_STATUS=$(/usr/sbin/qm status "$VMID" | awk '{print $2}')
HOST_MACHINE=$(hostname)
WAS_STOPPED=0

if [ "$VM_STATUS" = "stopped" ]; then
    WAS_STOPPED=1
else
    WAS_STOPPED=0
fi

# Create backup if DO_BACKUP is set to 'y'
backup_result="Backup not attempted"
if [ "$DO_BACKUP" = "y" ]; then
    echo "Creating backup for VM $VMID..."
    BACKUP_OUTPUT=$(/usr/bin/vzdump "$VMID" --storage local --mode snapshot --compress zstd)
    BACKUP_FILE=$(echo "$BACKUP_OUTPUT" | grep -oP 'vzdump-qemu-[^\s]+' | tr -d "'")

    if [ -z "$BACKUP_FILE" ]; then
        echo "Backup failed: No backup file created."
        backup_result="Backup created: NOK"
        exit 1
    else
        echo "Backup created successfully: $BACKUP_FILE"
        backup_result="Backup created: OK"
    fi
else
    echo "Backup not attempted (backup is disabled)."
fi

# Start VM if it was originally stopped
if [ "$WAS_STOPPED" -eq 1 ]; then
    echo "Starting VM $VMID for update..."
    /usr/sbin/qm start "$VMID"
    echo "Waiting $WAIT_TIME seconds for VM to start..."
    sleep "$WAIT_TIME"
fi

# Test functions
perform_ping_test() {
    source="$1"
    target="$2"
    if ssh root@"$source" "ping -c 3 -W 2 $target" &gt;/dev/null 2&gt;&amp;1; then
        echo "Ping from $source to $target: OK"
        return 0
    else
        echo "Ping from $source to $target: NOK"
        return 1
    fi
}

test_curl() {
    source="$1"
    target="$2"
    if ssh root@"$source" "curl -s --head --connect-timeout 5 $target" &gt;/dev/null 2&gt;&amp;1; then
        echo "Curl from $source to $target: OK"
        return 0
    else
        echo "Curl from $source to $target: NOK"
        return 1
    fi
}

perform_local_ping_test() {
    source="$1"
    target="$2"
    if ping -c 3 -W 2 "$target" &gt;/dev/null 2&gt;&amp;1; then
        echo "Ping from $source to $target: OK"
        return 0
    else
        echo "Ping from $source to $target: NOK"
        return 1
    fi
}

DEFAULT_GW=$(/sbin/ip route | grep default | awk '{print $3}')

perform_tests() {
    status=0
    perform_local_ping_test "$HOST_MACHINE" "$TARGET_HOSTNAME" || status=1
    perform_ping_test "$TARGET_HOSTNAME" "8.8.8.8" || status=1
    perform_ping_test "$TARGET_HOSTNAME" "$DEFAULT_GW" || status=1
    test_curl "$TARGET_HOSTNAME" "http://google.com" || status=1
    return ${status:-0}
}

# General tests before update
echo "--- General tests BEFORE update ---"
if perform_tests; then
    echo "All network tests before update: OK"
    echo "$backup_result"

    if [ "$backup_result" == "Backup created: OK" ] || [ "$backup_result" == "Backup not attempted" ]; then
        echo "BEFORE status: OK"
    else
        echo "BEFORE status: NOK"
    fi
else
    echo "Some network tests before update: NOK"
    echo "$backup_result"
    echo "BEFORE status: NOK"
    [ "$WAS_STOPPED" -eq 1 ] &amp;&amp; /usr/sbin/qm shutdown "$VMID"
    exit 1
fi
echo "-----------------------------------"

# System update and reboot
update_result="Upgrade system: NOK"
if [ "$DO_UPDATE" = "y" ]; then
    echo "--- Updating VM $VMID ---"
    if ssh root@"$TARGET_HOSTNAME" "/usr/bin/apt update &amp;&amp; \
                          /usr/bin/apt upgrade -y &amp;&amp; \
                          /usr/bin/apt dist-upgrade -y &amp;&amp; \
                          /usr/bin/apt autoremove -y &amp;&amp; \
                          /usr/bin/apt autoclean &amp;&amp; \
                          /usr/bin/apt clean &amp;&amp; \
                          /usr/bin/apt --purge autoremove &amp;&amp; \
                          /sbin/reboot"; then
        echo "---END Updating VM $VMID ---"
        echo "Upgrade system: OK"
        update_result="Upgrade system: OK"
    else
        echo "Upgrade system: NOK"
        update_result="Upgrade system: NOK"
        [ "$WAS_STOPPED" -eq 1 ] &amp;&amp; /usr/sbin/qm shutdown "$VMID"
        echo "Update failed. Exiting."
        exit 1
    fi
fi

# Wait for VM reboot if update was performed
if [ "$DO_UPDATE" = "y" ]; then
    echo "Waiting $WAIT_TIME seconds for VM to reboot..."
    sleep "$WAIT_TIME"
fi

# Tests after reboot if update was performed
if [ "$DO_UPDATE" = "y" ]; then
    echo "--- Network tests AFTER update ---"
    if perform_tests; then
        echo "All network tests after update: OK"
        echo "$update_result"
        echo "AFTER status: OK"
    else
        echo "Some network tests after update: NOK"
        echo "$update_result"
        echo "Attempting to restore from backup..."

        if [ "$DO_BACKUP" = "y" ]; then
            /usr/sbin/qm stop "$VMID"
            /usr/sbin/qmrestore "/var/lib/vz/dump/$BACKUP_FILE" "$VMID" --force

            if [ "$WAS_STOPPED" -eq 1 ]; then
                /usr/sbin/qm shutdown "$VMID"
            fi

            echo "Restore attempt finished. Please check VM status."
            echo "AFTER status: NOK"
        else
            echo "No backup available for restoration. The VM might not function properly after failed update."
            echo "AFTER status: NOK"
        fi
    fi
    echo "-----------------------------------"
fi

# Shut down VM if it was originally stopped
if [ "$WAS_STOPPED" -eq 1 ]; then
    echo "Shutting down VM $VMID (originally stopped)."
    /usr/sbin/qm shutdown "$VMID"
fi

echo "---------------END---------------"
date
echo "-----------------------------------"</pre></div>



<h3 class="wp-block-heading">Cron (harmonogram tygodniowy + osobne logi per VM)</h3>



<p>Poniżej masz przykład crontaba, który uruchamia aktualizacje raz w tygodniu (inna VM każdego dnia roboczego) i zapisuje logi do osobnych plików w <code>/root/logs/</code>.</p>



<p>Edytuj crona roota:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">crontab -e</pre></div>



<p>Wklej reguły (komentarze są po angielsku):</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">15 0 * * 1 /root/automate_scripts/upgrade_proxmox_qm.sh 901 500 &gt; /root/logs/kali.log 2&gt;&amp;1                 # Monday: upgrade Kali Linux (VMID 901)
15 0 * * 2 /root/automate_scripts/upgrade_proxmox_qm.sh 903 500 &gt; /root/logs/proxmox-test-01.log 2&gt;&amp;1      # Tuesday: upgrade proxmox-test-01 (VMID 903)
15 0 * * 3 /root/automate_scripts/upgrade_proxmox_qm.sh 904 500 &gt; /root/logs/ubuntu-lte.log 2&gt;&amp;1           # Wednesday: upgrade ubuntu-lte (VMID 904)
15 0 * * 4 /root/automate_scripts/upgrade_proxmox_qm.sh 905 1000 &gt; /root/logs/backup-machine.log 2&gt;&amp;1      # Thursday: upgrade backup-machine (VMID 905)</pre></div>



<h3 class="wp-block-heading">Szybkie checklisty / troubleshooting</h3>



<ul class="wp-block-list">
<li>Upewnij się, że root z hosta Proxmox może łączyć się po SSH do VM po hostname (skrypt używa <code>ssh root@&lt;vm-hostname&gt;</code>).</li>



<li>Sprawdź czy DNS (albo <code>/etc/hosts</code>) poprawnie rozwiązuje hostname VM na hoście Proxmox.</li>



<li>Jeśli apt potrafi pytać o potwierdzenia, zadbaj o tryb non-interactive albo „trzymaj” pakiety, które robią problemy podczas upgrade.</li>
</ul>



<p>To wszystko. Umieść skrypt w /root/automate_scripts/, wyślij logi do /root/logs/, a cotygodniowa konserwacja maszyny wirtualnej stanie się praktycznie niezauważalna.</pre><p>Artykuł <a href="https://soban.pl/pl/proxmox-vm-auto-upgrade-script-2/">Proxmox Automatyczne aktualizacje VM (qm + vzdump) z testami sieci i auto-przywracaniem</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aktualizowanie Apache Cassandra z wersji 3.1.15 i nowszych do 4.1.x w systemie Ubuntu 20.04.5 LTS: kompleksowy przewodnik</title>
		<link>https://soban.pl/pl/aktualizowanie-apache-cassandra-z-wersji-3-1-15-i-nowszych-do-4-1-x-w-systemie-ubuntu-20-04-5-lts-kompleksowy-przewodnik/</link>
		
		<dc:creator><![CDATA[soban]]></dc:creator>
		<pubDate>Tue, 16 Apr 2024 11:32:32 +0000</pubDate>
				<category><![CDATA[Patching]]></category>
		<guid isPermaLink="false">https://soban.pl/?p=433</guid>

					<description><![CDATA[<p>Aktualizacja Apache Cassandra do nowszej wersji to znaczące zadanie, które administratorzy baz danych podejmują, aby ich systemy korzystały z nowych funkcji, ulepszonych środków bezpieczeństwa i poprawionej wydajności. Ten przewodnik dostarcza szczegółowych instrukcji dotyczących aktualizacji Apache Cassandra z wersji 3.1.15 i wyższych do najnowszej wersji 4.1.x, specjalnie na Ubuntu 20.04.5 LTS, ze szczególnym naciskiem na operacje [&#8230;]</p>
<p>Artykuł <a href="https://soban.pl/pl/aktualizowanie-apache-cassandra-z-wersji-3-1-15-i-nowszych-do-4-1-x-w-systemie-ubuntu-20-04-5-lts-kompleksowy-przewodnik/">Aktualizowanie Apache Cassandra z wersji 3.1.15 i nowszych do 4.1.x w systemie Ubuntu 20.04.5 LTS: kompleksowy przewodnik</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1024" src="https://soban.pl/wp-content/uploads/2024/03/image.png" alt="" class="wp-image-413" srcset="https://soban.pl/wp-content/uploads/2024/03/image.png 1024w, https://soban.pl/wp-content/uploads/2024/03/image-300x300.png 300w, https://soban.pl/wp-content/uploads/2024/03/image-150x150.png 150w, https://soban.pl/wp-content/uploads/2024/03/image-768x768.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Aktualizacja Apache Cassandra do nowszej wersji to znaczące zadanie, które administratorzy baz danych podejmują, aby ich systemy korzystały z nowych funkcji, ulepszonych środków bezpieczeństwa i poprawionej wydajności. Ten przewodnik dostarcza szczegółowych instrukcji dotyczących aktualizacji Apache Cassandra z wersji 3.1.15 i wyższych do najnowszej wersji 4.1.x, specjalnie na Ubuntu 20.04.5 LTS, ze szczególnym naciskiem na operacje czyszczenia przed aktualizacją, aby efektywnie zarządzać przestrzenią dyskową.</p>



<h3 class="wp-block-heading">Przygotowanie przed aktualizacją</h3>



<p><strong>Kopia zapasowa katalogu konfiguracyjnego:</strong></p>



<p>Przed rozpoczęciem aktualizacji kluczowe jest wykonanie kopii zapasowej katalogu konfiguracyjnego Cassandry. To zabezpieczenie umożliwia szybkie przywrócenie konfiguracji, jeśli podczas procesu aktualizacji pojawią się jakiekolwiek problemy. Wykorzystaj poniższe polecenie, aby stworzyć kopię zapasową, włączając do nazwy folderu bieżącą datę dla łatwej identyfikacji:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># cp -r /etc/cassandra/ /root/cassandra-conf-bkp-$(date +%Y%m%d)</pre></div>



<p><strong>Operacje czyszczenia przed aktualizacją</strong></p>



<p>Przygotowanie jest kluczem do płynnej aktualizacji. Zacznij od poleceń konserwacyjnych, aby zagwarantować integralność danych i zoptymalizować wykorzystanie przestrzeni, co jest szczególnie ważne dla systemów z ograniczoną przestrzenią dyskową.</p>



<p><strong>Oczyszczanie danych:</strong></p>



<p>Wykonaj <code>nodetool scrub</code>, aby oczyścić i zreorganizować dane na dysku. Biorąc pod uwagę, że ta operacja może być czasochłonna, zwłaszcza dla baz danych z dużą ilością danych lub ograniczoną przestrzenią dyskową, jest to kluczowy krok dla zdrowego procesu aktualizacji.</p>



<p><strong>Usuwanie snapshota:</strong></p>



<p>Aby dalej zarządzać przestrzenią dyskową, użyj <code>nodetool clearsnapshot</code> do usunięcia istniejących snapshota, zwalniając miejsce na proces aktualizacji. Aby usunąć wszystkie migawki na węźle, po prostu użyj tej metody, jeśli kończy Ci się miejsce:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># nodetool clearsnapshot --all</pre></div>



<p><strong>Czyszczenie danych:</strong></p>



<p>Wykonaj <code>nodetool cleanup</code>, aby usunąć zbędne dane. W scenariuszach, gdzie przestrzeń dyskowa jest na wagę złota, zaleca się wykonanie operacji oczyszczania bez tworzenia migawki, aby oszczędzić miejsce:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># nodetool scrub --no-snapshot</pre></div>



<h3 class="wp-block-heading">Opróżnianie i zatrzymywanie Cassandry</h3>



<p><strong>Opróżnienie węzła:</strong></p>



<p>Przed zatrzymaniem usługi Cassandra, upewnij się, że wszystkie dane w pamięci są zapisane na dysku za pomocą <code>nodetool drain</code>.</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># nodetool drain</pre></div>



<p><strong>Zatrzymaj usługę Cassandry:</strong></p>



<p>Zatrzymaj działające usługi Cassandry, aby bezpiecznie przystąpić do aktualizacji:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># systemctl stop cassandra.service</pre></div>



<h3 class="wp-block-heading">Aktualizacja Cassandry</h3>



<p><strong>Aktualizacja listy źródeł:</strong></p>



<p>Edytuj źródła repozytorium, aby wskazywały na nową wersję Cassandry, dostosowując plik <code>cassandra.sources.list</code>:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># echo "deb https://debian.cassandra.apache.org 41x main" &gt; /etc/apt/sources.list.d/cassandra.sources.list</pre></div>



<p><strong>Aktualizacja pakietów:</strong></p>



<p>Przy zaktualizowanych źródłach repozytorium, odśwież listę pakietów i zaktualizuj pakiety. Podczas wykonywania polecenia <code>apt upgrade</code>, możesz kontynuować naciskając Enter, ponieważ domyślna opcja to 'N&#8217; (Nie):</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># apt update &amp;&amp; apt upgrade</pre></div>



<p><strong>Modyfikacja konfiguracji:</strong></p>



<p>Dostosuj konfigurację Cassandry dla wersji 4.1.x, komentując lub usuwając przestarzałe opcje:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># for var in thrift_prepared_statements_cache_size_mb start_rpc rpc_port rpc_server_type thrift_framed_transport_size_in_mb request_scheduler; do sed -i "/$var:/s/^/#/" /etc/cassandra/cassandra.yaml; done</pre></div>



<p><strong>Aktualizacja biblioteki JAMM:</strong></p>



<p>Upewnij się, że biblioteka Java Agent Memory Manager (JAMM) jest zaktualizowana, aby poprawić wydajność:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># sed -i 's|jamm-0.3.0.jar|jamm-0.3.2.jar|g' /etc/cassandra/cassandra-env.sh</pre></div>



<p><strong>Zapasowa kopia i aktualizacja pliku opcji JVM:</strong></p>



<p>Jest dobrą praktyką tworzenie kopii zapasowych plików konfiguracyjnych przed dokonaniem zmian. Ten krok zmienia nazwę istniejącego pliku <code>jvm-server.options</code> na <code>jvm-server.options.orig</code> jako kopię zapasową. Następnie kopiuje plik <code>jvm.options</code> do <code>jvm-server.options</code>, stosując standardowe opcje JVM dla serwerów Cassandry.</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># cd /etc/cassandra/
# mv jvm-server.options jvm-server.options.orig &amp;&amp; cp -p jvm.options jvm-server.options</pre></div>



<h3 class="wp-block-heading">Optymalizacja i weryfikacja</h3>



<p><strong>Optymalizacja wykorzystania pamięci:</strong></p>



<p>Po aktualizacji warto ocenić i zoptymalizować wykorzystanie pamięci i przestrzeni wymiany, aby zapewnić efektywne działanie Cassandry:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># swapoff -a &amp;&amp; swapon -a</pre></div>



<p><strong>Uruchom ponownie usługę Cassandry:</strong></p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># systemctl start cassandra.service</pre></div>



<p><strong>Weryfikacja aktualizacji:</strong></p>



<p>Potwierdź sukces aktualizacji, sprawdzając topologię i stan klastra, upewniając się, że wszystkie węzły są funkcjonalne:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># nodetool describecluster
# nodetool status</pre></div>



<p>Przestrzegając tego szczegółowego przewodnika, administratorzy baz danych mogą skutecznie aktualizować Apache Cassandra do wersji 4.1.x, wykorzystując najnowsze postępy i optymalizacje, które platforma ma do zaoferowania, jednocześnie zapewniając integralność danych i wydajność systemu dzięki starannym przygotowaniom przed aktualizacją.</p>



<p><strong>Optymalizacja i weryfikacja</strong></p>



<p>Po pomyślnej aktualizacji Apache Cassandra do wersji 4.1.x i upewnieniu się, że klaster jest w pełni operacyjny, kluczowe jest przeprowadzenie konserwacji po aktualizacji, aby zoptymalizować wydajność i bezpieczeństwo systemu bazy danych. Ta sekcja przedstawia niezbędne kroki i rozważania, aby utrzymać zdrowe i efektywne środowisko Cassandry.<br><br><strong>Monitorowanie wydajności i dzienników</strong></p>



<p>Bezpośrednio po aktualizacji ściśle monitoruj wydajność systemu, w tym użycie procesora, pamięci i I/O dysków, aby zidentyfikować wszelkie nieoczekiwane zachowania lub wąskie gardła. Dodatkowo, przejrzyj dzienniki systemowe Cassandry pod kątem ostrzeżeń lub błędów, które mogą wskazywać na potencjalne problemy wymagające uwagi.</p>



<p><strong>Regulacja i optymalizacja</strong></p>



<p>Na podstawie wglądu w monitorowanie wydajności, możesz potrzebować dostosować ustawienia konfiguracyjne Cassandry dla optymalnej wydajności. Rozważ regulację parametrów związanych z opcjami JVM, kompaktacją i wydajnością odczytu/zapisu, mając na uwadze specyficzne obciążenie i wzorce danych Twojej aplikacji.</p>



<p><strong>Uruchom nodetool upgradesstables</strong></p>



<p>Aby upewnić się, że wszystkie SSTables są zaktualizowane do najnowszego formatu, wykonaj <code>nodetool upgradesstables</code> na każdym węźle w klastrze. Ta operacja przepisze SSTables, które nie są jeszcze w bieżącym formacie, co jest niezbędne do pełnego wykorzystania ulepszeń i funkcji w Cassandra 4.1.x (Sprawdź przestrzeń i w razie potrzeby usuń wszystkie migawki, jak pokazano powyżej.):</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># time nodetool upgradesstables</pre></div>



<p>Ten proces może być obciążający dla zasobów i powinien być zaplanowany poza godzinami szczytu, aby zminimalizować wpływ na ruch na żywo.</p>



<p><strong>Wdrożenie ulepszeń bezpieczeństwa</strong></p>



<p>Cassandra 4.1.x zawiera kilka ulepszeń bezpieczeństwa. Przejrzyj najnowsze funkcje bezpieczeństwa i najlepsze praktyki, takie jak włączenie szyfrowania klient-serwer, szyfrowanie węzeł-węzeł oraz zaawansowane mechanizmy uwierzytelniania, aby poprawić poziom bezpieczeństwa klastra Cassandry.</p>



<p><strong>Przegląd i aktualizacja strategii tworzenia kopii zapasowych</strong></p>



<p>Z nową wersją na miejscu, ponownie ocen swoje strategie tworzenia kopii zapasowych, aby upewnić się, że są nadal skuteczne i spełniają Twoje cele odzyskiwania. Zweryfikuj, czy Twoje procedury tworzenia kopii zapasowych i przywracania są zgodne z Cassandra 4.1.x oraz rozważ wykorzystanie nowych narzędzi lub funkcji, które mogły zostać wprowadzone w tej wersji dla bardziej efektywnego zarządzania danymi.</p>
<p>Artykuł <a href="https://soban.pl/pl/aktualizowanie-apache-cassandra-z-wersji-3-1-15-i-nowszych-do-4-1-x-w-systemie-ubuntu-20-04-5-lts-kompleksowy-przewodnik/">Aktualizowanie Apache Cassandra z wersji 3.1.15 i nowszych do 4.1.x w systemie Ubuntu 20.04.5 LTS: kompleksowy przewodnik</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Uproszczona instalacja Proxmox VE 8 na Debianie 12 Bookworm</title>
		<link>https://soban.pl/pl/uproszczona-instalacja-proxmox-ve-8-na-debianie-12-bookworm/</link>
		
		<dc:creator><![CDATA[soban]]></dc:creator>
		<pubDate>Thu, 22 Feb 2024 11:55:07 +0000</pubDate>
				<category><![CDATA[Patching]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://soban.pl/?p=403</guid>

					<description><![CDATA[<p>Proxmox VE to zaawansowana platforma do zarządzania serwerami open source, która integruje hypervisor KVM oraz kontenery LXC. Prezentujemy uproszczony proces instalacji Proxmox VE 8 na Debianie 12 Bookworm, oparty na oficjalnym przewodniku instalacji Proxmox VE &#8211; Proxmox VE Installation Guide. Wymagania wstępne: Skrypty instalacyjne Podzieliliśmy proces instalacji na dwa skrypty. Pierwszy skrypt przygotowuje system i [&#8230;]</p>
<p>Artykuł <a href="https://soban.pl/pl/uproszczona-instalacja-proxmox-ve-8-na-debianie-12-bookworm/">Uproszczona instalacja Proxmox VE 8 na Debianie 12 Bookworm</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>Proxmox VE</strong> to zaawansowana platforma do zarządzania serwerami open source, która integruje hypervisor KVM oraz kontenery LXC. Prezentujemy uproszczony proces instalacji Proxmox VE 8 na Debianie 12 Bookworm, oparty na oficjalnym przewodniku instalacji Proxmox VE &#8211; <a href="https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_12_Bookworm">Proxmox VE Installation Guide</a>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Wymagania wstępne:</h2>



<ul class="wp-block-list">
<li>Świeża instalacja <strong>Debiana 12 Bookworm</strong>.</li>



<li>Użytkownik z uprawnieniami sudo.</li>



<li>Dostęp do Internetu.</li>
</ul>



<h2 class="wp-block-heading">Skrypty instalacyjne</h2>



<p>Podzieliliśmy proces instalacji na dwa skrypty. Pierwszy skrypt przygotowuje system i instaluje jądro Proxmox VE. Drugi skrypt kontynuuje proces po restarcie systemu, instalując pozostałe pakiety Proxmox VE.</p>



<p>Pamiętaj, że wszystkie komendy należy wykonać z poziomu użytkownika root, więc:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># sudo su -</pre></div>



<h3 class="wp-block-heading">Pierwsza część: Przygotowanie systemu i instalacja jądra</h3>



<p>Rozpocznij od pobrania pierwszego skryptu, który przygotuje Twój system i zainstaluje jądro Proxmox VE:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># wget https://soban.pl/bash/install-proxmox-part1.sh
# chmod +x install-proxmox-part1.sh</pre></div>



<p>Uruchom skrypt następującym poleceniem:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># ./install-proxmox-part1.sh</pre></div>



<p>Oto zawartość skryptu:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">#!/bin/bash
# The script is an integral part of the article available at (part 1/2)
# https://soban.pl/simplified-proxmox-ve-8-installation-on-debian-12-bookworm/

# Introduction message
echo "Starting the setup for Proxmox VE installation on Debian Bookworm..."

# Display available network interfaces and their IP addresses
echo "Available network interfaces and IP addresses:"
ip -br -c a

# Retrieve the current hostname
CURRENT_HOSTNAME=$(hostname)

# Retrieve the current IP address
CURRENT_IP_ADDRESS=$(hostname -I | awk '{print $1}')

# Set up hostname
echo "Please enter the hostname for your Proxmox server (Press Enter to keep current: $CURRENT_HOSTNAME):"
read HOSTNAME
if [ -z "$HOSTNAME" ]; then
    HOSTNAME=$CURRENT_HOSTNAME
fi

# Set up IP address
echo "Based on the list above, please enter the IP address for your Proxmox server (Press Enter to keep current: $CURRENT_IP_ADDRESS):"
read IPADDRESS
if [ -z "$IPADDRESS" ]; then
    IPADDRESS=$CURRENT_IP_ADDRESS
fi

hostnamectl set-hostname "$HOSTNAME"

# Backup and configure /etc/hosts
cp /etc/hosts /etc/hosts.backup
cat &lt;&lt;EOF &gt; /etc/hosts
127.0.0.1       localhost
$IPADDRESS      $HOSTNAME

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
EOF

# Backup existing sources.list and prepare Proxmox VE repository
cp /etc/apt/sources.list /etc/apt/sources.list.backup
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" &gt; /etc/apt/sources.list.d/pve-install-repo.list

# Add the Proxmox VE repository key
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
echo "Verifying the GPG key..."
sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg | grep '7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87'
if [ $? -ne 0 ]; then
    echo "GPG key verification failed. Aborting."
    exit 1
fi

# Update and upgrade the system
apt update &amp;&amp; apt full-upgrade -y

# Install the Proxmox VE kernel
apt install proxmox-default-kernel -y

# Install Proxmox VE and other necessary packages
apt install proxmox-ve postfix open-iscsi chrony -y

echo "Kernel installation completed. The system will now reboot. After rebooting, continue with the second part of the script."
reboot</pre></div>



<p>Po uruchomieniu pierwszego skryptu system zostanie ponownie uruchomiony. Na tym etapie mogą pojawić się różne dialogi systemowe, które są częścią standardowych kroków konfiguracji pakietów. Dla tej uproszczonej instalacji można zaakceptować domyślne opcje, naciskając Enter.</p>



<h3 class="wp-block-heading">Zrzuty ekranu podczas instalacji</h3>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="221" src="https://soban.pl/wp-content/uploads/2024/02/grub-proxmox_installation-2-1024x221.png" alt="The selection of GRUB installation configuration." class="wp-image-374" srcset="https://soban.pl/wp-content/uploads/2024/02/grub-proxmox_installation-2-1024x221.png 1024w, https://soban.pl/wp-content/uploads/2024/02/grub-proxmox_installation-2-300x65.png 300w, https://soban.pl/wp-content/uploads/2024/02/grub-proxmox_installation-2-768x166.png 768w, https://soban.pl/wp-content/uploads/2024/02/grub-proxmox_installation-2.png 1353w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Konfiguracja <strong>GRUB</strong> – dostępna jest nowa wersja pliku konfiguracyjnego bootloadera GRUB. Zaleca się zachowanie aktualnie zainstalowanej wersji lokalnej, chyba że jesteś świadomy zmian. Tak jak w przypadku poprzednich dialogów, naciśnięcie Enter wybierze domyślną akcję.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="678" height="490" src="https://soban.pl/wp-content/uploads/2024/02/postfix-proxmox_installation.png" alt="The selection of postfix installation configuration." class="wp-image-357" srcset="https://soban.pl/wp-content/uploads/2024/02/postfix-proxmox_installation.png 678w, https://soban.pl/wp-content/uploads/2024/02/postfix-proxmox_installation-300x217.png 300w" sizes="auto, (max-width: 678px) 100vw, 678px" /></figure>



<p>Konfiguracja<strong> Postfix</strong> – ten dialog pojawia się podczas instalacji pakietu postfix, który jest agentem transportu poczty. Domyślna opcja „Internet Site” jest odpowiednia dla większości przypadków. Naciśnięcie Enter akceptuje tę konfigurację.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="344" src="https://soban.pl/wp-content/uploads/2024/02/system_FQND-proxmox_installation.png" alt="Setting the system mail name." class="wp-image-358" srcset="https://soban.pl/wp-content/uploads/2024/02/system_FQND-proxmox_installation.png 642w, https://soban.pl/wp-content/uploads/2024/02/system_FQND-proxmox_installation-300x161.png 300w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p><strong>System Mail Name</strong> &#8211; tutaj określasz FQDN (Fully Qualified Domain Name) dla poczty systemowej. Domyślna wartość jest zazwyczaj odpowiednia, chyba że masz określoną nazwę domeny dla swojego serwera. Ponownie, naciśnięcie Enter kontynuuje z domyślną konfiguracją.</p>



<p>Możliwe problemy napotkane pod koniec instalacji pierwszego skryptu, takie jak:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">Errors were encountered while processing:
 ifupdown2
 pve-manager
 proxmox-ve
E: Sub-process /usr/bin/dpkg returned an error code (1)</pre></div>



<p>Jednak druga część skryptu, wykonana po restarcie, rozwiązuje te problemy. Po pomyślnym restarcie maszyny zaloguj się do systemu i kontynuuj z drugim skryptem.</p>



<h3 class="wp-block-heading">Druga część: Zakończenie instalacji Proxmox VE</h3>



<p>Po restarcie systemu kontynuuj pobieranie drugiego skryptu:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># wget https://soban.pl/bash/install-proxmox-part2.sh
# chmod +x install-proxmox-part2.sh</pre></div>



<p>Wykonaj drugą część instalacji za pomocą polecenia:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># ./install-proxmox-part2.sh</pre></div>



<p>Oto zawartość drugiego skryptu:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">#!/bin/bash
# The script is an integral part of the article available at (part 2/2)
# https://soban.pl/simplified-proxmox-ve-8-installation-on-debian-12-bookworm/

# Introduction message
echo "Continuing Proxmox VE installation after reboot..."

# Install upgrade
apt upgrade -y

# Optional: Remove the Debian default kernel
apt remove linux-image-amd64 'linux-image-6.1*' -y
update-grub

# Optionally remove the os-prober package
apt remove os-prober -y

# Clean up installation repository entry
rm /etc/apt/sources.list.d/pve-install-repo.list

# Retrieve the server's IP address for the Proxmox web interface link
IP_ADDRESS=$(hostname -I | awk '{print $1}')
echo "Proxmox VE installation completed."
echo "You can now connect to the Proxmox VE web interface using:"
echo "https://$IP_ADDRESS:8006"
echo "Please log in using the 'root' username and your root password."</pre></div>



<p>Po zakończeniu działania drugiego skryptu, uzyskasz dostęp do interfejsu webowego Proxmox VE za pomocą adresu URL wyświetlonego na końcu skryptu. Zaloguj się używając nazwy użytkownika ‘root’ oraz swojego hasła root.</p>



<p>Podczas ładowania strony, możesz napotkać błąd zaufania certyfikatu – jest to normalne na tym etapie i bezpiecznie możesz zaakceptować, że jest to niebezpieczne i kontynuować dostęp do strony zarządzania Proxmox. Jeśli nie znasz hasła root, możesz je zresetować, wykonując ‘<code><strong>passwd</strong></code>‘ jako root. Powodzenia!</p>
<p>Artykuł <a href="https://soban.pl/pl/uproszczona-instalacja-proxmox-ve-8-na-debianie-12-bookworm/">Uproszczona instalacja Proxmox VE 8 na Debianie 12 Bookworm</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
