Новости:

SMF - Just Installed!

Главное меню

Последние сообщения

#31
Web servers / Настройка отказоустойчивого кл...
Последний ответ от George - Май 13, 2026, 08:17
данной инструкции рассматривается создание отказоустойчивого хранилища для директории /var/www с защитой от ситуации Split-Brain.
Наша архитектура (3 ноды):
Node 1 (Web1): 10.10.1.42 — Хранение реальных данных
Node 2 (Web2): 10.10.1.41 — Хранение реальных данных
Node 3 (ISPConfig): 10.10.1.43 — Arbiter (хранит только метаданные для кворума, диск может быть маленьким: 5–10 ГБ).
ШАГ 1. Подготовка LVM на нодахВыполняется на всех нодах, где выделен отдельный диск (например, /dev/sdb).
1.1. Создаем Physical Volume (PV):
Код: bash
pvcreate /dev/sdb
1.2. Создаем Volume Group (VG):
Код: bash
vgcreate vg_gluster /dev/sdb
1.3. Создаем Logical Volume (LV) на всю доступную емкость:
Код: bash
lvcreate -l 100%FREE -n lv_gluster vg_gluster
ШАГ 2. Форматирование и монтированиеВыполняется на всех нодах. GlusterFS рекомендует использовать файловую систему XFS.
2.1. Форматируем созданный том:
Код: bash
mkfs.xfs /dev/vg_gluster/lv_gluster
2.2. Создаем точку монтирования:
Код: bash
mkdir -p /data/gluster
2.3. Добавляем запись в /etc/fstab для автозапуска при загрузке (одной командой):
Код: bash
echo "/dev/vg_gluster/lv_gluster /data/gluster xfs defaults,noatime 0 0" | sudo tee -a /etc/fstab
2.4. Монтируем диск:
Код: bash
systemctl daemon-reload
mount -a
Проверяем
Код: bash
lsblk
ШАГ 3. Создание кирпича (Brick) — Важный нюанс!Выполняется на всех нодах.
ВНИМАНИЕ: Никогда не делайте корневую папку монтирования (/data/gluster) самим бриком. Запишите данные строго в подпапку.
3.1. Создаем подпапку под кирпич:
Код: bash
mkdir -p /data/gluster/brick1
3.2. Выставляем корректные права:
Код: bash
chown -R root:root /data/gluster
chmod -R 755 /data/gluster
ШАГ 4. Установка GlusterFSВыполняется на всех трех нодах.
Код: bash
apt update && apt install -y glusterfs-server
systemctl enable --now glusterd
ШАГ 5. Объединение нод в доверенный пул (Cluster)Выполняется строго только на первой ноде (10.10.1.42).
5.1. Добавляем вторую и третью ноды в кластер:
Код: bash
gluster peer probe 10.10.1.41
gluster peer probe 10.10.1.43
5.2. Проверяем статус подключения (статус должен быть Peer in Cluster (Connected)):
Код: bash
gluster peer status

ШАГ 6. Создание тома с типом ArbiterВыполняется на первой ноде (10.10.1.42).
ПРАВИЛО ОЧЕРЕДНОСТИ:

В схеме replica 3 arbiter 1 арбитром автоматически становится ПОСЛЕДНИЙ указанный в команде brick. Проверьте правильность IP-адресов перед запуском!
6.1. Создаем том webdata:
Код: bash
gluster volume create webdata replica 3 arbiter 1 10.10.1.42:/data/gluster/brick1 10.10.1.41:/data/gluster/brick1 10.10.1.43:/data/gluster/brick1 force
6.2. Обязательно проверяем, что третья нода определилась именно как арбитр:
Код: bash
gluster volume info
В выводе вы должны увидеть отметку: Brick3: 10.10.1.43:/data/gluster/brick1 (arbiter)
6.3. Запускаем созданный том:
Код: bash
gluster volume start webdata
6.4. Проверяем рабочий статус тома:
Код: bash
gluster volume status

ШАГ 7. Монтирование тома на Web-ноды
Выполняется только на Web-нодах (10.10.1.42 и 10.10.1.41). На ISPConfig (ноде-арбитре) монтировать не нужно.
7.1. Создаем целевую директорию для сайтов:
Код: bash
mkdir -p /var/www
7.2. Монтируем сетевую файловую систему GlusterFS:
Код: bash
mount -t glusterfs 10.10.1.42:/webdata /var/www
7.3. Прописываем автоматическое монтирование после старта сети в /etc/fstab:
Код: bash
echo "10.10.1.42:/webdata /var/www glusterfs defaults,_netdev,backupvolfile-server=10.10.1.41:10.10.1.43 0 0" | sudo tee -a /etc/fstab

ШАГ 8. Тюнинг производительности для Web-окруженияВыполняется на первой ноде для оптимизации работы с мелкими файлами скриптов.
Код: bash
gluster volume set webdata performance.cache-size 256MB
gluster volume set webdata performance.write-behind on
gluster volume set webdata network.ping-timeout 5

