如何搭建本地OpenStack的yum源?实操展示!

文章目录

前言

一:OpenStack概述

1.1:概述

  • OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个*软件许可证)授权的开源代码项目。
  • OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。

1.2:为什么要搭建OpenStack本地yum源?

  • OpenStack的yum源的地址都是指向国外的网站,对此,我们使用yum下载的时候会造成很多困扰。
  • 另:如果中途下载失败,则需要重新来过
  • 所以,我们为了解决这个办法,将yum源地址指向国内或者本地

二:本地yum源搭建实操

2.1:环境

  • VMware软件
  • 一台centos7虚拟机作为OpenStack本地源,IP地址:192.168.233.101
  • 一台centos7虚拟机作为客户端,IP地址:192.168.233.129

2.2:拓扑图

  • 如何搭建本地OpenStack的yum源?实操展示!

2.3:实验目的

  • 通过配置,搭建成功OpenStack本地源,客户端可正常访问使用

2.4:实验过程

  • 1、寻找第三方OpenStack生产环境专用yum源仓库
  • 2、搭建Centos 7.6 系统载体
  • 3、同步Openstack成产环境源
  • 4、解决OpenStack软件环境依赖关系
  • 5、发布本地OpenStack-YUM源仓库
  • 6、OpenStack客户端部署本地YUM源仓库
  • 7、配置阿里云时间同步服务、配置NTP服务(允许192.168.233.0网段)
