Thiết Lập Local Repository Cho CentOS 7

tạo local repository

Bài viết này, An Ninh Mạng sẽ hướng dẫn bạn cách setup một repository local trong hệ thống CentOS 7. Cách thực hiện trên hệ điều hành này cũng có thể được thực hiện trên Red Hat Linux EnterpriseScientific Linux 7.

Trong trường hợp cần cài đặt phần mềm, cập nhật bảo mật, hoặc nâng cấp hệ thống cho nhiều máy trong hệ thống mạng nội bộ, thì việc sử dụng một repository nội bộ sẽ là một sự lựa chọn hiệu quả. Bởi vì lúc này tất cả tác vụ download đều được thực hiện bằng kết nối Lan, vốn đạt tốc độ cao hơn nhiều so với kết nối Internet, và còn giúp nhà quản trị tiết kiệm được băng thông Internet.

Chuẩn bị cho bài Lab :

Máy 1 :

Hệ điều hành : CentOS 7

Địa chỉ IP : 192.168.1.101

Máy 2 :

Hệ điều hành : CentOS 7

Địa chỉ IP : 192.168.1.102

Tiến hành cài đặt :

Đầu tiên, thực hiện mount bộ cài đặt CentOS7. Ví dụ, chúng ta sẽ mount bộ cài đặt vào thư mục /mnt

mount /dev/cdrom /mnt/

Như vậy là bộ cài đặt của CentOS đã được mount vào thư mục /mnt. Tiếp theo Install vsftpd package và cho phép package khả dụng thông qua giao thức FTP đến các máy client.

Để thực hiện, đi tới thư mục /mnt/Packages :

cd /mnt/Packages/

Sau đó Install gói vsftpd package:

rpm -ivh vsftpd-3.0.2-9.el7.x86_64.rpm

Enable và start service vsftpd :

systemctl enable vsftpd

systemctl start vsftpd

Chúng ta cần một package tên là “createrepo” để tạo local repository. Vì vậy hãy tiến hành cài đặt nó luôn.

Nếu hệ điều hành CentOS 7 đang chạy là bản cài đặt Minimal, thì chúng ta cần cài thêm các gói sau :

rpm -ivh libxml2-python-2.9.1-5.el7.x86_64.rpm

rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm

rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm

Sau đó install package “createrepo” :

rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm

Tiến hành build Local Repository :

Tạo một thư mục để lưu trữ toàn bộ các gói Package để client tải về. Như đã nói ở trên, giao thức FTP sẽ được sử dụng để truyền tải file về máy client. Vì vậy chúng ta sẽ tạo thư mục bên trong FTP Server.

 mkdir /var/ftp/pub/localrepo

Tiếp tục copy toàn bộ file bên trong bộ cài CentOS ở thư mục /mnt/Packages/ vào thư mục “localrepo”:

cp -ar /mnt/Packages/*.* /var/ftp/pub/localrepo/

Sau khi đã copy hoàn tất mọi file trong bộ cài đặt, tiến hành tạo một repository tên là “localrepo.repo” bên trong thư mục /etc/yum.repos.d/

vi /etc/yum.repos.d/localrepo.repo

và add những dòng này vào file :

[localrepo]

name=Anninhmang Repository

baseurl=file:///var/ftp/pub/localrepo

gpgcheck=0

enabled=1

Ngay bây giờ, tiến hành tạo local repository:

createrepo -v /var/ftp/pub/localrepo/

Quá trình build sẽ bắt đầu :

setup local repository centos 7 Thiết Lập Local Repository Cho CentOS 7

Để liệt kê danh sách repository, sử dụng lệnh :

yum repolist

Kết quả trả về sẽ là :

repo id                                                                    repo name                                                                     status

base/7/x86_64                                                              CentOS-7 - Base                                                               8,465

extras/7/x86_64                                                            CentOS-7 - Extras                                                                30

localrepo                                                                  Anninhmang Repository                                                            3,538

updates/7/x86_64                                                           CentOS-7 - Updates                                                              726

Xóa Yum cache và update lại danh sách repository :

yum clean all

yum update

Sau khi tạo Repository, disable hoặc rename repository cũ nếu người dùng muốn các máy client chỉ cài đặt các gói Package từ Repository nội bộ. Sử dụng lệnh :

yum install --disablerepo="*" --enablerepo="localrepo" httpd

Kết quả trả về :

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package httpd.x86_64 0:2.4.6-17.el7.centos.1 will be installed

--> Processing Dependency: httpd-tools = 2.4.6-17.el7.centos.1 for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Running transaction check

---> Package apr.x86_64 0:1.4.8-3.el7 will be installed

---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed

---> Package httpd-tools.x86_64 0:2.4.6-17.el7.centos.1 will be installed

---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed

--> Finished Dependency Resolution




Dependencies Resolved




===============================================================================================================================================================

 Package                              Arch                            Version                                         Repository                          Size

===============================================================================================================================================================

Installing:

 httpd                                x86_64                          2.4.6-17.el7.centos.1                           localrepo                          2.7 M

Installing for dependencies:

 apr                                  x86_64                          1.4.8-3.el7                                     localrepo                          103 k

 apr-util                             x86_64                          1.5.2-6.el7                                     localrepo                           92 k

 httpd-tools                          x86_64                          2.4.6-17.el7.centos.1                           localrepo                           77 k

 mailcap                              noarch                          2.1.41-2.el7                                    localrepo                           31 k




Transaction Summary

===============================================================================================================================================================

Install  1 Package (+4 Dependent packages)




Total download size: 3.0 M

Installed size: 10 M

Is this ok [y/d/N]:

Disable Firewall và cài đặt SE Linux :

Nếu đã quyết định sử dụng local repository cho hệ thống mạng, thì việc duy trì Firewall và SELinux sẽ không cần thiết nữa. Vì thế, để giảm sự phức tạp cho hệ thống, ta nên disable cả 2 dịch vụ Firewalld và SELinux :

systemctl stop firewalld

systemctl disable firewalld

Để disable SELinux, edit file /etc/sysconfig/selinux,

vi /etc/sysconfig/selinux

Set SELINUX = disbaled.

[...]

SELINUX=disabled

[...]

Reboot lại server để thay đổi có hiệu lực

Cấu hình cho máy Client :

Bây giờ, bắt đầu chuyển qua máy client. Tạo một file Repository bên trong thư mục /etc/yum.repos.d/

vi /etc/yum.repos.d/localrepo.repo

và thêm nội dung sau vào file :

[localrepo]

name=Anninhmang Repository

baseurl=ftp://192.168.1.101/pub/localrepo

gpgcheck=0

enabled=1

Tiếp theo, list toàn bộ repository bằng dòng lệnh :

yum repolist

Xóa Yum Cache và update danh sách repository :

yum clean all

yum update

Disable hoặc rename các repository có sẵn nếu bạn chỉ muốn cài đặt các gói package từ server local. Ngoài ra, người dùng cũng có thể Install package từ repository nội bộ bằng cách ghi chú repository như sau :

yum install --disablerepo="*" --enablerepo="localrepo" httpd

Mẫu trả về :

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package httpd.x86_64 0:2.4.6-17.el7.centos.1 will be installed

--> Processing Dependency: httpd-tools = 2.4.6-17.el7.centos.1 for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-17.el7.centos.1.x86_64

--> Running transaction check

---> Package apr.x86_64 0:1.4.8-3.el7 will be installed

---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed

---> Package httpd-tools.x86_64 0:2.4.6-17.el7.centos.1 will be installed

---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed

--> Finished Dependency Resolution




Dependencies Resolved




================================================================================

 Package          Arch        Version                      Repository      Size

================================================================================

Installing:

 httpd            x86_64      2.4.6-17.el7.centos.1        localrepo      2.7 M

Installing for dependencies:

 apr              x86_64      1.4.8-3.el7                  localrepo      103 k

 apr-util         x86_64      1.5.2-6.el7                  localrepo       92 k

 httpd-tools      x86_64      2.4.6-17.el7.centos.1        localrepo       77 k

 mailcap          noarch      2.1.41-2.el7                 localrepo       31 k




Transaction Summary

================================================================================

Install  1 Package (+4 Dependent packages)




Total download size: 3.0 M

Installed size: 10 M

Is this ok [y/d/N]: y

Downloading packages:

(1/5): apr-1.4.8-3.el7.x86_64.rpm                          | 103 kB   00:01    

(2/5): apr-util-1.5.2-6.el7.x86_64.rpm                     |  92 kB   00:01    

(3/5): httpd-tools-2.4.6-17.el7.centos.1.x86_64.rpm        |  77 kB   00:00    

(4/5): httpd-2.4.6-17.el7.centos.1.x86_64.rpm              | 2.7 MB   00:00    

(5/5): mailcap-2.1.41-2.el7.noarch.rpm                     |  31 kB   00:01    

--------------------------------------------------------------------------------

Total                                              1.0 MB/s | 3.0 MB  00:02    

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : apr-1.4.8-3.el7.x86_64                                       1/5

  Installing : apr-util-1.5.2-6.el7.x86_64                                  2/5

  Installing : httpd-tools-2.4.6-17.el7.centos.1.x86_64                     3/5

  Installing : mailcap-2.1.41-2.el7.noarch                                  4/5

  Installing : httpd-2.4.6-17.el7.centos.1.x86_64                           5/5

  Verifying  : mailcap-2.1.41-2.el7.noarch                                  1/5

  Verifying  : httpd-2.4.6-17.el7.centos.1.x86_64                           2/5

  Verifying  : apr-util-1.5.2-6.el7.x86_64                                  3/5

  Verifying  : apr-1.4.8-3.el7.x86_64                                       4/5

  Verifying  : httpd-tools-2.4.6-17.el7.centos.1.x86_64                     5/5




Installed:

  httpd.x86_64 0:2.4.6-17.el7.centos.1                                         




Dependency Installed:

  apr.x86_64 0:1.4.8-3.el7                      apr-util.x86_64 0:1.5.2-6.el7  

  httpd-tools.x86_64 0:2.4.6-17.el7.centos.1    mailcap.noarch 0:2.1.41-2.el7  




Complete!

Như vậy là chúng ta đã hoàn tất cấu hình repository nội bộ trên hệ điều hành CentOS 7. Kể từ đây, các máy client không cần phải đi ra ngoài Internet mà có thể cài đặt trực tiếp từ nguồn của repository này.

BÌNH LUẬN

Please enter your comment!
Please enter your name here