ШАГ 9. Проверка репликации (Тест)На Node 1 создаем тестовый файл:
Код: bash
echo "GlusterFS Cluster Works" > /var/www/test.txt
На Node 2 проверяем его наличие и содержимое:
Код: bash
cat /var/www/test.txt
Если текст отобразился — ваш отказоустойчивый кластер настроен правильно!

🛠 Возможные проблемы и их решениеОшибка:
Код: bash
Host 10.10.1.41 is not in 'Peer in Cluster' state
Причина:
Вы пытаетесь создать Volume до того, как ноды успешно установили связь друг с другом.
Решение: См. ШАГ 5.
Проверьте вывод
Код: bash
gluster peer status
.
Если соединение отсутствует, убедитесь, что порты GlusterFS (24007, 49152 и далее) не заблокированы брандмауэром (ufw/iptables).
Ошибка:
Перепутали порядок нод при создании Volume (арбитром стала не та нода).
Решение: Пересоздайте том заново, выполнив команды:
Код: bash
gluster volume stop webdatagluster volume delete webdata
После чего повторите ШАГ 6 с правильным порядком IP-адресов.
#32
Отличный выбор. GlusterFS — это «золотой стандарт» для небольших кластеров Docker Swarm. Она превращает локальные папки на двух разных VPS в единое зеркалируемое пространство. Если одна нода умрет, файлы останутся доступны на другой.Шаг 1: Установка GlusterFS на ОБЕ ноды Выполни эти команды и на Node 1, и на Node 2:
Код: bash
sudo apt update
Код: bash
sudo apt install -y glusterfs-server
Код: bash
sudo systemctl enable --now glusterd
Используйте код с осторожностью.Шаг 2: Объединение серверов в пулВыполни эту команду только на Node 1 (укажи IP второй ноды):
Код: bash
sudo gluster peer probe 10.10.1.47
Используйте код с осторожностью.Проверь статус:
Код: bash
sudo gluster peer status
.
Ты должен увидеть Peer: 10.10.1.47 (Connected).
Шаг 3: Создание тома (Volume) для данныхНам нужно создать общую папку. Сначала создай «кирпичи» (папки для хранения) на обеих нодах:
Код: bash
sudo mkdir -p /gluster/data
Используйте код с осторожностью.Теперь только на Node 1 создай реплицируемый том:
Код: bash
sudo gluster volume create docker-data replica 2 10.10.1.46:/gluster/data 10.10.1.47:/gluster/data force
Код: bash
sudo gluster volume start docker-data
Здесь replica 2 означает, что каждый файл будет храниться на двух серверах одновременно.Шаг 4: Монтирование общей папкиТеперь нужно подключить этот виртуальный диск в систему. Сделай это на обеих нодах:
Код: bash
sudo mkdir -p /mnt/gluster-storage
# Добавим в автозагрузку, чтобы монтировалось само
Код: bash
echo "localhost:/docker-data /mnt/gluster-storage glusterfs defaults,_netdev 0 0" | sudo tee -a /etc/fstab
Код: bash
sudo systemctl daemon-reload
Код: bash
sudo mount -a
#33
ШАГ 1 — установка Docker

Вот тут аккуратно, копируй как есть:
Код: bash
sudo apt install -y ca-certificates curl gnupg
Код: bash
sudo install -m 0755 -d /etc/apt/keyrings
Код: bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Код: bash
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Код: bash
sudo apt update
Код: bash
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
✅ Проверка Docker
Код: bash
sudo docker run hello-world

👉 если видишь "Hello from Docker!" — всё ок

#34
Добрый день. Вытащим из pfx сертификат с ключем и сделаем fullchain

1. Ключ
Код: bash
openssl pkcs12 -in cert.pfx -nocerts -nodes -out private.key

2. Сертификат
Код: bash
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.pem

3. Цепочка
Код: bash
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out ca-chain.pem

4. Соберем fullchain
Код: bash
cat cert.pem ca-chain.pem > fullchain.pem
#35
Для переноса 6 ТБ данных, которые активно меняются, лучше всего использовать двухэтапный подход. rsync сам по себе не умеет «мониторить» файлы в реальном времени как сервис, но он идеально подходит для синхронизации изменений.
Вот пошаговая стратегия:
1. Этап «Прогрев» (Первичная копия)
Сначала запустите основной процесс копирования. На 6 ТБ уйдет много времени, и это нормально. Используйте этот набор флагов:
bash

Код: bash
rsync -avzP --human-readable /откуда/ /куда/



    -a — архивный режим (сохраняет права, владельцев, даты).
    -v — подробный вывод.
    -z — сжатие (полезно, если копируете по сети).
    -P — показывает прогресс и позволяет докачивать файл при обрыве.

