博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用本地文件创建本地yum源
阅读量:2388 次
发布时间:2019-05-10

本文共 11385 字,大约阅读时间需要 37 分钟。

                                   第一步

    用本地文件创建本地yum源

1. 创建iso存放目录和挂载目录

mkdir /mnt/iso 

mkdir /mnt/cdrom

2. 将iso镜像文件上传到/mnt/iso文件夹下

3. 将/mnt/iso/下的iso文件挂载到/mnt/cdrom目录

       mount -o loop /mnt/iso/XXXXX.iso /mnt/cdrom 

       <注:挂载完之后对其操作会提示设备繁忙,此时需要umount解开挂载才行>

         查看是否挂载成功: df -h

    <用来查看系统中所有挂载的,mount也可以>

4. 最关键的一步>如果/etc/yum.repos/下面有其它的*.repo文件,先创建个文件夹,将这些*.repo先转移到文件夹中,自己写一个.repo的文件

   mkdir /etc/yum.repos.d/bak

   mv *.repo /etc/yum.repos.d/bak 

   然后创建自己的.repo文件

   vi myself.repo

 内容如下:

 [base]

  name=RedHat

  #注:这里的baseurl就是你挂载的目录,在这里是/mnt/cdrom

  baseurl=file:///mnt/cdrom    

  #注:这里的值enabled一定要为1  

  enabled=1                    

  gpgckeck的值无所谓

  gpgckeck=0

  #注:这个你cd /mnt/cdrom/可以看到这个key,这里仅仅是个例子

  gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-5   

                 

5. 测试:

   yum clean all

   yum install vim*  

                                    第二步

安装要用的软件

安装kvm模块

     #yum -y install qemu-kvm.x86_64

安装kvm调试工具(可以不安装)   

     #yum -y install qemu-kvm-tools.x86_64

安装python组件,主要用来记录创建vm时的xml文件

     #yum -y install python-virtinst.noarch

安装qemu组件,使用qemu命令来创建磁盘,启动虚拟机等(这个可能在安装时qemu-kvm.x86_64已安装)

     #yum -y install qemu-img.x86_64

安装网络支持工具

     #yum -y install bridge-utils.x86_64

安装虚拟机管理工具,使用virsh来管理虚拟机

     #yum -y install libvirt 

此时用 /sbin/ifconfig 查看会多出一个 virbr0 ,这是由于安装和启用了 libvirt 服务后生成的,libvirt 在服务器(host)上生成一个 virtual network switch (virbr0),host 上所有的虚拟机(guests)通过这个 virbr0 连起来。默认情况下 virbr0 使用的

是 NAT 模式(采用 IP Masquerade),所以这种情况下 guest 通过 host 才能访问外部。

大多数时候我们虚拟机使用的是 bridge(网桥)直接连到局域网里,所以这个 virbr0 不是必须的(注:不要搞混淆了,bridge 和这里的 virbr0 bridge 是互不相干的)。

如何关掉这个 virbr0 呢?先 net-destroy 然后 net-undefine,最后别忘了重启 libvirtd 让设置生效: 

chkconfig NetworkManager off

# virsh net-list 

Name                State      Autostart 

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

default              active    yes

# virsh net-destroy default 

Network default destroyed 

# virsh net-undefine default 

Network default has been undefined 

# service libvirtd restart 

Stopping libvirtd daemon:                                  [  OK  ] 

Starting libvirtd daemon:                                  [  OK  ]

这样就关掉了  virbr0  在使用双机软件过程中,如果系统是red hat 5.x 默认系统安装完成后为xen内核,那么xen内核引导启动后就会有虚拟网卡(vethx、vif0.x、virbr0、xenbr1等)存在。 

这就会直接导致双机软件的两台机器中都会有相同的IP地址存在(virbr0网卡的IP地址都为192.168.122.1)。所以会导致双机系统中的主机关机时,备机不会接管的现象。所以,需要将virbr0卸载掉

重新启动

四、.检查kvm模块是否安装完成

  #lsmod | grep kvm

  会显示两个模块

  kvm_intel/ kvm_amd 

  kvm

检查物理主机虚拟化完成情况

  #virsh list

   Id Name                 State

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

