Как да

Как да създам огледала за локално хранилище CentOS 8 с Rsync и Nginx

Как да създам огледала за локално хранилище CentOS 8 с Rsync и Nginx

В това ръководство ще разгледаме как можете да създадете локални хранилища на CentOS 8, като използвате Rsync и ги хоствате с уеб сървър Nginx. Локалните огледала CentOS 8 се създават, като имат локална cron работа, която редовно проверява за актуализации в хранилищата нагоре по веригата и ги актуализира локално съответно.

Чрез създаването на огледални сървъри за локално хранилище CentOS 8 ще можете да конфигурирате сървърите си CentOS 8 за достъп до пакети, без да е необходим достъп до интернет. Това ще подобри вашата сигурност и ще намали размера на честотната лента, консумирана чрез изтегляне на RPM пакети от външни източници.

В тази настройка ще използваме сървър CentOS 7 или CentOS 8, за да извършим действията. Трябва да имате външно хранилище с достатъчно капацитет за хостване на пакети за хранилища и потенциален растеж.

За CentOS 7 и CentOS 6 проверете: Как да създадете локални огледала за синхронизиране на хранилището CentOS 7 6 и EPEL

Стъпка 1: Инсталирайте Nginx Web Server

Тъй като Nginx се използва като уеб сървър по избор, инсталирайте го във вашата система CentOS 7.

CentOS 8

sudo dnf -y install @nginx

CentOS 7:

sudo yum -y инсталиране epel-освобождаване sudo yum -y инсталиране nginx

След инсталирането стартирайте и активирайте услугата.

sudo systemctl enable --now nginx

Уверете се, че услугата работи.

$ systemctl статус nginx ● nginx.услуга - HTTP на nginx и обратен прокси сървър Loaded: loaded (/ usr / lib / systemd / system / nginx.обслужване; активиран; предварително зададен от доставчика: деактивиран) Активен: активен (работи) от петък 2019-11-01 00:28:39 EAT; Преди 4s Процес: 7378 ExecStart = / usr / sbin / nginx (код = излязъл, статус = 0 / УСПЕХ) Процес: 7376 ExecStartPre = / usr / sbin / nginx -t (код = излязъл, статус = 0 / УСПЕХ) Процес: 7375 ExecStartPre = / usr / bin / rm -f / run / nginx.pid (код = излязъл, статус = 0 / УСПЕХ) Основен PID: 7380 (nginx) Задачи: 2 (ограничение: 11512) Памет: 9.4M CGroup: / система.slice / nginx.услуга ├─7380 nginx: главен процес / usr / sbin / nginx └─7381 nginx: работен процес 01 ноември 00:28:39 centos8.novalocal systemd [1]: Стартиране на nginx HTTP и обратен прокси сървър ... 01 ноември 00:28:39 centos8.novalocal nginx [7376]: nginx: конфигурационният файл / etc / nginx / nginx.conf синтаксисът е добре Ноември 01 00:28:39 centos8.novalocal nginx [7376]: nginx: конфигурационен файл / etc / nginx / nginx.conf тестът е успешен 01 ноември 00:28:39 centos8.novalocal systemd [1]: nginx.услуга: Неуспешно анализиране на PID от файл / старт / nginx.pid: Невалиден аргумент 01 ноември 00:28:39 centos8.novalocal systemd [1]: Стартиран nginx HTTP и обратния прокси сървър.

Отворете http порта в защитната стена.

sudo firewall-cmd --add-service = http - постоянна sudo firewall-cmd --reload

Стъпка 2: Създайте директории на хранилището

Имам вторичен диск в моя сървър, който ще се използва за съхраняване на данни от хранилището - / dev / vdc на 100GB.

$ lsblk ИМЕ MAJ: MIN RM РАЗМЕР RO TYPE MOUNTPOINT vda 252: 0 0 20G 0 диск ├─vda1 252: 1 0 1G 0 част / зареждане └─vda2 252: 2 0 9G 0 част ├─cl-root 253: 0 0 8G 0 lvm / └─cl-swap 253: 1 0 1G 0 lvm [SWAP] vdc 252: 32 0 100G 0 диск 

Ще създам дял на това блоково устройство и ще го монтирам под /данни директория. Нека започнем със създаването на дял върху него.

sudo parted -s -a optimal - / dev / vdc mklabel gpt sudo parted -s -a optimal - / dev / vdc mkpart primar 0% 100% sudo parted -s - / dev / vdc align-check optimal 1 

Създайте физически том и група от томове в него.

$ sudo pvcreate / dev / vdc1 Физически том "/ dev / vdc1" е създаден успешно. $ sudo vgcreate данни / dev / vdc1 Успешно създадена група данни "том"

Създайте логически том