2. Этап «Догонка» (Повторные запуски)
Когда первая копия снимется, данные на источнике уже изменятся. Запустите rsync еще раз. Он сравнит файлы и докопирует только то, что изменилось.
Чтобы автоматизировать это, добавьте флаг --delete, если нужно удалять на приемнике то, что удалили на источнике:
bash

Код: bash
rsync -avz --delete /откуда/ /куда/


3. Как сделать работу «постоянной»?
Вариант А: Простой цикл (Bash-скрипт)
Если вам нужно, чтобы процесс шел непрерывно один за другим:
bash

Код: bash
while true; do
  rsync -avz --delete /откуда/ /куда/
  sleep 60  # пауза 1 минута между проверками
done

Запустите это внутри screen или tmux, чтобы процесс не прервался при закрытии терминала.
Вариант Б: Lsyncd (Профессиональный метод)
Если изменений очень много и вы хотите, чтобы rsync срабатывал мгновенно, как только файл изменился, используйте утилиту lsyncd.

    Она следит за файловой системой через inotify.
    Как только пользователь сохраняет файл, lsyncd тут же отправляет его через rsync.
    Минус: При 6 ТБ данных может потребоваться увеличить лимиты inotify в системе.

Вариант В: Финальная синхронизация
Когда придет время окончательно переключить пользователей на новый сервер:

    Отключите пользователей от старого сервера (Read-only).
    Запустите rsync в последний раз.
    Проверьте объемы и количество файлов.

Важные советы для 6 ТБ:

    Сжатие (-z): Если копируете внутри одной локальной сети 1Гбит+, флаг -z может только замедлить процесс, так как процессор будет тратить время на упаковку. Попробуйте без него.
    Проверка контрольных сумм (-c): Не используйте его на таких объемах без крайней нужды. rsync по умолчанию сравнивает размер и дату изменения — это очень быстро. Проверка по хэшам (checksum) заставит систему перечитывать все 6 ТБ при каждом запуске.

Вы копируете данные внутри одного сервера на другой диск или по сети на другую машину?

Если внутри сервера с диска на диск.

Раз раз вы копируете внутри сервера с диска на диск, то флаг -z (сжатие) вам точно не нужен. Он только нагрузит процессор и замедлит копирование, так как диски работают быстрее, чем процессор успевает упаковывать и распаковывать данные.
Про флаг --human-readable (или -h)
Этот флаг делает вывод цифр понятным для человека.

    Без него: rsync будет показывать размер в байтах (например, 125829120 bytes). Вам придется в уме делить на 1024, чтобы понять, сколько это.
    С ним: rsync напишет 120M или 1.2G.

В сочетании с флагом -P (прогресс) это позволит вам видеть в реальном времени:

    Скорость копирования (например, 150 MB/s).
    Оставшееся время до конца текущего файла.
    Процент выполнения.


Так как это локальное копирование 6 ТБ, используйте:
bash

Код: bash
rsync -aPh /source/path/ /destination/path/


Почему именно так:

    -a (archive): сохранит все права доступа, даты и вложенные папки.
    -P: позволит продолжить с того же места, если процесс прервется (например, выключится свет или вы случайно нажмете Ctrl+C).
    -h: для удобного отображения Гб/Мб.

Нюанс с завершающим слешем /:
Это очень важно в rsync:

    Если вы укажете /source/ (со слешем в конце) — скопируется содержимое папки внутрь папки назначения.
    Если укажете /source (без слеша) — в папке назначения создастся папка source.

Как думаете, дисковая подсистема справится с нагрузкой? При копировании 6 ТБ диск, с которого читаете, и диск, на который пишете, будут сильно заняты, что может замедлить работу пользователей в 1С. Можно ограничить скорость через --bwlimit=KBPS, если сервер начнет «тормозить».
это не 1с, а битрикс24. Но, поскольку это виртуальная машина, сам портал и бд лежит на других дисках, которые не будут затронуты копированием. это перемещение папки /uploads/ с пользовательскими файлами на другой физический диск. Сам диск vm не переместился vmotion, т.к. ему плохо, у него latency подсткакивает перидоически до 150мс (диск ssd)
Понял ситуацию. Перенос /uploads/ в Битрикс24 — это как раз тот случай, когда файлов очень много (сотни тысяч или миллионы мелких картинок и документов), и именно на таких задачах rsync может «задумываться» при каждом запуске.
Раз у исходного диска проблемы с latency (150мс), вот несколько советов, как не «добить» его окончательно во время копирования:
1. Ограничение нагрузки на диск
Чтобы Битрикс не начал тормозить еще сильнее из-за очереди чтения (I/O Wait), можно ограничить скорость копирования. Например, до 50 МБ/с (параметр в КБ/с):
bash

Код: bash
rsync -aPh --bwlimit=50000 /var/www/html/upload/ /mnt/new_disk/upload/

