yum仓库(局域yum仓库搭建、本地仓库搭建)和nfs
文章目录
一、yum仓库的介绍
【1】原理
Yum软件仓库的作用是为了进一步简化RPM管理软件难度以及自动分析所需软件包及其依赖关系的技术。您可以把Yum想象成是一个硕大的软件仓库,里面保存有几乎所有常用的工具,而只需要说出所需的软件包名称,系统就会自动的为您搞定一切。
【2】分类
(1)线网yum源http://(要ping通外网才可以使用)
(2)局域网yum源ftp://(要ping通局域网才可以使用)
(3)本地yum源file://(是用光盘中的软件包)
【3】配置文件
yum仓库放置路径:/etc/yum.repos.d/
ftp站点:/var/ftp/
二、局域网yum源搭建(ftp)
【1】服务端配置
(1)挂载光盘
[root@localhost ~]# hostname server(为了实验方便临时修改主机名)
[root@localhost ~]# bash
[root@server ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 50G 4.5G 46G 9% /
/dev/mapper/centos-home xfs 245G 37M 245G 1% /home
/dev/sda1 xfs 1014M 238M 777M 24% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /mnt
(2)安装vsftp服务
[root@server ~]# yum install -y vsftpd
[root@server ~]# cd /var/
[root@server var]# ls(查看是否有ftp目录)
account cache db ftp gopher lib lock mail opt run target yp
adm crash empty games kerberos local log nis preserve spool tmp
(3)在ftp站点(/var/ftp/)中创建下载目录(centos7)
[root@server var]# cd ftp
[root@server ftp]# ls
pub
[root@server ftp]# mkdir centos7
[root@server ftp]# ls
centos7 pub
(4)将光盘的挂载点下所有复制到ftp下载目录中
[root@server ftp]# cp -rf /mnt/* centos7/ &(放在后台运行,可以继续执行后面的步骤)
[root@server ftp]# ls centos7/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@server ftp]# jobs(查看后台运行)
(5)创建yum索引环境
[root@server ftp]# mkdir other
[root@server ftp]# ls
centos7 other pub
[root@server ftp]# createrepo -g /mnt/repodata/repomd.xml other/(使用光盘的索引模板)
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
(6)启动vsftp服务
[root@server ~]# systemctl stop firewalld.service
[root@server ~]# setenforce 0
[root@server ftp]# systemctl start vsftpd
[root@server ftp]# netstat -natp |grep 21
tcp6 0 0 :::21 :::* LISTEN 2711/vsftpd
【2】客户端配置
(1)安装ftp服务源并查看连接
[root@client ~]# yum install -y ftp*
[root@client ~]# ftp 192.168.60.60(使用ftp连接服务器)
Connected to 192.168.60.60 (192.168.60.60).
220 (vsFTPd 3.0.2)
Name (192.168.60.60:root): ftp(匿名登录)
331 Please specify the password.
Password:(服务器的密码)
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls(查看站点信息)
227 Entering Passive Mode (192,168,60,60,47,117).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Jul 13 02:59 centos7
drwxr-xr-x 3 0 0 22 Jul 13 03:01 other
drwxr-xr-x 2 0 0 6 Apr 01 04:55 pub
226 Directory send OK.
(2)创建ftp本地服务源
[root@client ~]# cd /etc/yum.repos.d/
[root@client yum.repos.d]# mkdir backup
[root@client yum.repos.d]# mv C* backup
[root@client yum.repos.d]# touch centos7.repo
查看gpgkey的路径
[root@server ~]# cd /var/ftp/centos7/
[root@server centos7]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
其中RPM-GPG-KEY-CentOS-7就是密钥存放的文件,进入yum源写入相关信息。
[root@client yum.repos.d]# vim centos7.repo
[base]
name=base.centos7
baseurl=ftp://192.168.60.60/centos7(软件包路径)
enabled=1
gpgcheck=1(开启验证功能)
gpgkey=ftp://192.168.60.60/centos7/RPM-GPG-KEY-CentOS-7(密钥路径)
[other]
name=other.centos7
baseurl=ftp://192.168.60.60/other
enabled=1
gpgcheck=0
(3)清除本地yum缓存,重新加载缓存
[root@client yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base other
Cleaning up list of fastest mirrors
Other repos take up 21 M of disk space (use --verbose for details)
[root@client yum.repos.d]# yum list
三、搭建本地yum仓库(file)
【1】挂载光盘
[root@localhost ~]#mount /dev/cdrom /mnt(挂载光盘到/mnt目录下)
【2】移动线网yum源到文件夹中
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv C* backup/
[root@localhost yum.repos.d]# ls
backup
【3】创建本地yum源
[root@localhost yum.repos.d]# touch local.repo
[root@localhost yum.repos.d]# ls
backup local.repo
【4】在本地源中写入相关信息
[root@localhost yum.repos.d]# vim local.repo (编辑本地yum)
[local]
name=centos7
baseurl=file:///mnt(本地yum使用的路径光盘挂载的目录)
enabled=1
gpgcheck=0
【5】清除本地缓存并加载
[root@localhost yum.repos.d]# yum clean all(清空缓存)
[root@localhost yum.repos.d]# yum list(重新加载列表)
四、NFS共享储存
【1】原理
NFS 跟其他文件共享协议一样,也是采用了 C/S 架构。但是,NFS 只提供了基本的文件处理功能,而不提供任何 TCP/IP 数据传输功能。它需要借助 RPC 协议才能实现 TCP/IP 数据传输功能。NFS 文件系统对客户端来说是完全透明的,访问 NFS 文件系统上的文件或目录就跟在访问本地的文件或目录一样!
【2】配置文件
/etc/exports
【3】搭建
(1)在服务端添加共享的硬盘,格式化并挂载使用
1)添加新的磁盘并处理
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x6f618b27 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-52428799,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-52428799,默认为 52428799):
将使用默认值 52428799
分区 1 已设置为 Linux 类型,大小设为 25 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:26.8 GB, 26843545600 字节,52428800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f618b27
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 52428799 26213376 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
2)格式化磁盘
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1638336 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=6553344, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3199, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
3)挂载
临时挂载
[root@server ~]# mount /dev/sdb1 /mnt
[root@server ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 50G 4.5G 46G 9% /
/dev/mapper/centos-home xfs 245G 37M 245G 1% /home
/dev/sda1 xfs 1014M 238M 777M 24% /boot
tmpfs tmpfs 378M 24K 378M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 xfs 25G 33M 25G 1% /mnt
永久挂载
[root@server ~]#vim /etc/fstab
/dev/sdb1 /mnt xfs defaults 0 0
[root@server ~]#mount -a
(2)安装nfs-utils和rpcbind软件包,并设置开机自启动
为了实验清晰临时修改主机名
[root@localhost ~]# hostname server
[root@localhost ~]# bash
安装nfs相关的软件包
[root@server ~]# yum install -y nfs-utils
[root@server ~]# yum install -y rpcbind
(3)修改配置文件
[root@server ~]# vim /etc/exports
/mnt 192.168.60.0/24(rw,sync,no_root_squash)
(4)关闭防火墙、防护,开启nfs服务、查看端口状态、查看是否共享
[root@server ~]# systemctl stop firewalld.service
[root@server ~]# setenforce 0
[root@server ~]# systemctl start nfs
[root@server ~]# systemctl start rpcbind
[root@server ~]# netstat -natp |grep rpcbind
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 795/rpcbind
tcp6 0 0 :::111 :::* LISTEN 795/rpcbind
[root@server ~]# showmount -e(查看是否共享)
Export list for server:
/mnt 192.168.60.0/24
(5)在客户端安装http服务
[root@localhost ~]# hostname client
[root@localhost ~]# bash
[root@client ~]# systemctl stop firewalld
[root@client ~]# setenforce 0
setenforce: SELinux is disabled
[root@client ~]# yum install -y httpd
(6)挂载共享目录到网页目录下
临时挂载
[root@client ~]# mount 192.168.60.60:/mnt /var/www/html/
[root@client ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 4.2G 46G 9% /
devtmpfs devtmpfs 470M 0 470M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 8.3M 478M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 166M 849M 17% /boot
/dev/mapper/centos-home xfs 247G 37M 247G 1% /home
tmpfs tmpfs 98M 12K 98M 1% /run/user/42
tmpfs tmpfs 98M 0 98M 0% /run/user/0
192.168.60.60:/mnt nfs4 25G 33M 25G 1% /var/www/html
永久挂载
[root@client ~]# vim /etc/fstab
192.168.60.60:/mnt /var/www/html nfs defaults,_netdev 0 0
[root@client ~]# mount -a
(6)验证是否共享
[root@client ~]# vim /var/www/html/index.html
<h1>this is nfs web </h1>
[root@client ~]# systemctl start httpd
网页验证
查看服务器磁盘是否有客户端写的网页文件
[root@server ~]# cd /mnt
[root@server mnt]# ls
index.html
[root@server mnt]# cat index.html
<h1> this is nfs web </h1>
(7)模拟服务器宕机并处理
在服务端停止nfs共享模拟宕机
[root@server ~]# systemctl stop nfs
在客户端会出现查看挂载卡死
处理方法,ctrl+c结束查看,强制解挂载(不要自动补全)
[root@client ~]# umount -lf /var/www/html/
[root@client ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 4.2G 46G 9% /
devtmpfs devtmpfs 470M 0 470M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 8.4M 478M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 166M 849M 17% /boot
/dev/mapper/centos-home xfs 247G 37M 247G 1% /home
tmpfs tmpfs 98M 12K 98M 1% /run/user/42
tmpfs tmpfs 98M 0 98M 0% /run/user/0
五、samba文件共享服务
【1】功能介绍
Samba是一个能让Linux系统应用Microsoft网络通信协议的软件。而SMB是Server Message Block的缩写,即为服务器消息块。常见的五种访问用户的方式:user(用户模式)、share(共享模式)、ads(活动目录模式)、server(服务器模式)、domain(域模式)。
Samba最大的功能就是可以用于Linux与Windows系统直接的文件共享和打印共享,Samba既可以用于Windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。由于NFS(网络文件系统)可以很好地完成Linux与Linux之间的数据共享,因此Samba较多地用在了Linux与Windows之间的数据共享上面。
【2】配置文件相关参数
在samba的配置文件/etc/samba/smb.conf中关于集中模式的相关参数
(1)user模式下
security = user #####工作模式
username map = /etc/samba/smbusers #####别名登录设置,要在smbusers文件中添加别名
[user]
path = /opt/test #####访问的文件路径
browseable = yes ######允许访问
create mask = 0644 ######对文件的读写权限
directory mask = 0755 #######对目录的权限
valid users=zhangsan,lisi #######允许访问的允许
write list=zhangsan ######允许写入的用户
hosts deny=192.168.60. 10.0.0. #####访问控制列表,禁止某个或多个网段访问
在创建用户的时候可以创建samba密码
[root@hostlocal~]#sambapasswd -a zhangsan
[root@hostlocal~]#sambapasswd -a lisi
[root@hostlocal~]#pdbedit -L(查看samba密码列表用户)
zhangsan:500:
lisi:501:
[root@hostlocal~]#systemctl restart smb (重启samba服务)
pdbedit命令的相关参数
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。
在重启之前要到客户端清空用户缓存
用户别名访问修改smbusers文件的相关参数
[root@localhost samba]#vim smbusers
zhangsan = zhangsi zhangwu
(2)share模式下
security = share
[share]
path = /opt/sam #####访问的文件目录是自己创建的
public = yes ######允许公共访问
browseable = yes
writable = yes ######允许写入
create mask = 0644
directory mask = 0755
关闭防火墙,防护策略等重启服务器
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0
[root@localhost ~]#systemctl restart smb
然后在客户机上面搜索服务器的IP地址,服务器就可以和客户机之间共享文件了。
【3】基于客户端共享文件
(1)在服务器上面创建一个挂载目录
[root@localhost ~]# mkdir samba
[root@localhost ~]# ls
samba
(2)在客户机上面新建一个共享的文件
(3)使用匿名访问使用guest用户
(4)修改本地策略
1)打开本地策略命令
2)从本地拒绝访问权限中删除guest用户
3)在网络访问模型中设置仅来宾
4)更新策略gpupdate /force
5)共享客户机创建的文件夹,并给予权限
给予权限
(5)在服务器上面挂载使用
[root@localhost ~]# smbclient -L 192.168.60.12
Enter MYGROUP\root's password: (密码为空)
Anonymous login successful
[root@localhost ~]# mount.cifs //192.168.60.12/benet /samba
[root@localhost ~]#cd /samba
[root@localhost ~]#cp -r /samba /opt/samba.bak
挂载上去之后就可以使用cp命令拷贝,这样也达到了共享的效果。