最近因课程要求,自己动手搭了一个OpenStack云平台,我将整个过程分了六篇博客。我使用了两个CentOS的虚拟机,一个作为计算节点,一个作为控制节点,整体过程比较繁杂,有心人可以细心看一看

1、修改各主机名(重新登录才能使其生效):

hostname controll
echo controll > /etc/hostname

备注:在所有节点上执行上述操作(注意设置对应主机名)。

2、配置各主机hosts(/etc/hosts)文件,增加以下内容:

vi /etc/hosts
10.104.199.9 controll
10.104.199.23 compute

备注:在所有节点上执行上述操作。

云平台部署工作流程 云平台基础部署工作_CentOS

3、关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

备注:在所有节点上执行上述操作。

云平台部署工作流程 云平台基础部署工作_CentOS_02

4、关闭SElinux

vi /etc/selinux/config 文件

SELINUX=enforcing改为SELINUX=disable (非常重要,主要在网络配置上)

备注:在所有节点上执行上述操作。

云平台部署工作流程 云平台基础部署工作_云平台_03

5、配置系统安装盘为yum软件源:

屏蔽 /etc/yum.repos.d/ 下所有yum源(将所有.repo文件更名为.repo.bak)

云平台部署工作流程 云平台基础部署工作_云平台_04

设置本地ftp源CentOS-Media.repo:

vi /etc/yum.repos.d/CentOS-Media.repo

云平台部署工作流程 云平台基础部署工作_memcached_05

添加以下内容:

[c7-media]
name=CentOS-$releasever - Media
baseurl=ftp://10.104.199.221/repo/centos
gpgcheck=0
enabled=1

云平台部署工作流程 云平台基础部署工作_云平台部署工作流程_06

保存并执行以下命令:

yum makecache

云平台部署工作流程 云平台基础部署工作_云平台_07

(需要自己下载CentOS镜像)将CentOS-7.4.iso放置于/home/centos目录下,同时新建目录/media/centos,将ISO文件挂载于/media/centos下,命令如下:

mount -t iso9660 -o loop CentOS-7.4.iso /media/centos

云平台部署工作流程 云平台基础部署工作_memcached_08


云平台部署工作流程 云平台基础部署工作_linux_09

配置本地源文件:

vi /etc/yum.repos.d/CentOS-Media.repo

做以下修改:

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/centos
gpgcheck=0
enabled=1

云平台部署工作流程 云平台基础部署工作_CentOS_10


保存并执行以下命令:

yum makecache

云平台部署工作流程 云平台基础部署工作_云平台_11

备注:在所有节点上执行上述操作。

6、新建Ocata软件yum源:

vi /etc/yum.repos.d/openstack_ocata.repo

云平台部署工作流程 云平台基础部署工作_CentOS_12


[ocata]
name=ocata_rpm
baseurl=ftp://10.104.199.221/repo/ocata_rpm
enabled=1
gpgcheck=0

云平台部署工作流程 云平台基础部署工作_云平台_13

yum makecache

备注:在所有节点上执行上述操作。

云平台部署工作流程 云平台基础部署工作_linux_14

控制节点云平台基础服务部署

1、安装MySQL数据库:

yum install -y mariadb mariadb-server python2-PyMySQL

云平台部署工作流程 云平台基础部署工作_CentOS_15

修改配置文件,添加以下内容:

vi /etc/my.cnf.d/openstack.cnf

[mysqld]
bind-address = 10.104.199.10
default-storage-engine = innodb
innodb_file_per_table=on
max_connections=4096
collation-server = utf8_general_ci
character-set-server = utf8

云平台部署工作流程 云平台基础部署工作_CentOS_16


设置开机启动,并启动服务:

systemctl enable mariadb.service 
systemctl restart mariadb.service

云平台部署工作流程 云平台基础部署工作_CentOS_17


数据库初始化,创建root密码等,操作如下

mysql_secure_installation
Enter current password for root (enter for none):[Enter]
Set root password? [Y/n] Y
New password: openstack
Re-enter new password:openstack
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
注意:Mysql的最大连接数据会根据具体操作系统的版本有所变动,必要时还须手动更改;

云平台部署工作流程 云平台基础部署工作_云平台_18

2、安装消息队列RabbitMQ:

yum install -y rabbitmq-server

云平台部署工作流程 云平台基础部署工作_CentOS_19

设置开机自启动并启动服务:

systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

云平台部署工作流程 云平台基础部署工作_云平台部署工作流程_20

设置rabbitmq账户密码和权限(账户密码都为openstack):

rabbitmqctl add_user openstack  openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl set_user_tags openstack administrator

云平台部署工作流程 云平台基础部署工作_云平台部署工作流程_21

3、安装分布式缓存服务Memcached:

yum install -y memcached python-memcached

云平台部署工作流程 云平台基础部署工作_CentOS_22


修改如下对应项:(注意#前面是controll说明是在控制节点上执行该命令,是compute说明是在计算节点上执行该命令,没有强调的控制节点和计算节点都要执行)

controll# vi /etc/sysconfig/memcached

OPTIONS="-l 127.0.0.1,::1,controll"

云平台部署工作流程 云平台基础部署工作_CentOS_23


设置开机自启动并启动服务

systemctl enable memcached.service
systemctl restart memcached.service
systemctl status memcached.service

云平台部署工作流程 云平台基础部署工作_CentOS_24

4、安装时间同步软件chrony并进行配置:

yum install chrony
vi /etc/chrony.conf

并修改以下内容:
allow10.104.199.0/24

设置开机自启动并启动服务
systemctl enable chronyd.service
systemctl restart chronyd.service

5、安装httpd软件包:

controll# yum install -y httpd mod_wsgi

配置以下内容:

controll# vi /etc/httpd/conf/httpd.conf

ServerName controll

启动http服务并设置开机自启动:

controll# systemctl enable httpd.service
controll# systemctl restart httpd.service
control# systemctl status httpd.service

在其他节点上执行以下操作:
安装时间同步软件chrony并进行配置:

yum install chrony
vi /etc/chrony.conf

屏蔽其他server(在server项的前面加#号,注释掉),并添加以下内容

server controll iburst

云平台部署工作流程 云平台基础部署工作_linux_25

设置开机自启动并启动服务:

systemctl enable chronyd.service
systemctl restart chronyd.service

验证同步源:

chronyc sources

云平台部署工作流程 云平台基础部署工作_linux_26