Используйте код с осторожностью.
Это позволит диску «дышать» и обрабатывать запросы пользователей портала между тактами чтения rsync.
2. Маленькая хитрость: --size-only
Когда файлов миллионы, rsync тратит очень много времени на сравнение даты изменения каждого файла. Если вы знаете, что файлы в /upload/ после загрузки обычно не редактируются, а только добавляются новые, используйте флаг --size-only.

    rsync будет сравнивать только размер. Это на порядки ускорит процесс «догонки» (повторных запусков), когда большая часть данных уже скопирована.

3. Финальный перенос (Switchover)
Когда разница между дисками станет минимальной, нужно будет сделать «переключение»:

    Выключите Apache/Nginx (чтобы пользователи перестали писать в папку).
    Запустите rsync в последний раз с флагом --delete, чтобы удалить из копии то, что пользователи успели удалить на оригинале:
    bash

   
Код: bash
rsync -aPh --delete /var/www/html/upload/ /mnt/new_disk/upload/

    Используйте код с осторожностью.
    Размонтируйте старый диск и примонтируйте новый в ту же точку /upload/, либо поправьте fstab и пути.
    Включите веб-сервер.

4. Почему SSD дает 150мс?
Если это виртуализация (VMware/Proxmox), проверьте:

    Не перегревается ли контроллер.
    Нет ли «соседей» по хранилищу, которые забивают канал (I/O noisy neighbors).
    Важно: Если диск начал сыпаться (bad blocks), rsync может зависнуть на чтении конкретного файла. Если заметите, что процесс «встал», посмотрите dmesg | tail на предмет ошибок ввода-вывода.

Сколько примерно файлов (в штуках) в папке upload? Если их больше миллиона, стандартный запуск rsync может занимать 10-20 минут только на составление списка файлов перед началом копирования.
спросил коллегу, запускаю так rsync -aPh --bwlimit=50000 /var/www/html/upload/ /mnt/new_disk/upload/
ответ: запускайте, но лучше в screen если не через демона - что это значит
Ваш коллега дал очень дельный совет. Если кратко: он переживает, что если у вас разорвется интернет-соединение или вы просто закроете окно терминала, процесс копирования тут же прервется.
Для 6 ТБ данных, которые будут копироваться долго, это критично. Вот расшифровка его слов:
1. Что такое screen?
Это «виртуальный терминал». Он позволяет запустить процесс так, чтобы он жил внутри сервера, а не внутри вашего текущего подключения.

    Как это работает: Вы создаете сессию, запускаете там rsync и можете спокойно выключать свой компьютер. Процесс на сервере не остановится.
    Как пользоваться:
        Установите (если нет): sudo apt install screen (или yum install screen).
        Запустите сессию: screen -S copy_upload (вы сразу окажетесь в обычном терминале, но это уже «внутри» сессии).
        Вставьте свою команду: rsync -aPh --bwlimit=50000 /var/www/html/upload/ /mnt/new_disk/upload/ и нажмите Enter.
        Отключитесь (Detach): Нажмите комбинацию клавиш Ctrl + A, а затем сразу клавишу D. Терминал напишет [detached]. Теперь можно закрывать окно.
        Как вернуться: Когда захотите проверить прогресс, введите screen -r copy_upload.

2. Что значит «не через демона»?
«Демон» (daemon) в данном контексте — это запуск rsync как системной фоновой службы, которая работает сама по себе без участия пользователя. Ваш коллега имеет в виду, что раз вы запускаете команду вручную (интерактивно), то её нужно «спрятать» в screen, чтобы она не зависела от вашего сеанса связи.
Почему это важно для вашего случая:
6 ТБ со скоростью 50 МБ/с будут копироваться около 33-35 часов. Вероятность того, что за это время у вас моргнет интернет или компьютер уйдет в спящий режим, почти 100%. Без screen вам придется начинать или перезапускать процесс вручную каждый раз.
Резюме:
Заходите на сервер, пишите screen -S rsync_task, запускайте свою команду и «детачтесь» (Ctrl+A, D).
Вы уже проверили, сколько места занято на новом диске? (команда df -h поможет убедиться, что 6 ТБ точно влезут).
«Демон» (daemon) в данном контексте — это запуск rsync как системной фоновой службы - как это сделать?
Запуск rsync как системной службы (через systemd) — это самый надежный способ для долгого копирования. Если сервер перезагрузится, служба сама продолжит работу с того же места.
Вот пошаговая инструкция, как это настроить:
1. Создайте файл службы
Создайте файл конфигурации для вашей задачи:
bash

sudo nano /etc/systemd/system/rsync-upload.service

Используйте код с осторожностью.
2. Вставьте туда следующий текст:
(Замените пути на ваши реальные)
ini

[Unit]
Description=Rsync 6TB Upload Data
After=network.target

