GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte úložiště YUM/DNF založené na FTP na Red Hat Enterprise Linux 8

Softwarová úložiště se obvykle používají přes internet a mohou k nim přistupovat více uživatelů po celém světě. Můžete si však vytvořit své vlastní lokální úložiště na svém lokálním serveru a používat jej jako jediný uživatel, nebo povolit přístup k dalším strojům ve vaší LAN pomocí webového serveru HTTP nebo FTP.

Výhodou vytvoření místního úložiště je, že nepotřebujete internetové připojení k

instalovat softwarové balíčky nebo aktualizace. Další výhodou je samozřejmě rychlost stahování. Protože se balíčky stahují přes místní síť, aktualizace probíhají rychle.

Yellowdog Updater, Modified (YUM) nebo Dandified YUM (DNF) jsou správci softwarových balíčků, kteří spravují linuxové distribuce založené na RPM. S YUM nebo DNF můžete instalovat a aktualizovat skupiny počítačů, aniž byste museli ručně aktualizovat každý z nich pomocí RPM.

V tomto článku vysvětlím, jak nastavit místní úložiště YUM/DNF na Red Hat Enterprise Linux (RHEL) 8 pomocí instalačního DVD nebo souboru ISO. Také vám ukážu, jak najít a nainstalovat softwarové balíčky na klientských počítačích RHEL 8 pomocí velmi zabezpečeného FTP démona (vsftpd ) server. Pokyny pro webový server Apache najdete v tématu Vytvoření vlastního úložiště YUM/DNF založeného na Apache na Red Hat Enterprise Linux 8.

Předpoklady

Budete muset nastavit dva počítače se systémy Red Hat Enterprise Linux 8, jeden místní repo server a jeden klientský počítač, který bude používat místní úložiště z místního serveru. Například:

  • Server místního úložiště:RHEL 8 [10.0.0.10]

  • Místní klientský počítač:RHEL 8 [10.0.0.11]

  • Instalační DVD RHEL 8

  • vsftpd  FTP server

Vytvořte si úložiště

Vytvoření vašeho úložiště zahrnuje řadu kroků.

Krok 1:Připojte médium Red Hat Enterprise Linux 8

Nejprve připojte místní médium (DVD, USB flash disk atd.), které obsahuje Red Hat Enterprise Linux 8. Použijte instalační DVD:

$ sudo mount /dev/cdrom /mnt 
mount: /mnt: WARNING: device write-protected, mounted read-only.

Nebo připojte obraz ISO:

$ sudo mount -o loop rhel-8.0-x86_64-dvd.iso /mnt

[Chcete vyzkoušet Red Hat Enterprise Linux? Stáhněte si jej nyní zdarma.]

Krok 2:Vytvořte místní úložiště YUM z připojeného média

Přesuňte existující repo soubory umístěné v /etc/yum.repos.d :

