因工作需要接触openstack(Mitaka),故搭建一个测试环境学习一下。

本文为安装过程手顺,根据开源社区安装手册编写,安装过程中碰到问题也参考了不少网上资料,感谢各路大神的文档!

第一次部署,如有不对之处,还请大神留言指正!

本文适合第一次安装部署的新手,不要认为openstack很高大上,遥不可及而心生畏惧!

好好看看开源社区的安装手册(https://docs.openstack.org/zh_CN/),一台8G内存的笔记本电脑就可以让你开始实验了!

我的笔记本电脑配置较低:

ThinkPad 翼480 i5-8250U 8G内存 256G SSD+500G SSD(简化版T480,心水T480啊!)

Openstack Mitaka安装手顺(1)基础环境准备_miataka

VM 15 开了两个虚拟机

Openstack Mitaka安装手顺(1)基础环境准备_openstack_02

操作系统:CentOS 7.3 (1611)

控制节点:内存4G、硬盘100G(不要纠结硬盘大小,用不了那么多的,实际也就十几GB而已!)

计算节点:内存2G、硬盘100G   --除控制服务外,其他服务均安装在这个节点

网络规划:  VM给controller节点分配三块网卡:

1、仅主机模式:111.111.111.0/24 --管理网络

2、自定义VMnet2模式:192.168.111.0/24  --provider网络


yum源地址:

 http://vault.centos.org/centos/7.3.1611/cloud/x86_64/openstack-mitaka  869+1200common

 http://vault.centos.org/centos/7.3.1611/extras/x86_64               451

 http://vault.centos.org/centos/7.3.1611/virt/x86_64/kvm-common    89

 http://vault.centos.org/centos/7.3.1611/storage/x86_64/ceph-hammer   71

 http://vault.centos.org/centos/7.3.1611/os/x86_64/Packages/

有几个python包,是从https://pkgs.org/ 站点下载。



1、基础环境准备

配置范围:所有节点


1.1、配置host文件

111.111.111.201 controller

111.111.111.202 computer01



1.2、配置本地yum源

我已经将安装包都下载到了本地,所以使用离线yum源安装

同时将离线包所在目录做成web站点,这样计算节点可以直接配置http的yum源

Openstack Mitaka安装手顺(1)基础环境准备_miataka_03


1.3、安装时间同步服务

安装范围:所有节点

1.3.1、安装chrony包

# yum install chrony -y


1.3.2、启动同步服务

# systemctl enable chronyd

# systemctl restart chronyd

# systemctl status chronyd


1.3.3、防火墙设置

第一次部署,关闭防火墙和selinux


1.3.4、配置Chrony

# vi /etc/chrony.conf

Openstack Mitaka安装手顺(1)基础环境准备_miataka_04

如上图所示,将默认的server全部注释掉,然后添加本机IP,在其他客户机也是这样配置


为了允许其他节点可以连接到控制节点的 chrony 后台进程,在``/etc/chrony.conf`` 文件添加下面的键:

allow 111.111.111.0/24

Openstack Mitaka安装手顺(1)基础环境准备_安装手顺_05


启动 NTP 服务并将其配置为随系统启动:

# systemctl enable chronyd.service

# systemctl start chronyd.service


1.4、安装openstack最新的源

安装范围:所有节点

 yum install centos-release-openstack-mitaka

 yum install https://rdoproject.org/repos/rdo-release.rpm  ---本次操作不能执行这一步,否则新增的repo文件指向的是T版本的openstack

 yum upgrade (更新源)   --本步骤需要先移除预装的mariadb的包,否则报错 :yum remove mariadb-libs

 yum install python-openstackclient(安装opentack必须的插件)

 yum install openstack-selinux(可选则安装这个插件,我直接关闭了selinux,因为不熟,对后续不会有影响)

说明:如果使用自定义源,那么上面centos和redhat的操作可以省略


1.5、部署mariadb数据库

控制节点:

安装报错,经查资料怀疑是自带的Mariadb干扰了

Openstack Mitaka安装手顺(1)基础环境准备_miataka_06

如图查到了自带的mariadb包,全部移除

Openstack Mitaka安装手顺(1)基础环境准备_安装手顺_07

# yum remove mariadb* -y


yum install mariadb mariadb-server python2-PyMySQL -y

编辑:

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

[mysqld]

bind-address = 111.111.111.201

default-storage-engine = innodb

innodb_file_per_table

max_connections = 4096

collation-server = utf8_general_ci

character-set-server = utf8

 

启服务:

# systemctl enable mariadb

# systemctl start mariadb

# systemctl status mariadb


mysql_secure_installation

先是设置密码,会提示先输入密码

Enter current password for root (enter for none):  <–初次运行直接回车

设置密码 : P@ssw0rd

Set root password? [Y/n]   <– 是否设置root用户密码,输入y并回车或直接回车

New password:   <– 设置root用户的密码

Re-enter new password:   <– 再输入一次你设置的密码

其他配置

Remove anonymous users? [Y/n]   <– 是否删除匿名用户,Y,回车

Disallow root login remotely? [Y/n]   <–是否禁止root远程登录,N,回车,

Remove test database and access to it? [Y/n]   <– 是否删除test数据库,n,回车

Reload privilege tables now? [Y/n]   <– 是否重新加载权限表,回车

初始化MariaDB完成


1.6、为Telemetry 服务部署MongoDB

控制节点:

# yum install mongodb-server mongodb -y

编辑:vi /etc/mongod.conf

bind_ip = 111.111.111.201

Openstack Mitaka安装手顺(1)基础环境准备_openstack_08

smallfiles = true

Openstack Mitaka安装手顺(1)基础环境准备_openstack_09

启动服务:

# systemctl enable mongod

# systemctl start mongod


1.7、部署消息队列rabbitmq

控制节点:

# yum install rabbitmq-server -y

 

启动服务:

# systemctl enable rabbitmq-server

# systemctl start rabbitmq-server


新建rabbitmq用户密码:

# rabbitmqctl add_user openstack P@ssw0rd

删除了guest用户:

# rabbitmqctl delete_user guest



为新建的用户openstack设定权限:

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Openstack Mitaka安装手顺(1)基础环境准备_安装手顺_10


启动管理WEB

rabbitmq-plugins enable rabbitmq_management

Openstack Mitaka安装手顺(1)基础环境准备_安装手顺_11

(验证方式:http://111.111.111.201:15672/ 用户:openstack 密码:P@ssw0rd)

Openstack Mitaka安装手顺(1)基础环境准备_安装手顺_12


但是登陆失败如红框所示:Login failed

为什么呢?因为不是管理员!!


rabbitmqctl set_user_tags openstack administrator

Openstack Mitaka安装手顺(1)基础环境准备_安装手顺_13

如下图所示,将openstack用户添加为管理员后就登陆成功了!

Openstack Mitaka安装手顺(1)基础环境准备_安装手顺_14



1.8、部署memcached缓存(为keystone服务缓存tokens)

控制节点:

# yum install memcached python-memcached -y

cat /etc/sysconfig/memcached


PORT="11211"

USER="memcached"

MAXCONN="10240"

CACHESIZE="64"

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

OPTIONS="-l 0.0.0.0"

Openstack Mitaka安装手顺(1)基础环境准备_miataka_15

疑问:这一步在官方文档里是不修改OPTIONS选项的,默认就是127.0.0.1那一行

启动服务:

# systemctl enable memcached

# systemctl start memcached


基础环境准备完毕!