$ sudo lvcreate -n repos -l + 100% БЕЗПЛАТНИ данни Създаден е логически том "репозитории".

Създайте файлова система

$ sudo mkfs.xfs / dev / mapper / data-repos meta-data = / dev / mapper / data-repos isize = 512 agcount = 4, agsize = 1965824 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 1, sparse = 1, rmapbt = 0 = reflink = 1 данни = bsize = 4096 блока = 7863296, imaxpct = 25 = sunit = 0 ширина = 0 blks именуване = версия 2 bsize = 4096 ascii-ci = 0, ftype = 1 log = вътрешен дневник bsize = 4096 блока = 3839, версия = 2 = sectsz = 512 sunit = 0 blks, lazy-count = 1 в реално време = няма extsz = 4096 блока = 0, rtextents = 0 

Създайте директория за монтиране на логически том.

sudo mkdir / данни

Създайте точка на монтиране

$ sudo vim / etc / fstab / dev / mapper / data-repos / data xfs по подразбиране 0 0 

Монтирайте го.

sudo mount -a

Потвърдете:

$ df -hT / data Тип на файловата система Използван Наличен Използвайте% Монтиран на / dev / mapper / data-repos xfs 100G 247M 100G 1% / data

Създайте основна директория за данни на хранилище CentOS 8.

sudo mkdir -p / data / repos / centos / 8 /

Потвърдете, че всички директории са създадени.

$ tree / data / / data / └── repos └── centos cent── 8 3 директории, 0 файла 

Стъпка 3: Създаване на скрипт за синхронизиране на хранилища

Нека сега създадем скрипт, който ще се използва за синхронизиране на съдържанието от отдалечените хранилища към нашата локална система.

$ sudo vim / etc / centos8_reposync.ш

Поставете под данните.

#!/ bin / bash repos_base_dir = "/ data / repos / centos / 8 /" # Стартиране на синхронизирането, ако съществува основна директория за репо, ако [[-d "$ repos_base_dir"]]; след това # Стартирайте Sync rsync -avSHP --delete rsync: // огледало.ликвидтелеком.com / centos / 8 / "$ repos_base_dir" # Изтегляне на ключ за хранилище CentOS 8 wget -P $ repos_base_dir wget https: // www.centos.org / ключове / RPM-GPG-KEY-CentOS-Официален fi

Направете скрипта изпълним.

sudo chmod + x / etc / centos8_reposync.ш

Инсталирайте Tmux и започнете първо изпълнение.

$ sudo yum -y инсталирайте tmux $ tmux $ sudo / etc / centos8_reposync.ш

Скриптът трябва да започне да се изпълнява.

Трябва да се създадат редица директории.

$ ls -1 / data / repos / centos / 8 / AppStream BaseOS centosplus COMPOSE_ID cr добавя бързо проследяване на PowerTools

Изчакайте първоначалният скрипт да завърши, след което създайте cron задача за седмично синхронизиране.

Ще настроя синхронизирането си да работи всяка неделя 18:00.

$ sudo crontab -e 00 18 * * 7 / etc / centos8_reposync.ш

Стъпка 4: Конфигурирайте Nginx

Създайте Nginx конфигурационен файл, за да обслужвате съдържанието на хранилището.

$ sudo vim / etc / nginx / conf.г / цент.conf сървър слуша 80; имена на сървъри.пример.com; root / data / repos /; местоположение / autoindex on; 

Конфигурирайте етикетите на SELinux.

sudo semanage fcontext -a -t httpd_sys_content_t "/ data / repos (/.*)?"sudo restorecon -Rv / data / repos

Рестартирайте nginx след промяната.

sudo nginx -t sudo systemctl рестартирайте nginx

Отворете URL адреса на сървъра, за да потвърдите, че работи.

Стъпка 5: Конфигурирайте клиентски машини CentOS 8

Сега, когато нашето огледало е готово, можем да конфигурираме нашите CentOS 8 машини да използват локалните хранилища.

Започнете с архивиране на текущите хранилища

cd / etc / yum.репо сделки.d / sudo mkdir old-repos sudo mv *.репо стари репо 

Създайте нов файл на хранилището

sudo vim local.репо

Променете по-долу и го поставете.

