OpenStack平台搭建
涨了一个大教训,以后如果有官方准备的安装说明文档就再也不看网上的安装教程了。很多步骤的细节都不说明白,导致一直报错,作者也不提醒。
基础环境-主机准备
OpenStack云平台搭建需要两个节点,一个是controller(控制节点),另一个是compute(计算节点)。
名称 | IP地址 | 主机名称 | 备注 |
---|---|---|---|
控制节点 | 192.168.146.150 | controller | 最小4G,开启虚拟化 |
计算节点 | 192.168.146.200 | compute1 | 最小2G,开启虚拟化 |
controller(控制节点)
主机安装
我没有截图标注的部分直接下一步。
此设置是为了修改网卡命名规则为eth规则
之后按上下箭头选中Install CentOS 7,不要按回车,随后按下tab键。
按下空格,输入如下指令后,按回车键。
1 | net.ifnames=0 biosdevname=0 |
之后进入图形化安装界面:
如果输入的密码比较短的话,这里要点击两次完成:
等待下面这个进度条结束之后点击重启
重启之后使用root登录
修改主机名
1 | hostnamectl set-hostname controller |
修改第一块网卡
首先打开虚拟机的虚拟网络编辑器,记住子网掩码和网关。
再查看一下IP范围
修改主机ip地址
1 | vi /etc/sysconfig/network-scripts/ifcfg-eth0 |
在IP地址和子网掩码部分,子网掩码就是虚拟机net模式的子网掩码,IP地址就是在IP范围内的随意数即可。
保存退出后,重启网卡,使网卡生效。
1 | systemctl restart network |
发现报错,查看一下报错信息
这个报错的原因是配置文件中MAC与当前网卡MAC不一致,只需要修改一下配置文件即可。
通过ip a
命令查看mac地址是00:0c:29:bc:d2:97
然后在配置文件中加入这一行(如果存在的话只修改就可以)
1 | HWADDR=00:0c:29:bc:d2:97 |
这时候再重启就没问题了
修改第二块网卡
同样,查看主机模式的IP掩码和IP范围,主机模式可以不用设置网关。
1 | vi /etc/sysconfig/network-scripts/ifcfg-eth0 |
这里的IP地址要跟主机模式在同一个网段。
别忘记设置网卡MAC地址HWADDR=00:0c:29:bc:d2:a1
。
重启网络服务。
1 | systemctl restart network |
创建ssh连接
开启sshd服务并更改默认配置文件。
1 | systemctl enable sshd |
可能需要更改的地方:
1 | Port=22 设置SSH的端口号是22(默认端口号为22) |
如果找不到这些配置的话,vi有个查找快捷键,进入管理模式,使用/
进行查找,然后回车就行。
重启sshd服务,使配置生效。
1 | service sshd restart |
开启防火墙端口
1 | firewall-cmd --zone=public --add-port=22/tcp --permanent |
这样就能使用连接ssh了。
如果你的ssh连接也报WARNING!The remote SSH server rejected X11 forwarding request.
这个错误,那可能是因为没有下载xorg-x11-xauth 的rpm包。在完成1.3yum换源之后,可以下载该包解决此问题。
1 | yum -y install xorg-x11-xauth |
设置hosts文件
1 | vi /etc/hosts |
添加如下内容:
1 | 192.168.146.200 compute1 |
compute计算节点
compute节点与controller节点基础环境及安装系统大致相同,可参考controller节点配置,以下是稍有不同的地方。
修改主机名
1 | hostnamectl set-hostname controller |
修改网卡
1 | vi /etc/sysconfig/network-scripts/ifcfg-eth0 |
第二块网卡
1 | vi /etc/sysconfig/network-scripts/ifcfg-eth1 |
重启网卡
1 | systemctl restart network |
创建ssh连接
1 | #更改默认配置文件。 |
这样就能使用工具连接ssh了。
设置hosts文件
1 | vi /etc/hosts |
添加如下内容:
1 | 192.168.146.150 controller |
yum换源
删除系统自带yum所有源配置文件
1 | rm -f /etc/yum.repos.d/* |
获取阿里源的配置文件
1 | curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo |
文件内容如下
1 | # CentOS-Base.repo |
清理yum缓存,并生成新的缓存
1 | yum clean all |
更新yum源检查是否生效
1 | yum -y update |
时间同步
控制节点
下载安装chrony
1 | yum -y install chrony |
修改配置文件/etc/chrony.conf
1 | vi /etc/chrony.conf |
添加server NTP_SERVER iburst
,将NTP_SERVERNTP_SERVER
替换成time1.aliyun.com
1 | server time1.aliyun.com iburst |
保存并退出后,输入如下命令:
1 | #启动并加入开机自启 |
计算节点
下载安装chrony
1 | yum -y install chrony |
修改配置文件/etc/chrony.conf
1 | vi /etc/chrony.conf |
编辑/etc/chrony.conf
文件并注释除server
值外的所有内容
1 | server controller iburst |
保存并退出后输入如下命令:
1 | #启动并加入开机自启 |
验证操作
输入命令
1 | chronyc sources |
控制节点将显示
计算节点将显示
安装通用软件包
计算节点和控制节点都要进行如下操作。
先禁用防火墙和selinux(永久禁用)。
1 | systemctl stop firewalld |
编辑配置文件如下所示:
OpenStack包
在CentOS中, extras仓库提供用于启用 OpenStack 仓库的RPM包。
1 | # 安装用于启用OpenStack仓库的包。 |
安装rabbitmq消息队列
安装包:
1 | yum install -y rabbitmq-server |
启动消息队列服务并将其配置为随系统启动:
1 | systemctl enable rabbitmq-server.service |
验证端口是否存在
1 | netstat -lntp|grep 5672 |
添加 openstack
用户:
1 | rabbitmqctl add_user openstack RABBIT_PASS |
用合适的密码替换 RABBIT_DBPASS
。
给openstack
用户配置写和读权限:
1 | rabbitmqctl set_permissions openstack ".*" ".*" ".*" |
安装监控插件
1 | rabbitmq-plugins enable rabbitmq_management |
检查端口查看是否开启
1 | netstat -tnulp|grep 15672 |
开启之后可以访问rabbitmq web管理界面http://192.168.168.150:15672.
SQL数据库
控制节点安装软件包
1 | yum install -y mariadb mariadb-server MySQL-python |
创建并编辑 /etc/mysql/conf.d/mariadb_openstack.cnf
,然后在 [mysqld]
部分,设置 bind-address
值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库:
1 | [mysqld] |
启动数据库服务,并将其配置为开机自启:
1 | systemctl enable mariadb.service |
执行脚本来对数据库进行安全加固。
1 | #跳坑 |