2.4.1:本地源端配置
  • 安装centos7虚拟机,不在赘述

    如何搭建本地OpenStack的yum源?实操展示!

  • 修改IP地址

    [root@localhost ~]# cd /etc/sysconfig/network-scripts/
    [root@localhost network-scripts]# ls
    ifcfg-ens33  ifcfg-ens34  。。省略内容
    [root@localhost network-scripts]# vim ifcfg-ens33	'//编辑网卡配置文件'
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static	'//改为静态'
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=d487863a-3729-49db-b507-3da098b74541
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.233.101	'//添加IP地址,子网掩码,网关和dns'
    NETMASK=255.255.255.0
    GATEWAY=192.168.233.2
    DNS1=8.8.8.8
    DNS2=114.114.114.114
    [root@localhost network-scripts]# vim ifcfg-ens34
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens34
    UUID=cc710b96-04e8-4071-b1f2-675a9e7f1661
    DEVICE=ens34
    ONBOOT=yes
    IPADDR=192.168.11.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.11.1
    [root@localhost network-scripts]# systemctl restart network	'//重启网卡'
    [root@localhost network-scripts]# ifconfig	'//查看网卡IP地址是否生效'
    [root@localhost network-scripts]# ping www.baidu.com	'//尝试ping百度,发现可以ping通'
    [root@localhost network-scripts]# ping 192.168.11.1	'//pingVM1网卡网关,也可以ping通'
    
    
  • 备份系统自带的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 bak
    [root@localhost yum.repos.d]# mv * bak	'//将原本的yum源移动到文件夹里'
    mv: 无法将目录"bak" 移动至自身的子目录"bak/bak" 下
    [root@localhost yum.repos.d]# ls
    bak
    
    
  • 编辑阿里云Centos 7 官方源和OpenStack源

    '//上传源文件(repo文件)至/etc/yum.repos.d目录下'
    [root@localhost yum.repos.d]# ls
    bak               CentOS-QEMU-EV.repo         epel.repo   openstack.repo
    CentOS-Base.repo  CentOS-Storage-common.repo  nginx.repo
    
    

    如何搭建本地OpenStack的yum源?实操展示!

  • 检验阿里云源是否正常

    [root@localhost yum.repos.d]# yum repolist
    '//等待结束'
        。。。省略内容
    源标识                                 源名称                                                         状态
    base/7/x86_64                          CentOS-7 - Base - mirrors.aliyun.com                           10,097
    centos-qemu-ev/7/x86_64                CentOS-7 - QEMU EV                                                 87
    epel/x86_64                            Extra Packages for Enterprise Linux 7 - x86_64                 13,188
    extras/7/x86_64                        CentOS-7 - Extras - mirrors.aliyun.com                            323
    nginx/7/x86_64                         nginx                                                             172
    openstack-queens                       openstack-queens                                                3,095
    openstack-rocky                        openstack-rocky                                                 2,577
    openstack-stein                        openstack-stein                                                 2,355
    openstack-train                        openstack-train                                                 2,181
    updates/7/x86_64                       CentOS-7 - Updates - mirrors.aliyun.com                         1,458
    repolist: 35,533
    
    
  • 安装相关软件

    [root@localhost yum.repos.d]# yum install -y wget make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel createrepo yum-utils
    '//yum-utils:reposync同步工具,createrepo:编辑yum库工具  做依赖关系用发,plugin-priorities:控制yum源更新优先级工具,这个工具可以用来控制进行yum源检索的先后顺序,建议可以用在client端。注:由于很多人喜欢最小化安装,上边软件是一些常用环境。'
    
  • 将源同步到本地目录

    [root@localhost yum.repos.d]# mkdir /data	'//创建挂载点目录'
    [root@localhost yum.repos.d]# mkfs -t xfs /dev/sdb	'//格式化'
    [root@localhost yum.repos.d]# vim /etc/fstab 	'//设置永久挂载'
    /dev/sdb        /data   xfs     defaults 0 0
    [root@localhost yum.repos.d]# reboot	'//重启'
    [root@localhost ~]# df -hT	'//查看挂载是否生效'
        。。。省略内容
    /dev/sdb                xfs       300G   0  300G    1% /data	'//挂载成功'
    
    [root@localhost yum.repos.d]# reposync -p /data	'//将源同步到本地目录'
        '//此处等待时间很长,要有心理准备'
    [root@localhost yum.repos.d]# cd /data
    [root@localhost data]# ls	'//同步成功'
    base            epel    nginx             openstack-rocky  openstack-train
    centos-qemu-ev  extras  openstack-queens  openstack-stein  updates
    
    
  • 创建软件依赖关系库

    [root@localhost ~]# createrepo -po /data/base/ /data/base/
    [root@localhost ~]# createrepo -po /data/extras/ /data/extras/
    [root@localhost ~]# createrepo -po /data/updates/ /data/updates/
    [root@localhost ~]# createrepo -po /data/epel/ /data/epel/
    [root@localhost ~]# createrepo -po /data/openstack-queens/ /data/openstack-queens/
    [root@localhost ~]# createrepo -po /data/openstack-rocky/ /data/openstack-rocky/
    [root@localhost ~]# createrepo -po /data/openstack-stein/ /data/openstack-stein/
    [root@localhost ~]# createrepo -po /data/openstack-train/ /data/openstack-train/
    [root@localhost ~]# createrepo -po /data/centos-qemu-ev /data/centos-qemu-ev/
    [root@localhost ~]# createrepo -po /data/nginx /data/nginx
    
  • 更新源数据

    [root@localhost ~]# createrepo --update /data/base
    [root@localhost ~]# createrepo --update /data/extras
    [root@localhost ~]# createrepo --update /data/updates
    [root@localhost ~]# createrepo --update /data/epel
    [root@localhost ~]# createrepo --update /data/openstack-queens
    [root@localhost ~]# createrepo --update /data/openstack-rocky
    [root@localhost ~]# createrepo --update /data/openstack-stein
    [root@localhost ~]# createrepo --update /data/openstack-train
    [root@localhost ~]# createrepo --update /data/centos-qemu-ev
    [root@localhost ~]# createrepo --update /data/nginx
    
    
  • 创建定时任务脚本

    [root@localhost ~]# mkdir /data/script	'//创建脚本存放目录'
    [root@localhost ~]# vi /data/script/centos_yum_update.sh	'//编辑脚本'
    #!/bin/bash
    echo 'Updating Aliyum Source'
    DATETIME=`date +%F_%T`
    exec > /var/log/aliyumrepo_$DATETIME.log
         reposync -np /data
    if [ $? -eq 0 ];then
          createrepo --update /data/base
          createrepo --update /data/extras
          createrepo --update /data/updates
          createrepo --update /data/epel
          createrepo --update /data/openstack-queens
          createrepo --update /data/openstack-rocky
          createrepo --update /data/openstack-stein
          createrepo --update /data/openstack-train
          createrepo --update /data/centos-qemu-ev
          createrepo --update /data/nginx
    
        echo "SUCESS: $DATETIME aliyum_yum update successful"
      else
        echo "ERROR: $DATETIME aliyum_yum update failed"
    fi
    
    
  • 将脚本加入到定时任务中

    [root@localhost ~]# crontab -e	'//设置定时任务'
    00 13 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /data/script/centos_yum_update.sh
    '//每月第一个周六的13点更新阿里云yum源'
    
  • 安装nginx开启目录权限保证本地机器可以直接本地yum源

    [root@localhost ~]# groupadd nginx     				'//创建运行账户组'
    [root@localhost ~]# useradd -r -g nginx -s /bin/false -M nginx  	'//创建运行账户'
    [root@localhost ~]# yum -y install nginx     			'//安装Nginx'
    [root@localhost ~]# vi /etc/nginx/nginx.conf		'//找到nginx配置文件,并修改nginx配置文件'
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;	'//监听端口修改'
            server_name  localhost;	'//修改名称'
            root         /data ;	'//这里是yum源存放目录'
            location / {
                autoindex on;	'//打开目录浏览功能'
                autoindex_exact_size off;	'//off:以可读的方式显示文件大小'
                autoindex_localtime on;	'//on、off:是否以服务器的文件时间作为显示的时间'
                charset utf-8,gbk;	'//展示中文文件名'
                index index.html;	'//新增'
            }
            error_page   500 502 503 504  /50x.html;	'//错误页面展示'
            location = /50x.html {
                root   html;
            }
        }
    }
    [root@localhost ~]# systemctl enable nginx 		'//开机启动Nginx服务'
    [root@localhost ~]# systemctl restart nginx		'//重启Nginx服务'
    
  • 关闭防火墙

    [root@localhost ~]# systemctl stop firewalld.service 	'//关闭防火墙'
    [root@localhost ~]# systemctl disable firewalld.service 	'//设置开启不自启'
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    [root@localhost ~]# setenforce 0	'//关闭核心防护'         
    [root@localhost ~]# vim /etc/selinux/config 	'//设置核心防护开机不自启'
    SELINUX=disabled	'//修改为disabled'
    
  • 使用宿主机测试nginx页面

    如何搭建本地OpenStack的yum源?实操展示!

  • 配置同步阿里时钟

    [root@localhost ~]# yum -y install ntpdate	'//安装ntpdate服务'
    [root@localhost ~]# ntpdate ntp.aliyun.com	'//同步阿里云ntp时间'
    [root@localhost ~]# crontab -e 	'//设置周期任务'
    */2 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log	'//每一分钟生成一个日志文件(二分钟仅为了试验能更快生成数据)'
    [root@localhost ~]# systemctl restart crond	'//重启周期服务'
    [root@localhost ~]# systemctl enable crond	'//设置开机自启动'
    [root@localhost ~]# tail -f /var/log/ntpdate.log    '//动态查看更新日志文件'
    
  • NTP时钟服务配置

    [root@localhost ~]# yum -y install ntp	'//安装ntp服务'
    [root@localhost ~]# vi /etc/ntp.conf	'//编辑ntp配置文件'
    restrict default nomodify   '//第8行改'
    restrict 192.168.233.0 mask 255.255.255.0 nomodify notrap  '//第17行改,取消注释'
    '//将21行到24行删除'
         21 server 0.centos.pool.ntp.org iburst
         22 server 1.centos.pool.ntp.org iburst
         23 server 2.centos.pool.ntp.org iburst
         24 server 3.centos.pool.ntp.org iburst
    '//删除的插入下面内容'
    fudeg 127.127.1.0 stratum 10    
    server 127.127.1.0
    
    [root@localhost ~]# systemctl restart ntpd  '//重启ntp服务端'
    [root@localhost ~]# systemctl enable ntpd  '//开机启动ntp服务端'
    [root@localhost ~]# systemctl disable chronyd.service 	'//关闭chronyd服务的开机自启动,否则ntp服务开机自启动会失败'
    Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
    [root@localhost ~]# reboot	'//重启'
    [root@localhost ~]# systemctl status ntpd	'//查看ntp服务开机自启动是否成功'
    
    
  • 客户端NTP时钟服务同步

    [root@client opt]# ntpdate 192.168.233.101	'//客户端与192.168.233.101服务器同步时间'
    [root@localhost ~]# date	'//查看时间与客户端比较'
    [root@client opt]# date	
    
