文章目录
前言
一: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:拓扑图
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虚拟机,不在赘述
-
修改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
-
检验阿里云源是否正常
[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页面
-
配置同步阿里时钟
[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 '//下载成功'