出现如上表明已装好了

五.设置网卡bridge模式

单网卡桥接

#cd /etc/sysconfig/network-scripts/

#vi  ifcfg-eth0

加BRIDGE=br0

cp ifcfg-eth0 ifcfg-br0

改 DEVICE=br0

TYPE=Bridge

还要删掉system name uuid等

#service network restart

多网卡 桥接 

cp ifcfg-eth0 ifcfg-br0 

cp ifcfg-eth1 ifcfg-br1

cp ifcfg-eth2 ifcfg-br2

分别 修改  ifcfg-eth0 ifcfg-br0    ifcfg-eth0 增加 BRIDGE=br0 ,删除 IPADDR和NETMASK ,ifcfg-br0 增加 TYPE=Bridge,增加ifcfg-eth0中的IPADDR和NETMASK

分别 修改  ifcfg-eth1 ifcfg-br1    ifcfg-eth1 增加 BRIDGE=br1 ,删除 IPADDR和NETMASK ,ifcfg-br1 增加 TYPE=Bridge,增加ifcfg-eth1中的IPADDR和NETMASK

分别 修改  ifcfg-eth2 ifcfg-br2    ifcfg-eth2 增加 BRIDGE=br2 ,删除 IPADDR和NETMASK ,ifcfg-br2 增加 TYPE=Bridge,增加ifcfg-eth2中的IPADDR和NETMASK

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

ONBOOT=yes

TYPE=Ethernet

NM_CONTROLLED=no

BRIDGE=br0

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth1

DEVICE=eth1

BOOTPROTO=static

ONBOOT=yes

TYPE=Ethernet

NM_CONTROLLED=no

BRIDGE=br1

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth2

DEVICE=eth2

BOOTPROTO=static

ONBOOT=yes

TYPE=Ethernet

NM_CONTROLLED=no

BRIDGE=br2

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br0

DEVICE=br0

BOOTPROTO=static

IPADDR=192.168.155.239

NETMASK=255.255.255.0

ONBOOT=yes

TYPE=Bridge

NM_CONTROLLED=no

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br1

DEVICE=br1

BOOTPROTO=static

IPADDR=125.39.158.100

NETMASK=255.255.255.128

ONBOOT=yes

TYPE=Bridge

NM_CONTROLLED=no

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br2

DEVICE=br2

BOOTPROTO=static

IPADDR=123.150.170.77

NETMASK=255.255.255.128

ONBOOT=yes

TYPE=Bridge

NM_CONTROLLED=no

#ifconfig

br0       Link encap:Ethernet  HWaddr 1C:6F:65 0:CC:AF  

          inet addr:58.211.112.15  Bcast:58.255.255.255  Mask:255.255.255.240

          inet6 addr: fe80::6881:d3ff:fe70:3101/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3525519 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1875715 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:4633406660 (4.3 GiB)  TX bytes:222071251 (211.7 MiB)

eth0      Link encap:Ethernet  HWaddr 1C:6F:65 0:CC:AF  

          inet6 addr: fe80::1e6f:65ff:fed0:ccaf/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3527263 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1876659 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:4682951686 (4.3 GiB)  TX bytes:222162510 (211.8 MiB)

          Interrupt:25 Base address:0x4000 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

出现以上表明安装已正常完成了

六、可以用virt-install 来新建虚拟机了,但是启动后没办法看到

所以要安装客户端来管理,也可以用virsh来管理但还要加VNC来连接虚拟机

安装VNC

#yum install tigervnc-server.x86_64

改防火墙

还要改一下iptables

#vi  /etc/sysconfig/iptables

加一句

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6900 -j ACCEPT

#service iptables restart

                                             第三步

可以开始新建虚拟机

virt-install --name haorenIM --ram 1024 --vcpus=1 --disk path=/home/kvm/img/redhat.img,size=20 --network bridge=virbr0 --os-variant=rhel4 --cdrom=/home/kvm/soft/RHEL4.7.iso --vnclisten=0.0.0.0 --vncport=6900 --vnc

说明:--disk path=/home/kvm/img/redhat.img 镜像存放路径