$ sudo mv /etc/yum.repos.d/*.repo /tmp/

Od této chvíle je lepší, když budete pokračovat jako uživatel root. Přepněte na superuživatele pomocí su příkaz.

Dále vytvořte adresář pro repo:

# mkdir /local_repo

Použijte tento adresář s vsftpd pro poskytování souborů přes LAN.

Vytvořte konfigurační soubor nového místního úložiště local-dvdrom.repo pod /etc/yum.repos.d adresář:

# touch /etc/yum.repos.d/local-dvdrom.repo
# chmod  u+rw,g+r,o+r  /etc/yum.repos.d/local-dvdrom.repo

Krok 3:Zkopírujte mediální obsah do místního adresáře

Zkopírujte soubory ISO lokálně pod /local_repo adresář:

# cd /mnt
# tar cvf - . | (cd /local_repo/; tar xvf -)

Počkejte, dokud se soubory nezkopírují, a poté pomocí:

ověřte, zda byly soubory zkopírovány
# ls -l /local_repo/
total 56
dr-xr-xr-x. 4 root root    38 Apr  4  2019 AppStream
dr-xr-xr-x. 4 root root    38 Apr  4  2019 BaseOS
dr-xr-xr-x. 3 root root    18 Apr  4  2019 EFI
-r--r--r--. 1 root root  8266 Mar  1  2019 EULA
-r--r--r--. 1 root root  1455 Apr  4  2019 extra_files.json
-r--r--r--. 1 root root 18092 Mar  1  2019 GPL
dr-xr-xr-x. 3 root root    76 Apr  4  2019 images
dr-xr-xr-x. 2 root root   256 Apr  4  2019 isolinux
-r--r--r--. 1 root root   103 Apr  4  2019 media.repo
-r--r--r--. 1 root root  1669 Mar  1  2019 RPM-GPG-KEY-redhat-beta
-r--r--r--. 1 root root  5134 Mar  1  2019 RPM-GPG-KEY-redhat-release
-r--r--r--. 1 root root  1796 Apr  4  2019 TRANS.TBL

Krok 4:Konfigurace místního úložiště YUM/DNF

Upravte konfigurační soubor úložiště, který jste vytvořili dříve:

# vim /etc/yum.repos.d/local-dvdrom.repo

Vložte do něj tuto konfiguraci:

[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/BaseOS/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LocalRepo_AppStream]
name=LocalRepo_AppStream
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/AppStream/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

Nainstalujte požadované balíčky pro vytváření, konfiguraci a správu místního úložiště:

# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalRepo_AppStream                              94 MB/s | 5.3 MB     00:00    
LocalRepo_BaseOS                                 97 MB/s | 2.2 MB     00:00    
repo id                              repo name                            status
LocalRepo_AppStream                  LocalRepo_AppStream                  4,672
LocalRepo_BaseOS                     LocalRepo_BaseOS                     1,658


# yum install createrepo  yum-utils
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:02:33 ago on Sat 05 Oct 2019 09:52:46 PM UTC.
Package dnf-utils-4.0.2.2-3.el8.noarch is already installed.
Dependencies resolved.
================================================================================
 Package              Arch      Version            Repository              Size
================================================================================
Installing:
 createrepo_c         x86_64    0.11.0-1.el8       LocalRepo_AppStream     76 k
Installing dependencies:
 createrepo_c-libs    x86_64    0.11.0-1.el8       LocalRepo_AppStream    101 k
 drpm                 x86_64    0.3.0-14.el8       LocalRepo_AppStream     71 k

Transaction Summary
================================================================================
Install  3 Packages

Total size: 249 k
Installed size: 556 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : drpm-0.3.0-14.el8.x86_64                               1/3 
  Installing       : createrepo_c-libs-0.11.0-1.el8.x86_64                  2/3 
  Installing       : createrepo_c-0.11.0-1.el8.x86_64                       3/3 
  Running scriptlet: createrepo_c-0.11.0-1.el8.x86_64                       3/3 
  Verifying        : createrepo_c-0.11.0-1.el8.x86_64                       1/3 
  Verifying        : createrepo_c-libs-0.11.0-1.el8.x86_64                  2/3 
  Verifying        : drpm-0.3.0-14.el8.x86_64                               3/3 
Installed products updated.

Installed:
  createrepo_c-0.11.0-1.el8.x86_64     createrepo_c-libs-0.11.0-1.el8.x86_64    
  drpm-0.3.0-14.el8.x86_64            

Complete!

Nakonec spusťte createrepo příkaz:

# createrepo /local_repo/
Directory walk started
Directory walk done - 6647 packages
Temporary output repo path: /local_repo/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

Krok 5:Otestujte a ověřte své místní úložiště

V tomto kroku vyčistíte dočasné soubory úložiště a ověříte, že je místní úložiště povoleno:

# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
12 files removed

# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalRepo_AppStream                             120 MB/s | 5.3 MB     00:00    
LocalRepo_BaseOS                                103 MB/s | 2.2 MB     00:00    
repo id                              repo name                            status
LocalRepo_AppStream                  LocalRepo_AppStream                  4,672
LocalRepo_BaseOS                     LocalRepo_BaseOS                     1,658

Ověřte, že bylo vytvořeno místní úložiště:

# ls /local_repo/repodata/
26617821a5263fb13c7a49cc5e2d0b979b926eb17b9b4ed0b7df624e04c272f2-other.sqlite.bz2
5626e6dd41648dc6395def6889f4cc0e7f1006bb7d7eca748c9abd4c67fa5b9b-other.xml.gz
6290a72e46a90f98896c14f7664440de10c798d158ce0afe5f15a9f3896b7824-primary.xml.gz
a5c265589796231ed91b8b25a0473d05915bf62496495a004d321d042b26360c-filelists.sqlite.bz2
c8b51f43bdaa4f14cd5b083851cef1068e9284fa6557eb4552ba2ae22e7f72d5-primary.sqlite.bz2
ed21f77d28e263df02739a4bd55eb7247ffd0531c871bfe677d4b205dbffd5e8-filelists.xml.gz
repomd.xml

Můžete vidět, že místní úložiště generovalo soubory, takže v tuto chvíli je vše v pořádku.

Pokud si pozorně přečtete výše uvedený výstup příkazu, zobrazí se vám varovná zpráva This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register . Chcete-li tuto zprávu potlačit nebo zabránit při spuštění dnf nebo yum příkaz a poté upravte soubor /etc/yum/pluginconf.d/subscription-manager.conf :

# vim /etc/yum/pluginconf.d/subscription-manager.conf

a změňte parametr enabled=1 na enabled=0 :

[main]
enabled=0

Nastavení serveru FTP

Jak jsem již zmínil, tento článek se zabývá nastavením vlastního úložiště pomocí FTP serveru (v tomto případě vsftpd ). Provedu vás instalací a konfigurací vsftpd k obsluze vašeho úložiště.

Instalovat vsftpd

Chcete-li nastavit váš FTP server, aby obsluhoval vašeho zástupce, nejprve nainstalujte vsftpd :

# yum install vsftpd
Last metadata expiration check: 0:45:11 ago on Sun 06 Oct 2019 01:35:13 PM UTC.
Dependencies resolved.
=========================================================================================
 Package        Arch           Version                 Repository                   Size
=========================================================================================
Installing:
 vsftpd         x86_64         3.0.3-28.el8            LocalRepo_AppStream         180 k

Transaction Summary
=========================================================================================
Install  1 Package

Total size: 180 k
Installed size: 356 k
Is this ok [y/N]: y

Nakonfigurujte vsftpd na automatické spouštění při spouštění

Jednou vsftpd je nainstalován, spusťte a povolte automatické spuštění služby při bootování a ověřte její stav pomocí následujících příkazů:

# systemctl start vsftpd

# systemctl enable vsftpd
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.

# systemctl status nginx
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-10-06 10:15:47 UTC; 22s ago
 Main PID: 18330 (vsftpd)
    Tasks: 1 (limit: 2348)
   Memory: 7.6M
   CGroup: /system.slice/vsftpd.service
           └─18330 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Oct 06 10:15:47 server systemd[1]: Starting Vsftpd ftp daemon...
Oct 06 10:15:47 server vsftpd[3593]: Started Vsftpd ftp daemon.

Nakonfigurujte bránu firewall

Dále musíte nakonfigurovat bránu firewall tak, aby vsftpd lze dosáhnout:

# firewall-cmd --permanent --add-port=21/tcp
success
# firewall-cmd --reload
success

Ověřte, zda je vsftpd v provozu

Nyní můžete ověřit, zda je váš FTP server v provozu pomocí FTP klienta pro připojení k localhost . Například:

$ ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.3)
Name (localhost:bb): bb
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||50522|)
150 Here comes the directory listing.
drwxrwxr-x  3 1001 1001 4096 Aug 07 04:46 Documents
-rw-rw-r--  1 1001 1001  4 Aug 07 04:46 example.txt
-rw-rw-r--  1 1001 1001 20 Aug 07 17:45 test.txt
226 Directory send OK.
ftp> quit
221 Goodbye.
$

Konfigurovat vsftpd

Chcete-li nakonfigurovat vsftpd , otevřete konfigurační soubor:

# vim /etc/vsftpd/vsftpd.conf 

Po otevření změňte následující:

anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=NO

Přidejte následující řádek kamkoli do konfiguračního souboru:

local_root=/local_repo

Otestujte a vyčistěte

Nakonec restartujte a otestujte vsftpd služba:

# systemctl restart vsftpd

# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disa>
   Active: active (running) since Sun 2019-10-06 14:31:30 UTC; 7s ago
  Process: 6514 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=>
 Main PID: 6515 (vsftpd)
    Tasks: 1 (limit: 11528)
   Memory: 644.0K
   CGroup: /system.slice/vsftpd.service
           └─6515 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Oct 06 14:31:30 server systemd[1]: Starting Vsftpd ftp daemon...
Oct 06 14:31:30 server systemd[1]: Started Vsftpd ftp daemon.

Změnit oprávnění a nastavit SELinux

Pokračujte v konfiguraci zabezpečení změnou oprávnění na local_repo adresář a konfiguraci SELinuxu. Chcete-li změnit oprávnění:

# setfacl -R -m u:root:rwx /local_repo/

Poté zkontrolujte, zda SELinux vynucuje:

# getenforce
Enforcing

Pokud je to Enforcing , zadejte:

# chcon -Rt public_content_t /local_repo/

Nastavte klienta

Nyní ke konfiguraci úložiště klientského počítače Red Hat Enterprise Linux 8.

Přidat úložiště

Na klientském počítači přidejte místní úložiště ze serveru do konfigurace YUM klienta:

$ sudo vim /etc/yum.repos.d/local-rhel8.repo 

Poté vložte následující konfiguraci (nezapomeňte změnit IP adresu serveru podle vašeho nastavení):

[LocalServerRepo]
name=LocalServerRepo
enabled=1
gpgcheck=0
baseurl=ftp://10.0.0.10/

Otestujte úložiště

Otestujte LocalServerRepo instalací balíčku. Například:

$ yum repolist
Not root, Subscription Management repositories not updated
LocalServerRepo                                 112 MB/s | 7.2 MB     00:00    
Last metadata expiration check: 0:00:02 ago on Sun 06 Oct 2019 01:04:21 PM UTC.
repo id                              repo name                            status
LocalServerRepo                      LocalServerRepo                      6,647

$ sudo yum install nano
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalServerRepo                                 103 MB/s | 7.2 MB     00:00    
Last metadata expiration check: 0:00:02 ago on Sun 06 Oct 2019 01:07:33 PM UTC.
Dependencies resolved.
================================================================================
 Package      Arch           Version              Repository               Size
================================================================================
Installing:
 nano         x86_64         2.9.8-1.el8          LocalServerRepo         580 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 580 k
Installed size: 2.2 M
Is this ok [y/N]: y
Downloading Packages:
nano-2.9.8-1.el8.x86_64.rpm                      19 MB/s | 580 kB     00:00    
--------------------------------------------------------------------------------
Total                                            17 MB/s | 580 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : nano-2.9.8-1.el8.x86_64                                1/1 
  Running scriptlet: nano-2.9.8-1.el8.x86_64                                1/1 
  Verifying        : nano-2.9.8-1.el8.x86_64                                1/1 
Installed products updated.

Installed:
  nano-2.9.8-1.el8.x86_64                                                       

Complete!

To je vše! Nyní máte v Red Hat Enterprise Linux 8 lokální úložiště YUM/DNF založené na FTP pomocí instalačního DVD nebo souboru ISO.


Linux
  1. Jak vytvořit místní úložiště Red Hat

  2. Zaregistrujte si Red Hat Enterprise Linux a připojte předplatné s Ansible

  3. Konfigurace IPv6 adresy v Red Hat Enterprise Linux 7 a 8

  1. Vytvoření přizpůsobené image Red Hat Enterprise Linux 7 pro Microsoft Azure

  2. Co je třeba zvážit při spuštění Red Hat Enterprise Linux v Azure

  3. Jak zrcadlit úložiště v Linuxu

  1. Vytvořte úložiště YUM/DNF založené na Apache na Red Hat Enterprise Linux 8

  2. Co je Red Hat Linux?

  3. Změnit Docker Root Dir na Red Hat Linuxu?