[Service]
Type=simple
# Если процесс прервется, система подождет 30 секунд и запустит его снова
Restart=always
RestartSec=30
# Сама команда копирования
ExecStart=/usr/bin/rsync -aPh --bwlimit=50000 /var/www/html/upload/ /mnt/new_disk/upload/

[Install]
WantedBy=multi-user.target

Используйте код с осторожностью.
3. Запустите службу
После сохранения файла (Ctrl+O, Enter, Ctrl+X) выполните команды:

    Перезагрузите конфигурацию, чтобы система увидела новый файл:
    bash

    sudo systemctl daemon-reload

    Используйте код с осторожностью.
    Запустите процесс:
    bash

    sudo systemctl start rsync-upload

    Используйте код с осторожностью.
    Добавьте в автозагрузку (на случай перезагрузки сервера):
    bash

    sudo systemctl enable rsync-upload

    Используйте код с осторожностью.

4. Как следить за процессом?
Поскольку это фоновая служба, она не выводит данные в консоль. Чтобы увидеть прогресс (те самые логи, которые вы видели бы в screen), используйте команду:
bash

journalctl -u rsync-upload -f

Используйте код с осторожностью.
Флаг -f (follow) заставляет команду показывать новые строки в реальном времени.
Плюсы этого метода перед screen:

    Автономность: Если сервер случайно перезагрузится (например, из-за latency диска или по питанию), rsync запустится сам сразу после старта системы.
    Логирование: Все отчеты о скопированных файлах сохраняются в системном журнале.
    Управление: Вы можете в любой момент остановить копирование (systemctl stop rsync-upload) или проверить, работает ли оно (systemctl status rsync-upload).

Кстати, когда 6 ТБ скопируются, служба закончит работу и перейдет в статус "Inactive". После этого вам останется только сделать финальную «догонку» перед переключением.
В
#36
Отключить и удалить swap

    Просмотрите список всех существующих swap.

   
Код: bash
swapon --show

    Swap может быть как в виде отдельного раздела, так и в виде файла. В нашем случае это partition — раздел.
    Выключите swap.

   
Код: bash
swapoff -v /dev/sda3

    Swap отключен, но он остался в таблице разделов /etc/fstab. Это можно проверить командой.

   
Код: bash
cat /etc/fstab

    Откройте таблицу /etc/fstab в редакторе, например в vi.

   
Код: bash
vi/etc/fstab

    Закомментируйте строку swap символом #. Должно получиться так: # UUID=8f45c1b1-8950-4029-bf7b-96d1d89d8f53 none swap defaults 0 0.

    Закройте редактор с сохранением изменений.
    Просмотрите список дисков.

   
Код: bash
fdisk -c -u -l

    Здесь sda — название диска, sda1 и sda2 — первые два раздела, sda3 — третий раздел swap. Перейдите в утилиту для управления разделами жесткого диска fdisk и откройте /dev/sda.

   
Код: bash
fdisk -c -u /dev/sda
    Поочередно введите команды:
       
d — удалить
       
3 — раздел 3
       
w — записать изменения

    Откройте файл /etc/defualt/grub в редакторе mcedit.

   
Код: bash
vi /etc/default/grub

    В строке GRUB_CMDLINE_LUNUX удалите resume=UUID=8f45c1b1-8950-4029-bf7b-96d1d89d8f53.

    Закройте редактор сохранив изменения.
    Обновите конфигурацию.

   
Код: bash
grub2-mkconfig -o /etc/grub2.cfg

    Сгенерирован новый операционный файл.
    Запустите регенерацию файлов.

   
Код: bash
dracut --regenerate-all --force

    Дождитесь завершения процесса регенерации. Когда он закончится, снова появится строка ввода команд.
    Внимание! Если не выполнить следующий шаг, то виртуальная машина после перезагрузки не восстановится.

    Просмотрите информацию обо всех имеющихся версиях ядра.

   
Код: bash
grubby --info=ALL

    Удалите идентификатор swap.

   
Код: bash
grubby --update-kernel=ALL --remove-args='resume=UUID=8f45c1b1-8950-4029-bf7b-96d1d89d8f53'

    Проверьте, что идентификаторы swap удалены.

   
Код: bash
grubby --info=ALL

    Перезагрузите виртуальную машину.

   
Код: bash
reboot

Увеличить размер основного раздела

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

    Удалите раздел sda2. Для этого перейдите в утилиту для управления разделами жесткого диска fdisk и откройте /dev/sda.

   
Код: bash
fdisk -c -u /dev/sda

    Поочередно введите команды:
       
d — удалить
       
2 — раздел 2
       
w — записать изменения
   
Создайте новый раздел sda2. Для этого снова перейдите в fdisk и откройте /dev/sda.

 
Код: bash
 fdisk -c -u /dev/sda

    Поочередно введите команды:
       
n — создать
       
2 — раздел 2
        First sector не заполняйте
        в Last sector укажите +148G — размер нового диска
       
