Pradeep Kumar 发布的文章

你是否在寻找一份在 Debian 11(Bullseye)上安装 Kubernetes 集群的简易指南?

这份分步指南将向你展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。

Kubernetes(k8s)集群包含主控节点和工作节点,用于运行容器化的应用程序。主控节点作为控制平面,工作节点为实际工作负载提供环境。

前置条件:

  • 已安装 Debian 11
  • 2 CPU / vCPU
  • 2 GB RAM
  • 20 GB 空闲硬盘空间
  • 有管理员权限的 sudo 用户
  • 稳定的网络连接

实验环境配置:

在本文中,我使用了 3 个 Debian 11 系统的节点,配置如下

  • 主控节点(k8s-master) – 192.168.1.236
  • 工作节点 1(k8s-worker1) – 192.168.1.237
  • 工作节点 2(k8s-worker2) – 192.168.1.238

事不宜迟,我们直接进入安装步骤。

1、设置主机名和更新 /etc/hosts 文件

在主控节点和工作节点上使用 hostnamectl 命令来设置主机名:

$ sudo hostnamectl set-hostname "k8s-master"       // 在主控节点运行
$ sudo hostnamectl set-hostname "k8s-worker1"      // 在工作节点 1 运行
$ sudo hostnamectl set-hostname "k8s-worker2"      // 在工作节点 2 运行

在所有节点的 /etc/hosts 文件末尾添加下面几行内容:

192.168.1.236       k8s-master
192.168.1.237       k8s-worker1
192.168.1.238       k8s-worker2

2、在所有节点上关闭交换分区

我推荐关闭交换分区,以便更丝滑地使用 kubelet。在所有节点上执行以下命令来关闭交换分区:

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3、配置 Kubernetes 集群相关的防火墙规则

如果你的操作系统防火墙是打开的,请分别在主控节点和工作节点允许以下的端口。

在主控节点,执行:

$ sudo ufw allow 6443/tcp
$ sudo ufw allow 2379/tcp
$ sudo ufw allow 2380/tcp
$ sudo ufw allow 10250/tcp
$ sudo ufw allow 10251/tcp
$ sudo ufw allow 10252/tcp
$ sudo ufw allow 10255/tcp
$ sudo ufw reload

在工作节点,执行:

$ sudo ufw allow 10250/tcp
$ sudo ufw allow 30000:32767/tcp
$ sudo ufw reload

注意:如果你的 Debian 11 系统防火墙是关闭的,可以跳过此步骤。

4、在所有节点安装 Containerd 运行时

Containerd 是容器运行时的行业标准,所有节点必须安装 Containerd。

先在所有节点上配置如下的核心参数,再安装 Containerd。

$ cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

$ sudo modprobe overlay
$ sudo modprobe br_netfilter

$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

运行如下命令,以使上面的更改生效:

$ sudo sysctl --system

现在,在所有节点上运行如下 apt 命令来安装 Conatinerd。

$ sudo apt  update
$ sudo apt -y install containerd

在所有节点上运行如下命令来配置 Containerd:

$ containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1

在所有节点上设置 cgroupdriversystemd,编辑 /etc/containerd/config.toml 文件,找到 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] 部分,添加一行内容:SystemdCgroup = true

$ sudo vi /etc/containerd/config.toml

systemdCgroup-true-containerd-config-toml

保存并退出文件。

在所有节点上重启并启用 containerd 服务:

$ sudo systemctl restart containerd
$ sudo systemctl enable containerd

5、添加 Kubernetes Apt 库

执行以下命令,添加 Kubernetes Apt 库:

$ sudo apt install gnupg gnupg2 curl software-properties-common -y
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cgoogle.gpg
$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

6、在所有节点上安装 kubelet、kubectl 和 kubeadm

在所有节点上执行以下 apt 命令,安装 Kubernetes 集群组件,如 kubeletkubectl 以及 kubeadm

$ sudo apt update
$ sudo apt install kubelet kubeadm kubectl -y
$ sudo apt-mark hold kubelet kubeadm kubectl

7、使用 Kubeadm 创建 Kubernetes 集群

现在我们可以创建 Kubernetes 集群了,在主控节点上执行以下命令:

$ sudo kubeadm init --control-plane-endpoint=k8s-master

命令输出:

Kubernetes-Control-Plane-Initialization-Debian11

