ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2020-02-20 13:03:06  阅读:295  来源: 互联网

标签:root createrepo yum 实操 openstack OpenStack data localhost


文章目录

前言

一: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:拓扑图

  • mark

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虚拟机,不在赘述

    mark

  • 修改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
    
    

    mark

  • 检验阿里云源是否正常

    [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页面

    mark

  • 配置同步阿里时钟

    [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:搭建完成,谢谢观看!
汤政大人 发布了126 篇原创文章 · 获赞 62 · 访问量 1万+ 私信 关注

标签:root,createrepo,yum,实操,openstack,OpenStack,data,localhost
来源: https://blog.csdn.net/CN_TangZheng/article/details/104408661

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有