[BaseOS] name = CentOS- $ releasever - Base baseurl = // repos.computingforgeeks.com / centos / $ releasever / BaseOS / $ basearch / os / gpgcheck = 1 активиран = 1 gpgkey = // репо.computingforgeeks.com / centos / $ releasever / RPM-GPG-KEY-CentOS-Official [AppStream] name = CentOS- $ releasever - AppStream baseurl = // repos.computingforgeeks.com / centos / $ releasever / AppStream / $ basearch / os / gpgcheck = 1 активиран = 1 gpgkey = // repos.computingforgeeks.com / centos / $ releasever / RPM-GPG-KEY-CentOS-Official [centosplus] name = CentOS- $ releasever - Plus baseurl = // repos.computingforgeeks.com / centos / $ releasever / centosplus / $ basearch / os / gpgcheck = 1 активиран = 0 gpgkey = // repos.computingforgeeks.com / centos / $ releasever / RPM-GPG-KEY-CentOS-Official [екстри] name = CentOS- $ releasever - Екстри baseurl = // repos.computingforgeeks.com / centos / $ releasever / extras / $ basearch / os / gpgcheck = 1 активиран = 1 gpgkey = // репо.computingforgeeks.com / centos / $ releasever / RPM-GPG-KEY-CentOS-Official [PowerTools] name = CentOS- $ releasever - PowerTools baseurl = // repos.computingforgeeks.com / centos / $ releasever / PowerTools / $ basearch / os / gpgcheck = 1 активиран = 0 gpgkey = // repos.computingforgeeks.com / centos / $ releasever / RPM-GPG-KEY-CentOS-Official [cr] name = CentOS- $ releasever - cr baseurl = // repos.computingforgeeks.com / centos / $ releasever / cr / $ basearch / os / gpgcheck = 1 активиран = 0 gpgkey = // репо.computingforgeeks.com / centos / $ releasever / RPM-GPG-KEY-CentOS-Official [fasttrack] name = CentOS- $ releasever - fasttrack baseurl = // repos.computingforgeeks.com / centos / $ releasever / fasttrack / $ basearch / os / gpgcheck = 1 активиран = 0 gpgkey = // repos.computingforgeeks.com / centos / $ releasever / RPM-GPG-KEY-CentOS-Official

Където:

Почистване на текущия репо кеш:

sudo yum почисти всички

Актуализацията:

$ sudo yum makecache CentOS-8 - AppStream 1.2 MB / s | 4.3 kB 00:00 CentOS-8 - База 3.9 kB ​​/ s | 3.9 kB ​​00:01 CentOS-8 - Екстри 881 kB / s | 1.5 kB 00:00 Създаден кеш за метаданни. 

Списъчни хранилища:

$ sudo yum repolist Последна проверка на изтичане на метаданните: преди 0:02:10 в петък 01 ноември 2019 г. 12:41:38 EAT. repo id repo име име AppStream CentOS-8 - AppStream 5,089 BaseOS CentOS-8 - Base 2,843 екстри CentOS-8 - Екстри 3

Стартирайте системната актуализация от него.

sudo yum -y актуализация

Стъпка 6: Активиране на деактивирани хранилища

Някои хранилища са деактивирани по подразбиране. За да ги активирате, инсталирайте пакета yum-utils.

sudo yum инсталирайте yum-utils 

За да активирате хранилището, използвайте командата:

sudo yum-config-manager - разрешаване на преименуване

По-долу са примерите за активиране Електрически инструменти и centosplus хранилища:

sudo yum-config-manager - Enable PowerTools sudo yum-config-manager - Enable centosplus

Потвърдете:

$ sudo yum repolist CentOS-8 - AppStream 1.7 MB / s | 4.3 kB 00:00 CentOS-8 - Основа 2.0 MB / s | 3.9 kB ​​00:00 CentOS-8 - PowerTools 75 MB / s | 1.8 MB 00:00 CentOS-8 - Плюс 58 MB / s | 833 kB 00:00 CentOS-8 - Екстри 783 kB / s | 1.5 kB 00:00 repo id status repo name AppStream CentOS-8 - AppStream 5,089 BaseOS CentOS-8 - Base 2,843 PowerTools CentOS-8 - PowerTools 1,507 centosplus CentOS-8 - Плюс 26 екстри CentOS-8 - Екстри 3 

За да деактивирате, заменете -активиране с -деактивирайте.

Вече имате работещи локални огледала CentOS 8. Насладете се и проверете подобно ръководство, което имаме за потребители, работещи с Satellite / Katello / Foreman.

Как да синхронизирам хранилища CentOS 8 на Satellite / Katello / Foreman

Етикети:

Инсталирайте и конфигурирайте Zabbix Server 5.0 LTS на Debian 10 (Buster)
Въведение„Zabbix е най-добрият софтуер на корпоративно ниво, предназначен за наблюдение в реално време на милиони показатели, събрани от десетки хиляд...
Как да инсталирам Zabbix Server 5.0 на Ubuntu 20.04
Сървърът Zabbix 5.0 LTS излезе с много нови функции и красиви подобрения. Това ръководство е настроено да ви помогне да инсталирате и конфигурирате Za...
Как да настроите ISPConfig DNS само на CentOS 7
ISPConfig е контролен панел за хостинг с отворен код, разработен от компанията ISPConfig UG за Linux. ISPConfig е лицензиран под BSD лиценз. Той е в с...