出现以上内容,说明控制平面初始化成功。在输出中,有普通用户与集群交互的命令,也有把任何工作节点加入到集群的命令。

要开始与集群进行交互,请在主控节点上运行以下命令:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

执行以下 kubectl 命令来获取节点和集群的信息:

$ kubectl get nodes
$ kubectl cluster-info

以上命令的输出:

Nodes-Cluster-Info-Kubectl

通过执行 kubeadm join 命令来把两个工作节点加入到集群。

注意:请从 kubeadm init 命令的输出中复制完整的命令。在我的例子中,命令如下:

$ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \
   --discovery-token-ca-cert-hash sha256:2be58f54458d0e788c96b8841f811069019161f9a3dd8502a38c773e5c6ead17

在工作节点 1 上的输出如下:

Worker-Node1-Join-Kunernetes-Cluster

在工作节点 2 上的输出如下:

Worker-Node2-Join-Kubernetes-Cluster

在主控节点上执行以下命令,检查节点的状态:

$ kubectl get nodes
NAME          STATUS     ROLES           AGE     VERSION
k8s-master    NotReady   control-plane   23m     v1.25.0
k8s-worker1   NotReady   <none>          9m27s   v1.25.0
k8s-worker2   NotReady   <none>          2m19s   v1.25.0
$

为了使节点状态变为 ready,我们需要安装 容器荚 Pod 网络插件,如 Calico 或 flannel。

8、安装 Calico Pod 网络插件

在主控节点上执行以下命令安装 Calico:

$ kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yaml

输出:

Install-calico-pod-network-addon-debian11

在所有节点上执行以下命令,配置防火墙允许 Calico 的端口:

$ sudo ufw allow 179/tcp
$ sudo ufw allow 4789/udp
$ sudo ufw allow 51820/udp
$ sudo ufw allow 51821/udp
$ sudo ufw allow 4789/udp
$ sudo ufw reload

执行以下命令检查下 Calico 的状态:

$ kubectl get pods -n kube-system

Calico-Pods-Status-Kuberenetes-Debian11

完美!现在再检查下节点状态:

Nodes-status-after-calico-Installation

非常棒!上面的输出说明主控节点和工作节点的状态都是 ready。现在这个集群可以正常工作了。

9、检查 Kubernetes 集群安装是否正确

我们尝试通过 deployment 命令来部署基于 Nginx 的应用程序,来验证 Kubernetes 集群的安装是否正确。执行以下命令:

$ kubectl create deployment nginx-app --image=nginx --replicas 2
$ kubectl expose deployment nginx-app --name=nginx-web-svc --type NodePort --port 80 --target-port 80
$ kubectl describe svc nginx-web-svc

以上命令的输出:

Nginx-Based-App-Kubernetes-Cluster-Debian11

使用以下的 curl 命令通过节点端口 30036 来访问基于 nginx 的应用程序。

注意:在 curl 命令中,可以使用两个工作节点任一的主机名。

$ curl http://k8s-worker1:30036

Access-Nginx-Based-App-via-NodePort-Kubernetes-Debian11

以上的输出说明我们可以正常访问基于 nginx 的应用程序了。

以上为全部内容。希望本文对你有用,参照本文可以在 Debian 11 上正常安装 Kubernetes 集群。如有任何问题,请在下面评论区告诉我。


via: https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/

作者:Pradeep Kumar 选题:lkxed 译者:lxbwolf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本文讲述如何一步步在 Linux 上安装 AWS CLI(命令行工具)。

AWS CLI 是一个能够和 AWS 账户进行交互的命令行程序。开发者和系统管理员用它管理日常的活动和自动化。

准备环节

  • 安装好的 Linux 系统
  • 具有管理员权限的 sudo 账户
  • 能够联网

现在让我们开始安装:

1、下载安装文件

打开终端使用 curl 命令下载 AWS CLI 的安装文件:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

以上命令会在当前工作目录下载一个 awscliv2.zip 的文件。

使用 ls 命令 确认当前下载下来的文件:

$ ls -l awscliv2.zip
-rw-rw-r-- 1 linuxtechi linuxtechi 47244662 Oct 20 10:53 awscliv2.zip
$

2、解压缩下载的文件

使用 unzip 命令 解压安装包:

$ unzip awscliv2.zip

它会在当前目录创建一个 aws 文件夹,把解压好的文件放进去:

$ ls -ld aws
drwxr-xr-x 3 linuxtechi linuxtechi 4096 Oct 19 17:18 aws
$

3、运行安装脚本

使用以下命令运行安装脚本:

$ sudo ./aws/install

脚本会把所有安装的文件放到 /usr/local/aws-cli 目录下,然后创建一个链接文件到 /usr/local/bin 目录。

4、检查 AWS CLI 的版本

运行以下脚本检查版本:

$ aws --version
aws-cli/2.8.4 Python/3.9.11 Linux/5.15.0-48-generic exe/x86_64.ubuntu.22 prompt/off
$

5、配置 AWS CLI

为了验证 AWS CLI 是否安装正确,开始配置 AWS CLI:

登录你的 AWS 管理控制台,取得 AWS 访问密钥 ID Access Key ID 安全访问密钥 Secret Access Key

如果还没完成创建,请先创建,并把它们复制到安全的地方。

然后回到命令行,运行以下命令:

$ aws configure
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxx
Default region name [None]: us-west-2
Default output format [None]: json
$

以上的证书会被保存到这个文件:

$ cat  ~/.aws/credentials

上面的命令的输出:

运行 aws 命令列出你账户中的 s3 储存和 VPC:

$ aws s3 ls
$ aws ec2 describe-vpcs

输出如下:

成功输出内容,说明你的 AWS CLI 已经配置完成。

这就是这篇文章的全部内容,请在下面的评论区发表你的疑问和反馈。


via: https://www.linuxtechi.com/how-to-install-aws-cli-on-linux/

作者:Pradeep Kumar 选题:lkxed 译者:littlebirdnest 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这篇文章中,我们将介绍如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址。

强烈建议在 Linux 服务器上使用静态 IP,因为它会在重启后保持不变。静态 IP 对邮件服务器、Web 服务器和文件服务器等服务器起着重要作用。

准备条件

  • 最小安装的 Ubuntu 服务器 22.04
  • 具有 sudo 管理员权限的普通用户

在 Ubuntu 服务器 22.04 中,网络由 netplan 程序控制,因此我们将使用 netplan 在 Ubuntu 服务器上配置静态 IP 地址。

注意:我们不能使用 nmcli 程序,因为它不是 Ubuntu 服务器上默认安装的一部分。

在 Ubuntu 服务器 22.04 上设置静态 IP 地址

登录到你的 Ubuntu 服务器 22.04,查找 netplan 配置文件。它位于 /etc/netplan 目录下。

$ cd /etc/netplan/
$ ls -l
total 4
-rw-r--r-- 1 root root 116 Oct 12 04:03 00-installer-config.yaml
$

运行以下 cat 命令以查看 00-installer-config.yaml 的内容。

注意:配置文件的名称可能因你的设置而异。由于它是一个 yaml 文件,因此请确保在编辑时保持缩进和语法。

$ cat 00-installer-config.yaml

输出:

Default-Content-netplan-ubuntu-server

根据上面的输出,它说我们有 ens33 接口,它正在从 DHCP 服务器获取 IP。查看接口名称的另一种方法是通过 ip 命令。

现在,要配置静态 IP 代替 DHCP,使用 vinano 编辑器编辑 netplan 配置文件并添加以下内容。

$ sudo vi 00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.1.247/24
      nameservers:
        addresses: [4.2.2.2, 8.8.8.8]
      routes:
        - to: default
          via: 192.168.1.1
  version: 2

保存并关闭文件。

Updated-Netplan-Config-File-Content-Ubuntu-Server

在上面的文件中,我们使用了以下内容,

  • ens33 为接口名称
  • 用于设置静态 IP 的地址
  • nameservers 用于指定 DNS 服务器的 IP
  • 用于指定默认网关的路由

注意:根据你的环境更改 IP 详细信息和接口名称。

要是上述修改生效,请使用以下 netplan 命令应用这些更改:

$ sudo netplan apply

运行以下 IP 命令查看接口上的 IP 地址:

$ ip addr show ens33

要查看默认路由,请运行:

$ ip route show

上述命令的输出。

ip-addr-route-command-output-ubuntu-server

完美,以上命令的输出确认静态 IP 和路由配置成功。

这就是这篇文章的全部内容。请在下面的评论部分发表你的问题和反馈。


via: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这篇教程中,我们将图解 Rocky Linux 9 安装步骤。

