安装三个redhat系统先
如果xshell连接慢
echo “UseDNS no” >> /etc/ssh/sshd_config
systemctl restart sshd
关闭SELINUX(三台机器都要)
sed ‘7d’ /etc/selinux/config
echo “SELINUX=disabled” >> /etc/selinux/config
设置ntp服务器名称
hostnamectl set-hostname ntp
设置serverA服务器名称
hostnamectl set-hostname serverA
设置serverB服务器名称
hostnamectl set-hostname serverB
设置网卡(三台机器都要)
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=”Ethernet”
NAME=”eno16777736″
UUID=”5e9a2fe1-29f7-439b-b1a9-23a47b98d186″
DEVICE=”eno16777736″
ONBOOT=”yes”
IPADDR=192.168.73.10
NETMASK=255.255.255.0
GATEWAY=192.168.73.1
关闭防火墙和自启动(三台机器都要)
systemctl disable NetworkManager.service
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service
重启
reboot
先将挂载的DVD镜像作为软件源先把软件装上,后面再改
配置yum仓库
首先挂载光盘到/media
ls /dev | grep cd
找到dvd的路径
mount /dev/cdrom /media/
挂载
然后 cd /etc/yum.repos.d/
vim dvd.repo 创建一个文件,写入如下配置
[Media-DVD]
name=rhel7-x86-64
baseurl=file:///media/
enable=1
清空缓存中的之前的仓库里面的软件包的缓存
yum clean all
在把新配置仓库的软件包加载到内存
yum list all
装包之前会让你导入gpg.key ,不导入装不了
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
安装httpd (仅NTP服务器)
yum install httpd
开机自启
systemctl enable httpd.service
systemctl start httpd.service
创建网站目录
mkdir /var/www/html/openstack
mkdir /var/www/html/dvd
挂载(仅NTP服务器)
将红帽7.1的镜像和7sp镜像都放在根目录ISO文件夹内
设置开机挂载
cat /etc/fstab
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=1e5a1ef0-c7c0-478f-9b11-d97a52938cb8 /boot xfs defaults 0 0
/dev/mapper/rhel-home /home xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/ISO/R7.iso /var/www/html/openstack iso9660 defaults 0 0
/ISO/R71.iso /var/www/html/dvd iso9660 defaults 0 0
挂载iso
mount -a
测试挂载结果
df -TH
配置http软件源
cat /etc/yum.repos.d/dvd.repo
[media-DVD]
name=rhel7-x86-64
baseurl=http://192.168.73.10/dvd/
enable=1
cat /etc/yum.repos.d/openstack.repo
[RH7-RHOS-6.0]
name=RH7-RHOS-6.0
baseurl=http://192.168.73.10/openstack/RH7-RHOS-6.0
gpgcheck=0
enabled=1
[RH7-RHOS-6.0-Installer]
name=RH7-RHOS-6.0-Installer
baseurl=http://192.168.73.10/openstack/RH7-RHOS-6.0-Installer
gpgcheck=0
enabled=1
[RHEL7-Errata]
name=RHEL7-Errata
baseurl=http://192.168.73.10/openstack/RHEL7-Errata
gpgcheck=0
enabled=1
[RHEL-7-RHSCL-1.2]
name=RHEL-7-RHSCL-1.2
baseurl=http://192.168.73.10/openstack/RHEL-7-RHSCL-1.2
gpgcheck=0
enabled=1
将repo文件分享给另外两台机器
scp /etc/yum.repos.d/* [email protected]:/etc/yum.repos.d/
scp /etc/yum.repos.d/* [email protected]:/etc/yum.repos.d/
清空缓存中的之前的仓库里面的软件包的缓存(三台机器都要)
在把新配置仓库的软件包加载到内存
yum clean all
yum list all
转包之前会让你导入gpg.key ,不导入装不了
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
安装NTP软件(三台机器都要)
yum install ntp
vi /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10
systemctl start ntpd (只启动NTP服务器的)
systemctl status ntpd
测试服务
ntpq -p
开机自启
systemctl enable ntpd
然后需要把两台服务器的NTP停掉
(如果你启动了的话,不停的话,安装openstack时会报错)
systemctl stop ntpd
systemctl stop ntpdate
( 1 Jan 01:01:25 ntpdate[2915]: the NTP socket is in use, exiting 测试中出现报错,也是需要停止ntp服务)
设置serverA和B当前时间为错误,进行同步测试
[root@servera ~]# date
2022年 08月 03日 星期三 11:12:07 CST
[root@servera ~]# date -s “2009-1-1 1:1:1”
2009年 01月 01日 星期四 01:01:01 CST
[root@servera ~]# date
2009年 01月 01日 星期四 01:01:09 CST
ntpdate 192.168.73.10
安装Openstack主程序
(安装在server控制节点上)
yum update
yum install openstack-packstack
设置应答文件
packstack –gen-answer-file=/root/ans.txt
修改文件
vim /root/ans.txt
CONFIG_NTP_SERVERS=192.168.73.10 ##NTP服务器IP
CONFIG_CONTROLLER_HOST=192.168.73.11 ##控制节点IP
CONFIG_COMPUTE_HOSTS=192.168.73.11,192.168.73.12 ##计算节点IP
(建立多计算节点,此处控制节点复用)
CONFIG_NETWORK_HOSTS=192.168.73.11 ##网络节点IP
(暂时由控制节点担当此角色)
CONFIG_KEYSTONE_ADMIN_PW=redhat ##WEB界面管理员口令
CONFIG_HORIZON_SSL=y ##加密通信WEB界面
CONFIG_PROVISION_DEMO=n #不必创建演示环境
配置好后开始初始化
packstack –answer-file=/root/ans.txt
需要跑很久,静等
遇到报错,经过互联网搜索,得出解决方案:
修改answer-file,之前遇到教程不要改这里,所以错了
CONFIG_PROVISION_DEMO=y改为n
选择控制节点配置OVS桥接
备份网卡配置文件
cp /etc/sysconfig/network-scripts/ifcfg-eno16777736{,.bak}
ll /etc/sysconfig/network-scripts/ifcfg-eno16777736{,.bak}
创建OVS桥接
进入网卡配置文件目录,创建桥接,必须命名为“br-ex”
cd /etc/sysconfig/network-scripts/
cp ifcfg-eno16777736 ifcfg-br-ex
ll ifcfg-eno16777736 ifcfg-br-ex
修改网卡配置文件
vim ifcfg-eno16777736
TYPE=OVSPort
BOOTPROTO=none
NAME=eno16777736
UUID=ef996813-441b-4710-b830-456e7c53cd4b
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.73.11
NETMASK=255.255.255.0
DNS1=192.168.73.1
GATEWAY=192.168.73.1
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
vim ifcfg-br-ex
TYPE=OVSBridge
BOOTPROTO=none
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
IPADDR=192.168.73.11
NETMASK=255.255.255.0
DNS1=192.168.73.1
GATEWAY=192.168.73.1
然后重启
service network restart
账号admin,密码就是刚刚自己在文件里设置
创建主机,将主机添加到AZ中
红帽叫做项目,华为叫做VDC,虚拟数据中心,也就是租户所租下来的一堆CPU,内存,网络资源的集合(我们如果自己买一堆硬件组建的叫做数据中心,我们在网上租的这堆硬件所以就被称为虚拟数据中心),创建项目配额就是此数据中心可以使用的资源
老板已经买好了数据中心配额,那么得整个人帮他管理VDC,那么我们就创建一个用户
创建一个可客户购买的云主机类型,也就是在用户界面购买的套餐,同时可以设置哪些用户可见
创建一个给用户用的系统镜像,我这个用的是kvm的模板镜像,所以要选择QEMU,要让所有人看到就得勾选共有,受保护的功能就是防止误删除,建议都勾上
然后创建网络,但是管理员里面的网络创建好像有问题,采用曲线救国的方式,到项目里去
由于防止给vm分配的IP与我们创建的serverA B冲突 因此我们需要将地址池不能包含他们,创建完成后回到管理员里面的网络,编辑这个网络,设置为外部网络(连通外网)+共享(大家可见)
然后切换至之前创建好的用户账号
进入用户的网络界面
创建一个内部网络,网段随便填,然后假设公司需要两个网络,我们需要考虑隔离安全问题,因此我们再建一个网络,这里我们需要勾选DHCP,因为没有冲突
然后我们以后如果需要通过外网访问这些内部网络怎么办呢?
我们创建一个路由,然后将两个内部网络和路由器都连起来
然后给他配置一个网关,让他和外部网络连起来
然后继续创建安全组,根据自己的需要添加规则
不同的安全组 之间天然无法通信,我们要如何让他们通信?
假设我们一号机用 安全组1 二号机用 安全组2 我们只需要在组1中放行安全组2即可
由于红帽系列天生禁止了密码登录,我们ssh只能创建密钥来登录,这点和aws一模一样
然后再分配浮动IP,也就是公网IP,我们没有,所以用这个内网来实验
好,这些都弄好了,就要开始创建主机了,我们之前划分了两个可用区,一个区一个机器,那么这样选就只能选单台机器,如果我们想让nova里面的算法去挑选最优的机器,就需要创建一个包含了两台机器的可用区,这里我们就去admin那里删除设置好的集合
然后创建主机,绑定刚刚网络分配的浮动IP
以上图是随便截的,ip与实际不一定一样,好了现在我们创建的第一台机器是这样的
把下载的key丢到linux随便一个文件夹下,然后
chmod 700 my_key.pem
ssh -i my_key.pem [email protected]
不要把密钥设为777!会报错!不能让其他用户能够读取到
VNC连不上1006错误
vim /etc/nova/nova.conf
修改vnc proxy 地址为计算节点IP,然后重启服务
systemctl restart openstack-nova-compute.service
VNC正常,账号root,密码redhat