一、提前声明:
1.本系列整理只是完整的openstack--JUNO10搭建过程,没有过多的原理,如果你想详细了解openstack的运行原理及机制,请参考其他资料。
2.openstack--JUNO10对所使用的系统版本有要求,必须是CENTOS7-1406,如果没有此镜像,可以去官网下载,或留言联系我。
3.openstack项目不适合初学者,因为过程很繁锁、复杂,至少是有实际工作半年或更多,有opnestack有兴趣的,可以继续往下看。
4.如果你之前没接触或了解过openstack,你想在半天或一天之内就搭建出来,我给你的意见是洗洗睡吧,在梦里你的想法才会实现。
5.在阅读此文或是你搭建过程中,请你务必保持清醒的头脑,认真一点,仔细一点,不怕慢,就怕快。你很可能会因为少一个空格或配置文件写错一个字母而报错,而排错的过程更辛苦。最终你可能还排不出来。查文档、资料都 没有用,因为国内网上的大多资料都是相互抄袭,你会发现他们所说的和你遇到的情况不一样,按照他们那个搞法,你的问题仍然解决不了!
6.请你做好攻坚克难、啃硬骨头、打硬仗的准备。当遇到挫折的时候不要害怕,不要沮丧,收拾心情,再来,先检查自己所敲的每一行命令有没有错,再检查配置文件当中的每个字母有没有错。如果都没有错,实验效果仍然达不到的话,恢复快照,一点一点再来一次,或者再一次,要相信自己,you can do it!
7.我不是一个聪明的人,但还算执着,openstack--JUNO10从最初查资料,看视频,到动手搭建,最终实现全部实验效果,前后用了22天的时间。直到最后一个实验效果出来,那一刻,所有的努力付出都是值的!希望看到此文的你也是!相信你会比我更出色!
okay ,are you ready ? let's go
二、基础环境
本地ip:172.16.253.27(另单独添加两个ip地址在高级里面:10.10.10.100 && 20.20.20.200 netmask=255.255.25.0 )
需要四个节点:controller/computer/network/block/
2.1.服务器配置
节点 | 数量 |
ip | 网卡数量 |
CPU&&内存 (理想) | 实际 | 功能 |
controller | 1 | 172.16.253.214 | 1 | 2核 * 2G | 4核 * 2G | 控制节点,时间同步服务器 |
computer | 1 | 172.16.253.215 | 2 | 4*4 | 4*2.5 | 提供计算能力,创建虚拟机 |
network | 1 | 172.16.253.216 | 3 | 2*2 | 2*1 | 提供网络,数据通信(管理网络,实例网络,外部网络) |
block | 1 | 172.16.253.217 | 1 | 1*1 | 2*1 | 提供块存储 |
ftp | 1 | 10.68.71.38 | 1 | 4*4 | ftp:epel && yum源服务器 |
注意:
computer服务器在安装前在开启内核虚拟化!!否则后面实验会报错
block服务器再添加一盘硬盘,共两块硬盘!!
ftp服务器我搭在别处,你搭在何处不重要,重要的是你在本地可以ping通,可以用ftp连接!
2.2、10.68.71.38上操作:
yum -y install vsftpd
useradd pqj
passwd pqj #pqj
# win + e 资源管理器输入ftp://pqj:pqj@10.68.71.38
将JUN10版本所用到的epel && yum源上传到pqj家目录下
#以后安装有所有软件包都在这里,但同此时官网上已经没有这个版本的源了。
如果你没有话可以联系我,我会发给你,但文件比较大约25G.请提前做好准备
2.3服务器网卡配置
节点 | ip:管理网络 | 内部网络 | 外部网络 |
controller | 172.16.253.214 | 无 | 无 |
computer | 172.16.253.215 | 10.10.10.10 | 无 |
network | 172.16.253.216 | 10.10.10.30 | 20.20.20.30 |
block | 172.16.253.217 | 无 | 无 |
2.4.服务器配置(每个节点都执行)
2.4.1修改网卡名称为ifcfg-eth0
(第一次安装系统)
在选择安装centos系统时 用方向键锁定 install centos 7 然后按下Tab键
就会在同页面的下方显示一行代码,我们就是在这行代码最后添加参数,达到永久修改网卡名称的效果:
先空格 空格 在输入 net.ifnames=0 biosdevname=0 然后回车
2.4.2修改网卡配置文件
cd /etc/sysconfig/network-scripts/
NAME=eth0
MAC=********
UUID=********
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=172.16.253.214
NETMASK=255.255.255.0
GATEWAY=10.68.71.254
DNS1=10.68.53.164
service network restart
2.4.3修改主机名和hosts文件
hostnamectl set-hostname controller.nice.com /controller.nice.com /computer.nice.com /block.nice.com
vi /etc/hosts/
172.16.253.214 controller.nice.com controller
172.16.253.215 computer.nice.com computer
172.16.253.216 network.nice.com network
172.16.253.217 block.nice.com block
#小型环境不需要配置dns服务器,而是配置hosts文件
2.4.3关闭selinux和防火墙
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
systemctl disable firewalld.service
systemctl stop firewalld.service
2.4.4安装常用工具
yum -y install vim lrzsz wget curl elinks net-tools ftp
# ftp主要用于yum源 ntp用于时间同步
2.4.5关闭NetworkManager 和安装yum插件
systemctl disable NetworkManager.service
systemctl stop NetworkManager.service
yum -y install yum-plugin-priorities #不会在yum -y upgrade的时候版本发生变化
2.4.6配置yum源
cd /etc/yum.repos.d/
mkdir bak
mv * bak
vi ftp.repo
[base]
name=base
baseurl=ftp://pqj:pqj@10.68.71.38/openstack/7/os/x86_64/
enabled=1
gpgcheck=0
[updates]
name=updates
baseurl=ftp://pqj:pqj@10.68.71.38/openstack/7/updates/x86_64/
enabled=1
gpgcheck=0
[extras]
name=extras
baseurl=ftp://pqj:pqj@10.68.71.38/openstack/7/extras/x86_64/
enabled=1
gpgcheck=0
[epel]
name=epel
baseurl=ftp://pqj:pqj@10.68.71.38/openstack/7/epel
enabled=1
gpgcheck=0
[rdo]
name=rdo
baseurl=ftp://pqj:pqj@10.68.71.38/openstack/7/rdo
enabled=1
gpgcheck=0
yum clean all
yum makecache
yum -y upgrade
yum clean all
yum makecache
rm -rf CentOS-*
[root@network ~]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
#做完上述操作,reboot ,重启一下,使selinux=disabled生效
2.5配置时间同步服务器(controller节点)
yum -y install ntp
vi /etc/ntp.conf
取消注释21-24行
#添加以下两行在25-26行
server 127.127.1.0
fudge 127.127.1.0 stratum 10
取消注释并修改17行 (允许网段)
restrict 172.16.253.0 mask 255.255.255.0 nomodify notra
网段
#date -s 设置时间 如:
date -s 20180926
date -s 10:11:20
systemctl restart ntpd
systemctl enable ntpd
2.6其他节点同步时间服务器
yum -y install ntp
ntpdate -u 172.16.253.214
echo "ntpdate -u 172.16.253.214" >> /etc/rc.d/rc.local
systemctl restart ntpd
systemctl enable ntpd
#编写定时任务
crontab -e
*/5 * * * * /usr/sbin/ntpdate -u 172.16.253.214 &> /dev/null
systemctl restart crond
systemctl enable crond
2.7为controller节点安装数据库
2.7.1安装mariadb软件包并修改配置文件
yum -y install mariadb mariadb-server MySQL-python
vi /etc/my.cnf
#在第9行下方插入以下:
bind-address=172.16.253.214
default-storage-engine=innodb
innodb_file_per_table
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
2.7.2启动数据库并设置为开机自启
systemctl start mariadb
systemctl enable mariadb
2.7.3执行数据库安全初始化
mysql_secure_installation
空格(没有密码) --y(创建root密码pqjpqj)--确认密码(pqjpqj)--y(移除匿名用户)--y(不允许远程登陆)--y(移除测试库)--y(刷新权限表)
安装完mysql-server 会提示可以运行mysql_secure_installation。运行mysql_secure_installation会执行几个设置:
--为root用户设置密码
--删除匿名账号
--取消root用户远程登录
--删除test库和对test库的访问权限
--刷新授权表使修改生效
测试:mysql -uroot -ppqjpqj
show databases;
exit
2.8 controller节点安装RabbitMQ
2.8.1安装RabbitMQ软件包
yum -y install rabbitmq-server
2.8.2启动服务并设置开机自启动
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
#如果你已经顺利做完这些,恭喜你,这是一个好的开始,先给四台服务器做个快照,如果以后报错解决不了的情况下,还原到上一个快照或许就是最好最快的方法!