Rocky 企业软件基金会 Rocky Enterprise Software Foundation 已经发布了它的最新的操作系统 “Rocky Linux 9”。Rocky Linux 是针对工作站和服务器的自由而开源的操作系统。它被认为是 CentOS Linux 的继承者。

Rocky Linux 9 是 RHEL 9 的复制品,其开发代号是“Blue Onyx”。Rocky Linux 和 RHEL 之间的主要不同是,它有它自己的名为 “Peridot” 的开源构建系统。

Rocky Linux 9 的更新和特色

  • Gnome 40 是默认的桌面环境
  • 在 XFS 文件系统上支持 直接访问 Direct Access (DAX)操作
  • 更新了运行时和编译器,如 GCC 11.2.1 、LLVM 13.0.1 、Rust 1.58.1 和 Go 1.17.1
  • 更新了开发工具链,如 Python 3.9 、Node.js 16 、Ruby 3.0.3 、Perl 5.32 和 PHP 8.0
  • ssh 默认禁用了 root 用户身份验证
  • 更新了 OpenSSL 3.0,改进了 Cockpit 网页主控台
  • 社区提供支持到 2032 年 05 月 31 日

前置条件

  • 2 GB 及更多的内存
  • 2 个 CPU 核心(1.1 GHz 及更高)
  • 20 GB 硬盘空间
  • 可启动介质(USD 或 DVD)
  • 互联网连接(可选)

不再耽误时间,让我们直接进入 Rocky Linux 9 的安装步骤:

1、下载 Rocky Linux 9 的 ISO 文件

使用下面的官方网址来下载 ISO 文件

Rocky Linux 9 ISO

在你下载 ISO 文件后,使用已下载的 ISO 文件制作一个可启动介质(USB/DVD)。

在 Windows 中,你可以利用 Rufus 软件来使用 ISO 文件来制作可启动 USB 驱动器。在 Linux 中,参考下面的内容:

在 Ubuntu / Linux Mint 上,如何创建可启动 USB 驱动器

2、使用可启动媒介盘启动系统

在你计划安装 Rocky Linux 9 的硬件系统上,BIOS 设置中将可启动介质从硬盘驱动器更改为 USB 驱动器, 重新启动它。

在硬件系统使用可启动介质启动后,我们将看到下面的屏幕,

Select-Install-Rocky-Linux-9-option

选择第一个选项, 安装 Rocky Linux 9.0 Install Rocky Linux 9.0 ,并按下 回车 enter 按键。

3、选择首选语言

选择安装过程的首选语言,然后单击 继续 Continue 按钮,

Preferred-Language-for-RockyLinux9-Installation

4、安装过程摘要

在这个步骤中,我们将看到如下的初始安装摘要。要开始安装,首先,我们必须完成标记项目,如 安装目标 Installation Destination 用户设置 User settings

除了已标记的项目外,我们也可以更改现有的项目,只需要按照你的要求单击它们就可以进行更改。

Initial-Installation-Summary-Rocky-Linux9

配置安装目标

在这个项目中,我们将为 Rocky Linux 具体指定分区方案。单击 安装目标 Installation Destination

在这里,我们可以为 存储配置 storage configuration 分区方案 partition scheme 选择 自动 automatic 选项或 自定义 custom 选项。

在自动选项中,安装程序将在磁盘上自动地创建分区,而自定义选项允许我们在磁盘上手动创建分区。

Choose-custom-Storage-Configuration-Rocky-Linux9

在这篇指南中,我将使用 自定义 Custom 选项,单击 执行 Done 按钮。

Standard-Partition-Scheme-RockyLinux9

在该 40 GB 的磁盘上,我们将创建以下分区,

  • /boot:2GB(xfs 文件系统)
  • /:10 GB(xfs 文件系统)
  • /home:25 GB(xfs 文件系统)
  • 交换分区:2 GB

开始创建分区,选择 标准分区 Standard Partition 方案,然后单击 “+” 符号。

创建第一个分区,大小为 2 GB 的 /boot 分区,

Boot-Partition-RockyLinux9-Installation

单击 添加挂载点 Add mount point 按钮。

类似地,接下来分别创建大小为 10 GB 的 / 分区和 25 GB 的 /home 分区。

Slash-Partition-Rocky-Linux9-installation

Home-Partition-Rocky-Linux9-Installation