Y — удалить сигнатуру
       
w — записать изменения
    Чтобы новая конфигурация применилась, перезагрузите виртуальную машину.

   
Код: bash
reboot

    Вернитесь в консоль и увеличьте место для раздела sda2.

   
Код: bash
xfs_growfs /dev/sda2

    Проверьте, что место на диске увеличилось.

   
Код: bash
df -Th

Создать и подключить swap

    Перейдите в утилиту для управления разделами жесткого диска fdisk и откройте /dev/sda.

   
Код: bash
fdisk -c -u /dev/sda

    Создайте новый раздел. Поочередно введите команды:
       
n — создать
       
3 — раздел 3
        First sector не заполняйте
        Last sector не заполняйте
       
t — изменить тип раздела
       
3 — раздел с номером 3
       
19 — присвоить hex-код 19, который соответствует swap
       
w
— записать изменения
    Создайте swap для созданного раздела.

   
Код: bash
mkswap /dev/sda3

    Включите swap.

   
Код: bash
swapon -v /dev/sda3

    Осталось сделать так, чтобы при перезагрузке система не теряла созданный swap.
    Просмотрите идентификатор созданного swap.

   
Код: bash
blkid

    В нашем случае у нового swap идентификатор UUID=663f201f-c5aa-41f1-a07f-c17dbfa887bf. Этот идентификатор нужно разместить там, где ранее удалили старый идентификатор.
    Добавьте идентификатор swap в таблицу fstab.

   
Код: bash
vi /etc/fstab

    Должно получиться так: UUID=663f201f-c5aa-41f1-a07f-c17dbfa887bf none swap defaults  0 0.
    Также добавьте идентификатор swap в файл /etc/defualt/grub.

   
Код: bash
vi /etc/default/grub

    В строке GRUB_CMDLINE_LUNUX перед selinux=0 добавьте resume=UUID=663f201f-c5aa-41f1-a07f-c17dbfa887bf.
    Снова обновите конфигурацию.

 
Код: bash
 grub2-mkconfig -o /etc/grub2.cfg

   
Код: bash
dracut --regenerate-all --force

    Добавьте идентификатор swap в grubby.

   
Код: bash
grubby --update-kernel=ALL --args='resume=UUID=663f201f-c5aa-41f1-a07f-c17dbfa887bf'

    Проверьте, что идентификаторы успешно добавлены.

   
Код: bash
grubby --info=ALL

    Перезапустите виртуальную машину.

   
Код: bash
reboot

#37
Step 1: Edit the Kernel Parameters
First, reboot the system. On the first entry of the grub menu, press 'e' on the keyboard to access the GRUB editor.


Once you have accessed the shell of the grub editor, scroll down until you get to the line that begins with 'linux'. Using your arrow forward key, navigate to the end of the line and add the following line to the directive.

Код: bash
rd.break enforcing=0 

To gain access to emergency mode, press Ctrl + x.

Step 2: Reset the Root Password
To reset the root password, we need access to the /sysroot directory with read and write permissions. To do so, mount the /sysroot directory with read and write permissions.

#
Код: bash
mount -o rw,remount /sysroot
Take note of the space between the mount and -o, and between remount and /.

Next, change the directory environment to /sysroot.

#
Код: bash
chroot /sysroot

To reset the root password, simply type the following command. You will be required to provide a new password and later on, reset it.

#
Код: bash
passwd root
Reset Root Password in Rocky Linux
Reset Root Password in Rocky Linux
Step 3: Set the SElinux Context
Next, set the appropriate SELinux context as indicated.

#
Код: bash
touch  /.autorelabel
The command creates a hidden file called .autorelabel in the root directory. During the reboot, SELinux detects this file and relabels all the files on the system with appropriate SELinux contexts. This process takes quite some time in systems with huge disk space.


Once you are done, exit the /sysroot environment.

$
Код: bash
exit
Then run the exit command to leave the switch root session and reboot the system.

Код: bash
exit
Once the system has rebooted, you can log in and seamlessly switch to the root user.
#38
Настройки *nix (почта, web, система etc) / guacamole установка
Последний ответ от George - Нояб. 13, 2025, 12:03
1. Install Requirements for Guacamole on Ubuntu 24.04

First, run the system update with the command below:

Код: bash
sudo apt update

Then, you must install the following packages and dependencies for installing Apache Guacamole on Ubuntu 24.04:

Код: bash
sudo apt install build-essential libcairo2-dev libjpeg-turbo8-dev \
    libpng-dev libtool-bin libossp-uuid-dev libvncserver-dev \
    freerdp2-dev libssh2-1-dev libtelnet-dev libwebsockets-dev \
    libpulse-dev libvorbis-dev libwebp-dev libssl-dev \
    libpango1.0-dev libswscale-dev libavcodec-dev libavutil-dev \
    libavformat-dev -y

2. Download Apache Guacamole Source Code and Install It on Ubuntu 24.04

