服务搭建系列(1):基础环境配置
前言:在分享部分Linux基础知识后,打算开启一份新的专题,使用1060a来搭建各种基础服务,如DNS,DHCP,Apache等服务。每一章内容会从服务的作用,工作原理,配置案例来编写文件,同时希望各位小伙伴能够提供自己希望了解的服务,本人会尽自己所能去完成文档编写。
一、主机名设置
通常在服务器集群当中为了区分每台设备,我们会给每天设备设置主机名,并通过hosts文件来完成主机名与IP地址映射关系,来方便我们管理集群中的所有服务器。
(1)设置主机名
[root@localhost Desktop]# hostnamectl set-hostname servera
(2)修改hosts文件,完成主机名与IP地址的映射关系
[root@servera ~]# echo "192.168.200.10 servera" >> /etc/hosts
[root@servera ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.10 servera
[root@servera ~]# ping servera -c 2
PING servera (192.168.200.10) 56(84) bytes of data.
64 bytes from servera (192.168.200.10): icmp_seq=1 ttl=64 time=0.046 ms
64 bytes from servera (192.168.200.10): icmp_seq=2 ttl=64 time=0.060 ms
--- servera ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 0.046/0.053/0.060/0.007 ms
二、IP地址配置
uos-server使用NerworkManaer工具来管理网络。该工具提供了两个命令来进行网络配置,分别是nmtui
和nmcli
。其中nmtui
为图形化配置方式,nmcli
是一个命令行工具。
(1)nmcli
语法:
nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor} [COMMAND] [ARGUMENTS...]
对网卡设备进行管理
1.查看网卡状态
[root@servera ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
lo loopback 未托管 --
2.断开网卡和配置文件的链接
[root@servera ~]# nmcli device disconnect ens33
[root@servera ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已断开 ens33
lo loopback 未托管 --
3.链接网卡和配置文件
[root@servera ~]# nmcli device connect ens33
成功用 "ens33a80708d3-c757-4b79-a0cf-b399cd68482c" 激活了设备 ""。
注:当网卡没有对应的配置文件的时候,重新连接配置文件会创建一个同名的网卡配置文件,使用DHCP的方式获取IP地址。
对网卡配置文件进行管理
1.查看网卡配置文件
[root@servera ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 a80708d3-c757-4b79-a0cf-b399cd68482c ethernet ens33
2.添加一个网卡配置文件
[root@servera ~]# nmcli connection add type ethernet ifname ens33 con-name ens33-cfg ipv4.method manual ipv4.addresses 192.168.200.10/24 ipv4.gateway 192.168.200.2 ipv4.dns 114.114.114.114 autoconnect yes
连接 "ens33-cfg" (82d92839-e55b-42ff-ad87-0a847ef30745) 已成功添加。
type:网络类型
ifname:网卡设备名
con-name:配置文件名
ipv4.method:获取IP地址方式,manual为手动配置,auto为dhcp获取。
ipv4.address:配置的IP地址和掩码
ipv4.gateway:配置网关
ipv4.dns:配置的dns地址
autoconnect:是否开机激活此链接。
3.修改IP地址
[root@servera ~]# nmcli connection modify ens33-cfg ipv4.addresses 192.168.200.20/24
4.重新读取配置文件
[root@servera ~]# nmcli connection up ens33-cfg
5.删除配置文件
[root@servera ~]# nmcli connection delete ens33-cfg
成功删除连接 "ens33-cfg" (82d92839-e55b-42ff-ad87-0a847ef30745)。
6.手动修改文件后重新读取
[root@servera ~]# nmcli connection reload
三、软件源管理
(1)RPM软件包介绍
RPM包管理器最初是由红帽开发,该程序提供一种标准的方式打包软件进行分发。红帽为红帽企业Linux提供的所有软件包都以RPM软件包的形式提供。
RPM软件包文件名由四个元素组成再加上.rpm后缀:name-version-release.arch
vsftpd-3.0.5-4.el9.x86_64.rpm
name-version-release.arch
name是软件包名字(vsftpd)
version是原始软件包的版本号(3.0.5)
release是基本该版本软件包的发行版本,由软件打包商提供(4.el9)
arch是编译软件包运行的处理器架构(x86_64)。
noarch表示此软件包内容不限定架构
x86_84表示64位的x86架构
aarch64表示64位的ARM架构
当我们从存储库中安装软件包的时候,只需要软件包的名称。如果存在多个版本,则会安装版本号高的软件包,如果一个版本存在多个发行版,则会安装发行版本号更改的软件包。
每个RPM软件包是包含以下三个组成部分:
- 软件包安装的文件。
- 与软件包相关的信息,是否要求按照其他软件包,授权许可信息,软件包更新日志等详细信息。
- 在安装、更新或删除时存在或者运行的脚本。
软件提供商使用GPG密钥对RPM软件包进行数字签名。RPM系统通过确认软件包的GPG密钥签名来验证软件包的完整性。如果GPG签名不匹配,RPM系统拒绝安装软件包。
(2)RPM使用
rpm工具可以用来查看软件信息以及安装和更新软件包。
RPM查询
查询已经安装的软件包
# rpm -qa
查询软件包信息
# rpm -qi yum
查询软件包安装的文件
# rpm -ql yum
仅查询软件包安装的配置文件
# rpm -qc yum
仅列出软件包安装的文档文件
# rpm -qd yum
查询安装或删除软件包前后运行的脚本
# rpm -q --scripts vsftpd
rpm安装与卸载
使用rpm安装软件包
# rpm -ivh vsftpd-3.0.5-4.el9.x86_64.rpm
warning: vsftpd-3.0.5-4.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%])
Preparing... ################################# [100%])
Updating / installing...
1:vsftpd-3.0.5-4.el9 ################################# [100%])
使用rpm卸载软件包
# rpm -e vsftpd
常见选项
-i 安装
-v 显示详细信息
-h 显示进度条
-e 移除软件包
--replacepkgs 重新安装。相当于--force
--oldpackage 安装旧版的软件包
--replacefiles 忽略冲突
--nodeps 忽略依赖性关系
rpm的缺陷
以使用rpm安装samba来看,在下面的安装过程中,可以发现软件包直接存在依赖关系,rpm无法自动处理这里依赖关系,需要我们根据依赖关系先后去安装软件包。
[root@servera Packages]# rpm -ivh samba-4.17.5-102.el9.x86_64.rpm
warning: samba-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
libREG-FULL-samba4.so()(64bit) is needed by samba-0:4.17.5-102.el9.x86_64
libREG-FULL-samba4.so(SAMBA_4.17.5_SAMBA4)(64bit) is needed by samba-0:4.17.5-102.el9.x86_64
libRPC-SERVER-LOOP-samba4.so()(64bit) is needed by samba-0:4.17.5-102.el9.x86_64
libRPC-SERVER-LOOP-samba4.so(SAMBA_4.17.5_SAMBA4)(64bit) is needed by samba-0:4.17.5-102.el9.x86_64
libnetapi = 0:4.17.5-102.el9 is needed by samba-0:4.17.5-102.el9.x86_64
libxattr-tdb-samba4.so()(64bit) is needed by samba-0:4.17.5-102.el9.x86_64
libxattr-tdb-samba4.so(SAMBA_4.17.5_SAMBA4)(64bit) is needed by samba-0:4.17.5-102.el9.x86_64
samba-common-tools = 0:4.17.5-102.el9 is needed by samba-0:4.17.5-102.el9.x86_64
samba-dcerpc = 0:4.17.5-102.el9 is needed by samba-0:4.17.5-102.el9.x86_64
samba-libs = 0:4.17.5-102.el9 is needed by samba-0:4.17.5-102.el9.x86_64
//安装samba发现缺少依赖包,需要安装依赖包
[root@servera Packages]# rpm -ivh samba-libs-4.17.5-102.el9.x86_64.rpm
warning: samba-libs-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:samba-libs-0:4.17.5-102.el9 ################################# [100%]
[root@rhce Packages]# rpm -ivh samba-dcerpc-4.17.5-102.el9.x86_64.rpm
warning: samba-dcerpc-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
libnetapi = 0:4.17.5-102.el9 is needed by samba-dcerpc-0:4.17.5-102.el9.x86_64
libnetapi.so.1()(64bit) is needed by samba-dcerpc-0:4.17.5-102.el9.x86_64
libnetapi.so.1(NETAPI_1.0.0)(64bit) is needed by samba-dcerpc-0:4.17.5-102.el9.x86_64
//安装samba-dcerpc发现缺少依赖包,需要先安装依赖包。
[root@servera Packages]# rpm -ivh libnetapi-4.17.5-102.el9.x86_64.rpm
warning: libnetapi-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:libnetapi-0:4.17.5-102.el9 ################################# [100%]
[root@rhce Packages]# rpm -ivh samba-dcerpc-4.17.5-102.el9.x86_64.rpm
warning: samba-dcerpc-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:samba-dcerpc-0:4.17.5-102.el9 ################################# [100%]
[root@servera Packages]# rpm -ivh samba-common-tools-4.17.5-102.el9.x86_64.rpm
warning: samba-common-tools-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
samba-ldb-ldap-modules = 0:4.17.5-102.el9 is needed by samba-common-tools-0:4.17.5-102.el9.x86_64
[root@rhce Packages]# rpm -ivh samba-ldb-ldap-modules-4.17.5-102.el9.x86_64.rpm
warning: samba-ldb-ldap-modules-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:samba-ldb-ldap-modules-0:4.17.5-1################################# [100%]
[root@servera Packages]# rpm -ivh samba-common-tools-4.17.5-102.el9.x86_64.rpm
warning: samba-common-tools-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:samba-common-tools-0:4.17.5-102.e################################# [100%]
[root@servera Packages]# rpm -ivh samba-4.17.5-102.el9.x86_64.rpm
warning: samba-4.17.5-102.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:samba-0:4.17.5-102.el9 ################################# [100%]
依赖类型以及解决办法
- 树形依赖:a-b-c,要安装a,必选先安装b,而按照b需要先安装c。解决此依赖的办法就是从后往前安装,即先安装c,再安装b,最后安装a。
- 环形依赖:a-b-c-a,各个安装包之间的依赖关系构成环状。解决此类型依赖是用一条命令同时安装所有的软件包。
(3)dnf使用
使用rpm命令安装软件包不能自动解决依赖关系。为了解决这个问题,在基于RPM包管理上出现了新的软件包管理器。
使用dnf(yum)进行软件包管理,yum和dnf在命令上没有太大区别,在系统中开始已经逐渐开始转向DNF,但是yum也同样可以使用。
[root@servera ~]# ls -l /usr/bin/yum
lrwxrwxrwx 1 root root 5 5月 11 2023 /usr/bin/yum -> dnf-3
yum和dnf介绍
- YUM(全称为 Yellow dog Updater, Modified)是基于RPM包管理,能够从指定的YUM源服务器自动下载RPM包进行安装和更新,可以自动处理依赖性关系,并且一次安装所有依赖软件包。
- DNF(全称为Dandified yum)是新一代的rpm软件包管理器,克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。其余方面跟YUM差别不大。
yum和dnf使用
yum list
(dnf list
):查看已经安装和可用的软件包
# yum list NetworkManager*
# dnf list NetworkManager*
dnf search KEYWORD
:根据仅在名称和摘要字段中找到关键字列出软件包。
# dnf search NetworkManager
dnf info PACKAGENAME
:查看软件包的详细信息。
# dnf info yum
dnf provides PATHNAME:显示与指定的路径名匹配的软件包
# dnf provides /etc/httpd/conf/httpd.conf
dnf install -y PACKAGENAME
:获取并安装软件包,包括所有依赖项。
# dnf install -y httpd
dnf update -y PACKAGENAME
:获取指定软件包的较新版本,包括所有的依赖项。该操作通常会保留当前配置文件。但是在某些情况下,如果软件提供商认为旧文件不可用,则会对配置文件重命令。如果不指定包名,将会更新所有。
# dnf update -y httpd
dnf remove -y PACKAGENAME
:移除指定软件包,包括所有受支持的软件包。
# dnf remove -y httpd
dnf安装和删除各组软件
dnf也具有组的概念,即针对特定特定目的而一起安装的相关软件集合。一个组提供的软件包或在组里面有mandatory(必要安装的软件包)、default(默认会安装的软件包)或optional(可以不安装的软件包)。
命令 | 作用 |
| 显示已经安装和可用的组名称 |
| 显示组的相关信息 |
| 安装 |
| 移除 |
| 更新 |
dnf仓库配置
不论是dnf还是yum来安装软件包的时候,都需要依靠软件包仓库来完成,默认情况下是系统中存在一个名称为UnionTechOS.repo
的软件源仓库配置文件,在网络允许的情况下,我们可以直接只用该软件仓库。如果网络不允许,需要我们手动配置软件包仓库以便来使用dnf工具。
在系统关于仓库源的配置存放在/etc/yum.repos.d/
目录下,文件必选以.repo
结尾.
[root@servera ~]# mkdir /cdrow
[root@rhce ~]# mount /dev/sr0 /cdrow/
mount: /cdrow: WARNING: source write-protected, mounted read-only.
[root@servera ~]# vim /etc/yum.repos.d/local.repo
[AppStream]
name=AppStream
baseurl=file:///cdrow/AppStream
enabled=1
gpgcheck=0
[BaseOS]
name=BaseOS
baseurl=file:///cdrow/BaseOS
enabled=1
gpgcheck=0
[root@servera ~]# dnf clean all
[root@servera ~]# dnf repolist
[root@servera cdrow]# dnf repolist
仓库 id 仓库名称
AppStream AppStream
BaseOS BaseOS
UnionTechOS-20-AppStream UnionTechOS 20 AppStream
UnionTechOS-20-BaseOS UnionTechOS 20 BaseOS
UnionTechOS-20-Extras UnionTechOS 20 Extras
UnionTechOS-20-Plus UnionTechOS 20 Plus
UnionTechOS-20-PowerTools UnionTechOS 20 PowerTools
UnionTechOS-20-Update UnionTechOS 20 Update
以上配置就是服务配置的基本前提了。基本所有的服务配置都需要完整以上操作。如果在网络允许的情况下,可以不需要配置软件源仓库,使用系统自带的软件源仓库。
本人不才,在csdn中分享了一些自己在Linux学习过程中的一些知识积累,在分享的同时也在论坛中学习到了很多知识。现在想去拉起一个群聊,来分享知识,希望大家都能加入进来,分享自己所擅长的知识,本人也会在群里分享Linux,网络,docker,mysql等知识,同时也希望各位大佬能够帮助在下,完善自己的分享中的不足。