2.4.2:客户端配置
  • 配置

    [root@client ~]# cd /etc/yum.repos.d/
    [root@client yum.repos.d]# rm -rf *
    [root@client yum.repos.d]# ls
    [root@client yum.repos.d]# vim CentOS7.x-Base-Openstack.repo	'//编辑repo文件,源地址指向192.168.233.101服务器,我们刚刚可以网页正常访问192.168.233.101服务器'
    [base]
    name=CentOS-$releasever - Base - data.template.com
    baseurl=http://192.168.233.101/base/
    enabled=1
    gpgcheck=0
    
    [updates]
    name=CentOS-$releasever - Updates - data.template.com
    baseurl=http://192.168.233.101/updates/
    enabled=1
    gpgcheck=0
    
    [extras]
    name=CentOS-$releasever - Extras - datas.template.com
    baseurl=http://192.168.233.101/extras/
    enabled=1
    gpgcheck=0
    
    [epel]
    name=CentOS-$releasever - epel - datas.template.com
    baseurl=http://192.168.233.101/epel/
    failovermethod=priority
    enabled=1
    gpgcheck=0
    
    [openstack-queens]
    name=openstack-queens
    baseurl=http://192.168.233.101/openstack-queens/
    gpgcheck=0
    enabled=1
    
    [openstack-rocky]
    name=openstack-rocky
    baseurl=http://192.168.233.101/openstack-rocky/
    gpgcheck=0
    enabled=1
    
    [openstack-stein]
    name=openstack-stein
    baseurl=http://192.168.233.101/openstack-stein/
    gpgcheck=0
    enabled=1
    
    [openstack-train]
    name=openstack-train
    baseurl=http://192.168.233.101/openstack-train/
    gpgcheck=0
    enabled=1
    
    
    [centos-qemu-ev]
    name=centos-qemu-ev
    baseurl=http://192.168.233.101/centos-qemu-ev/
    gpgcheck=0
    enabled=1
    
    [nginx]
    name=nginx
    baseurl=http://192.168.233.101/nginx/
    gpgcheck=0
    enabled=1
    
    
  • 测试是否可以下载yum包

    [root@client yum.repos.d]# cd /opt
    [root@client opt]# ls
    gfsrepo  rh
    [root@client opt]# yum clean all
    [root@client opt]# yum makecache
    [root@client opt]# yumdownloader openstack-swift-account
    [root@client opt]# ls
    gfsrepo  openstack-swift-account-2.23.1-1.el7.noarch.rpm  rh	'//下载成功'
    
    
2.4.3:搭建完成,谢谢观看!
如何搭建本地OpenStack的yum源?实操展示!如何搭建本地OpenStack的yum源?实操展示! 汤政大人 发布了126 篇原创文章 · 获赞 62 · 访问量 1万+ 私信 关注
上一篇:本地YUM仓库搭建


下一篇:创建yum仓库