配置ftp方式的局域网yum源:本地yum源+ftp方式
搭建环境:
vmware
centos6.5
yum源仓库的rmp包源来自取自CentOS-6.5-x86_64-bin-DVD1.iso
一、配置本地系统镜像yum源
1.将CentOS-6.5-x86_64-bin-DVD1.iso文件上传到/mnt/iso上:
(1)创建iso文件夹及cdron文件夹:
(2)用Xftp上传CentOS-6.5-x86_64-bin-DVD1.iso文件到/mnt/iso上:
(3).将/mnt/iso/CentOS-6.5-x86_64-bin-DVD1.iso挂载到/mnt/cdron/下,并用df -h命令查看:
2.将/mnt/cdron/目录下的所用文件复制到/opt/下(即将yum源仓库放在/opt目录下):
完成后如下图:
3.切换到/opt/目录下:删除*.html、删除CentOS/repodata/TRANS.TBL
4.安装createrepo工具,生成YUM通用数据库:
(1)切换到/mnt/cdron/Packages下
(2)直接用rpm手动安装createrepo(将报错,产生依赖关系缺包):
(3)报错,要先安装python-deltarpm(还将报错,还产生依赖关系缺包):
(4)报错,要先安装deltarpm = 3.5-0.5.20090913git.el6:
这次没报错了,安装成功!!
(5)执行createrepo -g /opt/repodata/b4e0b9342ef85d3059ff095fa7f140f654c2cb492837de689a58c581207d9632-c6-x86_64-comps.xml /opt/命令生成YUM通用数据库:
生成YUM通用数据库完成:
5.修改/etc/yum.repos.d/local-yum.repo配置文件(local-yum.repo文件为自己新添加的):
(1)vi /etc/yum.repos.d/local-yum.repo
(2)添加内容如下:
此处baseurl=file:///pot/为yum源仓库的所在目录!其他相关参数自行了解
(3)然后清除一下:
至此,本地yum源配置成功!
二、FTP方式配置局域网yum源
在服务端(我的yum源服务端的IP为192.168.195.132):
1.安装vsfptd并开启
(1)yum install vsftpd
(2)查看vsftpd状态
(2)开启vsftpd并查看是否开启
(3)设置vsftpd自启动
2.修改vsftpd 服务被登录之后的默认登陆位置
(1)vsftp的匿名用户为 linux系统的ftp 用户.可以修改/etc/passwd ,将ftp用户的 home目录, 这里我设置成为了根目录 .(也就是说client通过ftp登录yum源服务器时默认登入到yum服务器的目录,值得注意的是路径不对会造成client访问报错,文末会讨论)
(1).在/etc/sysconfig/iptables-config修改:
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
(2)在/etc/sysconfig/iptables 找到
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT这一句, 并在它上方添加下面一句限制局域网权限 .
-A INPUT -m tcp -p tcp -s 192.168.195.132/24 --dport 21 -j ACCEPT (红色字段为yum源服务端的IP)
客户端(IP为192.168.195.133):
1.修改vi /etc/yum.repos.d/nagios1.repo(nagios1.repo为自己新建的):
此处对baseurl=ftp://192.168.195.132/opt进行解释一下:
当client客户端要进行yum相关命令操作进行安装软件时,会通过ftp协议访问到192.168.195.132(yum源服务端)的/opt/Packages/下寻找相应的rpm包并下载到本地(因为我们在服务端配置本地yum源时把yum仓库放在了/opt/下),然后进行安装的。又因为我们修改vsftpd 服务被登录之后的默认登陆位置 为根目录/下,所以配置baseurl=ftp://192.168.195.132/opt!!如果修改vsftpd 服务被登录之后的默认登陆位置 为/opt/下,那么应该配置baseurl=ftp://192.168.195.132/!!!baseurl必须路径必须配置正确,否则会报如下的错误:
2.测试
成功!!
###################################################################################################################################
文末记录一下在本次ftp方式局域网yum源配置中的过程吧:
本渣第一次配置ftp方式局域网yum源,当然首先打开搜索引擎参考一下大牛的博客啦,找了几篇博客参考,然后按照上面的步骤一步一步进行啦。很快在yum源服务端配置完了,测试也成功了!嘿嘿,接下来当然是配置客户端啦,配置完了之后测试:yum clean all 然后 yum list |wc -l 。然后一看,报错:
卧槽!!跟博客上的输出结果不一样啊。安慰自己,没事没事。可能是自己敲错了字符而已,然后再一次重复步骤,发现并没有敲错字符!!嘿嘿,最尴尬的事情莫过于步骤跟大牛的一模一样,但是大牛的输出结果正确,而自己的报错。GG!!!当然啦,将报错信息copy然后搜索一下呀!!结果试了好几个方法并不能解决!!!大写的尴尬!!当然啦,向身边的大牛请教啊!!!后来发现客户端在配置/etc/yum.repos.d/nagios1.repo文件时baseurl路径写错了,因为在yum源服务端修改vsftpd 服务被登录之后的默认登陆位置为/var/ftp/pub/ ,而客户端/etc/yum.repos.d/nagios1.repo的baseurl=192.168.195.132/opt。所以导致client客户端找不到yum源服务端的yum源仓库而报错Error: Cannot retrieve repository metadata (repomd.xml) for repository: nagios1.都是盲目执行别人的步骤的锅啊!!经请教之后:在yum源服务端修改
etc/vsftpd/vsftpd.conf文件,在文件末添加anon_root=/:
然后重启一下vsftpd:(ervice vsftpt restart)、yum clean all。然后client就可以访问yum源服务端了!!!!后来自己尝试在yum源服务端将vsftpd服务被登录之后的默认登陆位置/var/ftp/pub/修改成根目录/下;并把刚刚在yum源服务端etc/vsftpd/vsftpd.conf文件上添加的 anon_root=/注释掉,然后测试在client上也能成功访问到yum源服务端!!
总之,服务端的vsftpd服务被登录之后的默认登陆所在路径(或服务端的etc/vsftpd/vsftpd.conf下anon_root参数的路径)+客户端/etc/yum.repos.d/nagios1.repo(我的为nagios1.repo,不要盲目复制)文件baseurl的IP后的路径等于你在服务端yum源仓库的路径(即Packages所在的目录路径)!!!到此,ftp方式局域网yum源的配置成功了!!