现在,创建最后一个分区,大小为 2 GB 的交换分区,(LCTT 校注:如果你的内存非常多,你可以选择不创建交换分区。另外,对于生产环境,建议将存储数据的目录单独划分分区。)

Swap-Partition-RockyLinux9-Installation

在你完成手动分区后,单击 执行 Done 按钮来完成这个项目。

Finish-Manual-Partitioning-RockyLinux9-Installation

选择 接受更改 Accept Changes 按钮来将这些更改写入磁盘。它也将返回到安装摘要屏幕。

Accept-Changes-to-Write-on-Disk-RockyLinux9

配置用户设置

用户设置 User Settings 下,单击 root 密码 Root Password 按钮。

Set-Root-Password-RockyLinux9-Instalation

设置 root 用户的密码,并单击 执行 Done 按钮。

再次回到 用户设置 User Settings 下,单击 用户创建 User Creation 按钮,具体指定本地用户的详细信息,例如用户名称和密码。

Local-User-Create-During-RockyLinux9-Installation

单击 执行 Done 按钮,它也将返回到安装摘要。

现在,我们准备开始安装,单击 开始安装 Begin Installation 按钮,

Begin-Installation-Option-RockyLinux9

5、安装过程开始

在这一步骤中,安装程序已经开始了,并在正在进行中,

RockyLinux9-Installation-Progress

在安装过程完成后,安装程序将提示你重新启动系统。

Reboot-System-after-RockyLinux9-Installation

单击 重新启动系统 Reboot System 按钮。

注意:不要忘记在 BIOS 设置中将可启动介质从 USB 启动更改为硬盘驱动器启动。

6、安装后的登录屏幕和桌面环境

在成功安装后,当系统启动时,我们将看到下面的登录屏幕:

RockyLinux9-Loginscreen-Post-Installation

使用我们在安装期间创建的用户名称和密码,按下 回车 enter 按键来登录。

Desktop-Env-RockyLinux9

打开终端,依次运行下面的命令:

$ sudo dnf install epel-release -y
$ sudo dnf install neofetch -y

现在,来验证系统的详细信息,运行 neofetch 命令:

$ neofetch

neofetch-rockylinux9-post-installation

这就是这篇指南的全部内容,我希望它对你有用。请在下面的评论区贴出你的疑问和反馈。


via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/

作者:Pradeep Kumar 选题:lkxed 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

极客们好,将 Ubuntu 22.04(Jammy Jellyfish)启动到 救援 Rescue 紧急 Emergency 模式可以重置忘记的用户密码、修复文件系统错误,以及在启动过程中禁用或启用 systemd 服务。

在这篇文章中,我们将学习如何启动 Ubuntu 22.04 LTS 系统进入救援和应急模式。救援模式类似于单用户模式,所有的故障排除步骤都在这里进行。救援模式加载最小的环境并挂载根文件系统。

而在紧急模式下,我们得到的是单用户 Shell,而不启动任何系统服务。因此,当我们无法启动系统进入救援模式时,就需要紧急模式。

启动 Ubuntu 22.04 进入救援或单用户模式

前往你想启动到救援或单用户模式的目标系统。在启动时按下 SHIFT + ESC 键,进入 GRUB 引导加载器页面。

Default-Grub-Screen-Ubuntu-22-04

选择第一个选项 “Ubuntu”,并按 e 键进入编辑模式。

在以 linux 开头的一行末尾,删除字符串 $vt_handoff 并添加字符串 systemd.unit=rescue.target

rescue-target-ubuntu-22-04

做完修改后,按 Ctrl + XF10 在救援模式下启动。

Troubleshooting-Commands-in-Rescue-Mode

进入救援模式后,运行所有的故障排除命令,并运行 systemctl reboot 命令来重启系统。

另一种启动系统进入救援模式的方法

重新启动系统并按下 ESC + Shift 键,进入 GRUB 启动界面。

选择第二个选项 “ Ubuntu 高级选项 Advanced Options for Ubuntu ”->选择“ 恢复模式 recovery mode ”选项并点击回车->选择 root(进入 root shell 提示符) root (Drop to root shell prompt)

下面是一个例子:

Boot-Ubuntu-22-04-Rescue-Mode

当你有了 root Shell,运行命令来恢复和修复系统问题,最后使用 systemctl reboot 来重启系统。

引导 Ubuntu 22.04 进入紧急模式