Now you must visit the Apache Guacamole Downloads page and look for the latest version. At the current time, the latest version of Guacamole is 1.5.5. So you can use the following Wget Command to download the source code of Guacamole on Ubuntu 24.04:

Код: bash
sudo wget https://downloads.apache.org/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz

Downloading and Installing Apache Guacamole on Ubuntu 24.04Installing Apache Guacamole on Ubuntu 24.04 – Download Source Code

Then, extract your Guacamole package and navigate to it with the following commands:

Код: bash
sudo tar -xvf guacamole-server-1.5.5.tar.gz

Код: bash
sudo cd guacamole-server-1.5.5

Build and Install Apache Guacamole

At this point, you start building and installing Apache Guacamole on Ubuntu 24.04 with the following commands:

Код: bash
sudo ./configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots
Код: bash
sudo make
Код: bash
sudo make install

The installation process may take some time to complete. After that, you need to update the installed library cache with the following command:

Код: bash
sudo ldconfig

Enable and Start Guacamole Service

Now you must reload your systemd to apply the changes:

Код: bash
sudo systemctl daemon-reload

Next, use the following commands to enable and start the Guacamole service on Ubuntu 24.04:

Код: bash
sudo systemctl enable guacd
Код: bash
sudo systemctl start guacd

Then, verify your Guacamole service is active and running on Ubuntu 24.04:

Код: bash
sudo systemctl status guacd

Check Guacamole Service is active on Ubuntu 24.04Installing Apache Guacamole on Ubuntu 24.04 – Guacd Status

Important Note: You must create the Guacamole configuration files and extensions. These files will used in the later steps. To do this, you can run the command below:
Код: bash
sudo mkdir -p /etc/guacamole/{extensions,lib}

3. Download and Install Guacamole Frontend Interface on Ubuntu 24.04 (Guacamole Web App)

At this step, you must download and install the Apache Guacamole Web Application. For this purpose, you must install Tomcat. At the current time, Apache Guacamole is compatible with Tomcat 9. Because Tomcat 9 is not available in Ubuntu 24.04, we added the Ubuntu 22.04 repository and then install Tomcat 9 with the commands below:

Код: bash
sudo add-apt-repository -y -s "deb http://archive.ubuntu.com/ubuntu/ jammy main universe"

Код: bash
sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y

Next, use the following command to download the Gucamole web app source code. Just remember that the version of the web app must be the same as the Guacamole version.

Код: bash
sudo wget https://downloads.apache.org/guacamole/1.5.5/binary/guacamole-1.5.5.war

Download and Install Guacamole Frontend Interface on Ubuntu 24.04

Then, you must move the Guacamole Web client to the Tomcat directory with the command below:

Код: bash
sudo mv guacamole-1.5.5.war /var/lib/tomcat9/webapps/guacamole.war

To apply the changes, restart Apache Guacamole and Tomcat services on Ubuntu 24.04:

Код: bash
sudo systemctl restart tomcat9 guacd

4. Set up Guacamole Database Authentication on Ubuntu 24.04

In this step of installing Apache Guacamole on Ubuntu 24.04, you must configure Guacamole database authentication. By default, Guacamole supports basic user authentication that is used for testing. However, we want to use a production-ready database authentication through MariaDB. To do this, follow the steps below:

First, install MariaDB with the following command:
Код: bash
sudo apt install mariadb-server -y

Then, run the MySQL security script to set a password for your MariaDB:
Код: bash
sudo mysql_secure_installation

Set Root password for MySQL Guacamole
Download MySQL Java Connector for Apache Guacamole

Next, you must download the MySQL Java Connector. At the current time, the latest MySQL Java connector is Connector/J 9.1.0. To download the package, run the command below:

Код: bash
sudo wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-9.1.0.tar.gz

Download MySQL Java Connector for Apache Guacamole

Now extract your downloaded file and copy it to the /etc/guacamole/lib/ directory with the following commands:

Код: bash
sudo tar -xf mysql-connector-j-9.1.0.tar.gz

Код: bash
sudo cp mysql-connector-j-9.1.0/mysql-connector-j-9.1.0.jar /etc/guacamole/lib/

Download Apache Guacamole JDBC AUTH Plugin

At this point, you must download the Apache Guacamole JDBC AUTH Plugin. Just remember that the version you will download same as the version of the Guacamole.

Код: bash
sudo wget https://downloads.apache.org/guacamole/1.5.5/binary/guacamole-auth-jdbc-1.5.5.tar.gz

Download Apache Guacamole JDBC AUTH Plugin

Then, extract your downloaded file and copy it to /etc/guacamole/extensions/ directory with the commands below:

Код: bash
sudo tar -xf guacamole-auth-jdbc-1.5.5.tar.gz

Код: bash
sudo mv guacamole-auth-jdbc-1.5.5/mysql/guacamole-auth-jdbc-mysql-1.5.5.jar /etc/guacamole/extensions/