virt-install --name haorenIM3 --ram 8192 --vcpus=4 --disk path=/home/kvm/img/redhat3.img,size=30 --network bridge=br0 --network bridge=br1 --network bridge=br2 --os-variant=rhel6  --cdrom=/mnt/iso/rhel-server-6.4-x86_64-dvd.iso  --

vnclisten=0.0.0.0  --vncport=6902   --vnc 

virt-install --name haorenIM1 --ram 8192 --vcpus=4 --disk path=/home/kvm/img/redhat3.img,size=30 --network bridge=br0 --network bridge=br1  --os-variant=rhel6  --cdrom=/mnt/iso/rhel-server-6.4-x86_64-dvd.iso  --vnclisten=0.0.0.0  --

vncport=6900   --vnc 

(1) 用virsh list显示已安装的虚拟机

(2) Virsh start haorenIM启动 名为haorenIM 系统

(3) 用virsh edit haorenIM 编辑 主机名为 haorenIM 的配置文件

(4) 再次执行virsh list 看看起来没有

(5) lsof -i:6900 查看端口号

(6) 查看防火墙iptables-save

(7) service iptables stop/start

(8) 用VNC连接虚拟机 

(9) 克隆虚拟机  先暂停源虚拟机virsh  undefined  haorenIM

(10) 开始克隆virt-clone -o haorenIM  -n haorenIM2  -f //home/kvm/img/redhat2.img

(11) 重新定义 virsh define /etc/libvirt/qemu/haorenIM2.xml

(12) virsh resume haorenIM 继续执行

(13) virsh edit haorenIM2 修改配置文件,主要是 修改端口号和IP地址 和之前的不冲突

(14) virsh start haorenIM2 启动虚拟机

(15) virsh list  显示两个虚拟机都在运行

                             第二种方法克隆

(1)先执行apt -get install acpid进行安装并启动该服务,即可让虚拟机响应shutdown命令,否则执行virsh shutdown

不起作用,然后再执行virsh shutdown 虚拟机名 ,执行后有点慢,稍等下再执行 virsh list 进行查看确认

(2)执行virsh dumpxml haorenIM2 > /etc/libvirt/qemu/haorenIM3.xml  克隆配置文件

(3)克隆镜像文件,进入镜像文件存放目录 cp  redhat2.img   redhat3.img

 (4) 直接编辑修改配置文件修改name,uuid,disk位置,vnc端口此时还是将该配置文件注册进来,无法通过virsh edit进行编辑

 (5)  vi haorenIM3.xml,修改uuid,name ,port,ID

 (6)重新定义 virsh define haorenIM3.xml ,就可以virsh edit haorenIM3 了

 (7) virsh start haorenIM3 就可以启动haorenIM3虚拟机了

cat rhel-debuginfo.repo

[Cluster]

name=Red Hat Enterprise Linux $releasever - $basearch - Cluster

baseurl=file:///mnt/cdrom/Cluster

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[ClusterStorage]

name=Red Hat Enterprise Linux $releasever - $basearch - ClusterStorage

baseurl=file:///mnt/cdrom/ClusterStorage

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[Server]

name=Red Hat Enterprise Linux $releasever - $basearch - Server

baseurl=file:///mnt/cdrom/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[VT]

name=Red Hat Enterprise Linux $releasever - $basearch - VT

baseurl=file:///mnt/cdrom/VT

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release



1. 搭建本地光盘YUM源

[root@yum ~]# mkdir /mnt/cdrom/  ------》创建光盘挂载目录
[root@yum ~]# mount /dev/cdrom /mnt/cdrom/  --------》挂在光盘
[root@yum ~]# cd /etc/yum.repos.d/    --------》切换到YUM配置目录
[root@yum yum.repos.d]# tar czf repo.tar.gz ./*  --------》将原来所有的文件进行打包备份
[root@yum yum.repos.d]# rm -f CentOS*   --------》删除原文件

[root@yum yum.repos.d]# vim CentOS-Media.repo   --------》配置光盘源文件

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom    --------》这里为你光盘的挂载目录

gpgcheck=1    --------》是否启动检查GPG-KEY
enabled=1      --------》是否启用YUM源

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-6  --》指定挂载目录下的GPG-KEY文件
验证:




2. 如果要让公司所有的Linux主机可用内部源服务,可以用FTP/HTTP搭建一个YUM服务器,由于Http较为简便,我这里就以HTTP的方式搭建一个YUM服务了。
继上面的操作,我借用本地光盘源搭建一个HTTP的YUM服务!
 
2.1 
HTTP我在上面已经通过YUM的方式安装了,如果大家没有安装可以通过光盘里面的安装包进行安装,联网也可以通过网络的YUM进行安装。启动http服务!关闭防火墙和SELinux!


[root@yum ~]# service  httpd start


Starting httpd: httpd: apr_sockaddr_info_get() failed for yum.server    [  OK  ]


[root@yum ~]# chkconfig httpd on


[root@yum ~]# service iptables stop


[root@yum ~]# chkconfig iptables off


[root@yum ~]# setenforce 0
 
2.2 

在Apache根目录下建立子文件夹,如果想让本YUM服务器为不同版本的Linux服务,可根据情况创建目录,然后将光盘内所有的文件CP至该目录!


注:一般使用DVD1即可,当然也可以合并DVD1和DVD2来作为源。
 
[root@yum ~]# mkdir -p /var/www/html/yum


[root@yum ~]# mkdir -p /var/www/html/yum/CentOS-6


[root@yum ~]# cp -prf /mnt/cdrom/* /var/www/html/yum/CentOS-6/
 
2.3
客户端修改CentOS-Base.repo,建议先备份一个副本哦,这样以后要从外网更新的话,可以再用。


[root@test1 yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.bak1


[root@test1 yum.repos.d]# vim CentOS-Base.repo
 
###################CentOS-Base.repo内容修改后,如下#####################


# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://172.20.1.11/yum/CentOS-6
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
 
#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://172.20.1.11/yum/CentOS-6
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://172.20.1.11/yum/CentOS-6
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
centosplus][contrib]的内容不需要修改,它们的enabled值默认值是0,即模块不启用。
 
2.4
客户端测试!



附加:
DVD1和DVD2文件合并的步骤:
1.将DVD2光盘中Packages目录下所有的rpm文件CP到DVD1的目录下。

Cp /mnt/dvd2/Packages/*.rpm /var/www/html/yum/CentOS-6/Packages/

2.合并TRANS.TBL,将DVD2中TRANS.TBL的信息追加到DVD1中TRANS.TBL后面, 并排序保存。

cat  mnt/dvd2/Packages/TRANS.TBL >> /var/www/html/yum/centos-6/Packages/TRANS.TBL

Mv  /var/www/html/yum/centos-6/Packages/{TRANS.TBL,TRANS.TBL.BAK}

Sort  /var/www/html/yum/centos-6/Packages/TRANS.TBL.BAK/var/www/html/yum/centos-6/Packages/TRANS.TBL

转载地址:http://kupab.baihongyu.com/

你可能感兴趣的文章
php获取中文字符串的首字符拼音字母
查看>>
php curl通过代理获取数据
查看>>
6 个 Linux性能监控命令行工具
查看>>
mysql 编码字符集配置
查看>>
php查看opcode编码的扩展 opdumper
查看>>
php转换html格式为文本格式
查看>>
mysql-proxy主从服务架构下读写分离和负载均衡实现及原理
查看>>
Nginx location 和 rewrite retry
查看>>
基于nginx的FastCGI的缓存配置
查看>>
Nginx模块fastcgi_cache的几个注意点
查看>>
PHP使用curl伪造IP地址和header信息
查看>>
代理服务器中的HTTP代理与SOCKS代理有什么区别?
查看>>
零基础Python学习路线,小白的进阶之路!
查看>>
CSS的23个垂直居中技巧,你都学会了吗?
查看>>
黑客攻击用的最短代码大揭秘,颠覆你的世界观!
查看>>
零基础的自学前端之路,当年的入坑之旅
查看>>
新手程序员?教你解决办法!基础都掌握了,动手敲代码就一脸懵逼
查看>>
程序员快速进阶学习到底要看书还是要看视频?
查看>>
web游戏框架哪家强?国内外精选优质框架分析及注意事项
查看>>
各行业都爱用什么编程语言开发?
查看>>