要启动系统进入紧急模式,首先进入 GRUB 页面。

Default-Grub-Screen-Ubuntu-22-04

选择第一个选项 “Ubuntu” 并按 e 键进行编辑。寻找以 linux 开头的一行,移到该行的末尾,删除字符串 $vt_handoff 并添加字符串 systemd.unit=emergency.target

Emergency-Mode-Ubuntu-22-04

Ctrl + XF10 将系统启动到紧急模式。

Command-in-Emergency-Mode-Ubuntu-22-04

同样,在紧急模式下,你可以在这个模式下执行所有的故障排除,完成后,就用 systemctl reboot 命令重启系统。

这篇文章的内容就这些。文章内容丰富,不要犹豫,请在你的技术朋友中分享它。请在下面的评论区发表你的疑问和反馈。


via: https://www.linuxtechi.com/boot-ubuntu-22-04-rescue-emergency-mode/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你好,技术兄弟,最近红帽发布了最新的操作系统 RHEL 9,RHEL 9 满足了混合云的所有要求。它可以安装在物理服务器、虚拟机和容器镜像中。

当我们没有订阅的时候,想安装软件包来做实验,那么设置本地的 Yum 或 DNF 仓库将是很方便的。

在本指南中,我们将介绍如何在 RHEL 9 上使用 DVD 或 ISO 文件一步一步地创建本地 Yum/DNF 资源库。

创建本地 Yum/DNF 资源库的先决条件:

  • 最小化安装 RHEL 9 系统
  • 具有管理权限的 sudo 用户
  • RHEL 9 DVD 或 ISO 文件

1)挂载 RHEL 9 ISO 文件或 DVD

我们假设 RHEL 9 iso 文件已经被复制到系统中。运行下面的挂载命令,将 ISO 文件挂载到 /opt/repo 文件夹。

$ sudo mkdir /var/repo
$ sudo mount -o loop rhel-baseos-9.0-x86_64-dvd.iso /var/repo/

Mount-RHEL9-ISO-File-Command

如果是 DVD 光盘,运行:

$ sudo mount /dev/sr0 /var/repo/

2)在 /etc/yum.repos.d/ 目录中创建仓库文件

/etc/yum.repos.d/ 目录下创建一个名为 “rhel9-local.repo` 的仓库文件,内容如下:

$ sudo vi /etc/yum.repos.d/rhel9-local.repo
[Local-BaseOS]
name=Red Hat Enterprise Linux 9 - BaseOS
metadata_expire=-1
gpgcheck=1
enabled=1
baseurl=file:///var/repo//BaseOS/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[Local-AppStream]
name=Red Hat Enterprise Linux 9 - AppStream
metadata_expire=-1
gpgcheck=1
enabled=1
baseurl=file:///var/repo//AppStream/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

保存并关闭该文件。

RHEL8-Local-Repo-File

3)刷新 Yum/DNF 和订阅管理器的缓存

执行以下命令来清理 Yum 或 DNF 和订阅管理器的缓存。

$ sudo dnf clean all
$ sudo subscription-manager clean

DNF-Subscription-Manager-Clean

在上面的输出中,我们得到一个警告信息 This system is not registered with an entitlement(系统没有注册权限)。所以,为了抑制这个警告信息,编辑文件 /etc/yum/pluginconf.d/subscription-manager.conf,将参数 enabled=1 改为 enabled=0

$ sudo vi /etc/yum/pluginconf.d/subscription-manager.conf

Disable-Subscription-Parameter-RHEL-9

保存并退出该文件。

4)使用本地仓库安装软件包

现在我们都准备好测试我们的本地仓库了。运行下面的命令来查看配置仓库。

$ sudo dnf repolist

输出:

DNF-Repolist-RHEL-9

现在,试试用 dnf 命令通过上面配置的本地仓库安装软件包。

$ sudo dnf install nfs-utils

输出:

Install-RPM-Package-via-local-repo-rhel9

Package-Installation-Completion-RHEL9-DNF-Command

完美,上述输出证实了 nfs-utils 包及其依赖项已经通过本地配置的 Yum 或 DNF 仓库成功安装。

这就是本指南的全部内容。我希望你觉得它有参考价值。请在下面的评论区发表你的疑问和反馈。


via: https://www.linuxtechi.com/create-local-yum-dnf-repository-rhel/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出