Create Apache Guacamole Database and User

In this step of installing Apache Guacamole on Ubuntu 24.04, you must create a user and database. To do this, log in to your MariaDB shell:

Код: bash
sudo mysql -u root -p

Enter the password you have configured for it. From your MariaDB shell, run the following commands to create a database, user database, and grant the privileges to it:

 
Код: bash
CREATE DATABASE guac_db;
Код: bash
CREATE USER 'guac_user'@'localhost' IDENTIFIED BY 'password';
Код: bash
GRANT SELECT,INSERT,UPDATE,DELETE ON guac_db.* TO 'guac_user'@'localhost';
Код: bash
FLUSH PRIVILEGES;

When you are finished, exit from your MariaDB shell:

Код: bash
 EXIT;

Create Apache Guacamole Database and User
Import SQL Schema Files For Guacamole

At this point, you must navigate to the MySQL Schema directory with the command below:

Код: bash
cd guacamole-auth-jdbc-1.5.5/mysql/schema

From there, run the command below to import the SQL schema files to the MySQL database:

Код: bash
cat *.sql | mysql -u root -p guac_db

Enter your MariaDB root password to complete the process.
Create Properties Files For Apache Guacamole

Now use your desired text editor like Vi Editor or Nano Editor to create the properties files for Guacamole:

Код: bash
sudo vi /etc/guacamole/guacamole.properties

Add the following configuration settings to the file with your database credentials:

Код: bash
# MySQL properties
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guac_db
mysql-username: guac_user
mysql-password: password

Once you are done, save and close the file.
Create Properties Files For Apache Guacamole

Finally, restart the services to apply the changes:

Код: bash
sudo systemctl restart tomcat9 guacd mysql
5. Access Apache Guacamole Dashboard via Web Interface

Now that you are finished with installing Apache Guacamole on Ubuntu 24.04, you can access the Guacamole dashboard by following the URL below from your Web browser:

http://server-ip:8080/guacamole

You must see the Guacamole login screen. Enter the following credentials to log in:

username: guacadmin
password: guacadmin
#39
    Установите PowerCLI:

Код: bash
Install-Module -Name VMware.PowerCLI -Scope CurrentUser

    Подключиться к серверу vCenter:

Код: bash
Connect-VIServer -Server <vCenter_Server_IP>
    Получить и экспортировать список виртуальных машин:

Код: bash
Get-VM | Select-Object Name, PowerState, NumCpu, MemoryMB, Guest, @{N="IP Address";E={@($_.Guest.IPAddress)}} | Export-Csv -Path "C:\VMListip1.csv" -NoTypeInformation
#40
Proxmox / Миграция контейнера proxmox в ...
Последний ответ от George - Окт. 21, 2025, 08:11
Доброго дня, уважаемые читатели!
Встала передо мной задача перенести некоторые виртуалки с proxmox в vmware. только вот одна из них оказалась контейнером. То есть, как я это понял, это типа докера, использует ядро итд самого прокса.
Для начала конвертируем диск в vmdk. Допустим, id нашей виртуалки 101. Подключаемся к консоли и набираем команду:

Код: bash
find / -name vm-101-disk-0*

смотрим результат выполнения

Цитировать/dev/pve/vm-101-disk-0

запускаем конвертацию

Код: bash
qemu-img convert -f raw /dev/pve/vm-101-disk-0 -O vmdk /tmp/vm-101-disk-0.vmdk

в зависимости от размера диска, это займет какое-то время. По окончанию, переписываем файл

Код: bash
scp /tmp/vm-101-disk-0.vmdk 192.168.23.100:/vmfs/volumes/disk1

Создаем виртуалку на vmware, ставим убунту. Я пробовал и убунту, и дебиан, но разницы нет - полученная виртуалка будет убунтой. Расписывать как это делается, я не буду, думаю тот, что занялся таким переносом это делать умеет)



Далее мы удаляем диск виртуалки без удаления файла, подключаем наш перенесенный диск (чтоб он был в системе как /dev/sda) и подключаем обратно отключенный ранее диск виртуалки. Загружаемся.

монтируем наш диск

Код: bash
mount /dev/sda /mnt

создаем папки

Код: bash
mkdir /mnt/sys
Код: bash
mkdir /mnt/proc
Код: bash
mkdir /mnt/dev
Код: bash
mkdir /mnt/run

Примонтируем на новый диск папки /sys, /proc, /dev, из работающей системы:

mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev

устанавливаем ядро:

Код: bash
sudo apt install linux-image-generic linux-headers-generic

fstab

Код: bash
vi /etc/fstab

Добавляем строку

Код: bash
/dev/sda / ext4 defaults 0 1

устанавливаем загрузчик

Код: bash
sudo grub-install /dev/sda --force

без --force не встает.


🡱 🡳

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.