搭建Openstack开源云计算平台

本文硬件环境描述

硬盘 Controller:500G SAS Compute:500G SAS
内存 Controller:16G Compute:16G
CPU Controller:4Vcpus Compute:8Vcpus
底层环境 ESXI:6.5
CPU加速支持 在ESXI上设置主机的CPU勾选上即可

本文软件环境描述

系统版本 Centos7系列
分区 /boot:500M swap:8G /:其余所有
Openstack版本 Stein版
角色 Controller:控制节Compute:计算节点
Controller 管理IP 10.0.10.188
Compute 管理IP 10.0.10.189
给云主机上网的IP 10.10.20.0/24
网卡 ens192:配置管理IP ens224:不配置IP
其它 关闭所有节点的firewalld跟selinux

补充:此文章Openstack因为是测试所以是建立在ESXI的虚拟机上,相当于是虚拟化嵌套,另外硬件环境controller节点最低不要低于4G,compute节点最低不能低于8G,否则openstack搭建完毕在上面创建云主机是起不来的,CPU可以看着给,但请不要低于两核

补充2:因为openstack中涉及的服务组件很多,本文采用统一密码redhat,如果在真实环境中,也请最好密码一致,加强复杂性即可

一.基础准备阶段

1. vi /etc/sysconfig/network-scripts/ifcfg-ens192 修改controller节点的ens192网卡,配置管理IP

搭建Openstack开源云计算平台插图

1.2. vi /etc/sysconfig/network-scripts/ifcfg-ens224 修改controller节点的ens224网卡,此网卡用于云主机上网,所以不用配置IP但是要更改以下内容

搭建Openstack开源云计算平台插图1

1.2.1.systemctl restart network 重启controller节点的网卡服务

搭建Openstack开源云计算平台插图2

1.2.2.systemctl stop firewalld 关闭controller节点的防火墙

搭建Openstack开源云计算平台插图3

1.2.3.systemctl disable firewalld 设置防火墙为开机不启动

搭建Openstack开源云计算平台插图4

1.2.4. sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config 永久关闭controller节点的selinux服务,需要重启后生效,现在暂时不重启等改完主机名一起重启

搭建Openstack开源云计算平台插图5

1.3.配置compute节点的ens192网卡的管理IP地址

搭建Openstack开源云计算平台插图6

1.3.1.配置compute节点的ens224网卡,同样此网卡也是用于云主机上网不需要配置IP

搭建Openstack开源云计算平台插图7

1.3.2.systemctl restart network 重启compute节点的网卡服务

搭建Openstack开源云计算平台插图8

1.3.3.systemctl stop firewalld 关闭compute节点的防火墙

搭建Openstack开源云计算平台插图9

1.3.4.systemctl disable firewalld 设置防火墙为开机不启动

搭建Openstack开源云计算平台插图10

1.3.5. sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config 永久性关闭compute节点的selinux 需重启后生效,可以等后续改完主机名一起重启

搭建Openstack开源云计算平台插图11

2.yum -y install vim wget 安装vim编辑工具以及wget下载工具,在controller与compute节点上都执行下安装

搭建Openstack开源云计算平台插图12

2.1. vim /etc/hosts 编辑controller节点的/etc/hosts文件添加如下行

搭建Openstack开源云计算平台插图13

如图,188是控制节点的IP,189是计算节点的IP,hosts文件相当于是一个小DNS服务器

2.2.vim /etc/hosts 编辑compute节点的/etc/hosts文件同样添加以下两行

搭建Openstack开源云计算平台插图14

2.1.测试

搭建Openstack开源云计算平台插图15

在controller节点ping compute

搭建Openstack开源云计算平台插图16

在compute节点pingcontroller

3. vim /etc/hostname 编辑controller节点的计算机名,修改成如下

搭建Openstack开源云计算平台插图17

3.1.vim /etc/hostname 编辑compute节点的计算机名,修改成如下,然后重启下服务器

搭建Openstack开源云计算平台插图18

注意:计算机名需要重启才能生效

4. yum list | grep openstack 查看下系统里有哪些openstack的版本源可以安装

搭建Openstack开源云计算平台插图19

我们看到总共有四个版本,我们安装stein版 (最新版本可能有BUG等等)

4.1. yum -y install centos-release-openstack-stein.noarch 在controller节点上安装stein版本的源

搭建Openstack开源云计算平台插图20

4.2. yum -y install centos-release-openstack-stein.noarch 在compute节点上也安装stein版本的源

搭建Openstack开源云计算平台插图21

4.3. yum -y upgrade 在controller节点执行upgrade更新下系统内核以及软件

搭建Openstack开源云计算平台插图22

4.4. yum -y upgrade 在compute节点也执行upgrade更新系统内核以及软件

搭建Openstack开源云计算平台插图23

更新是一个比较漫长的等待过程

5.以下操作在controller节点上运行

5.1 yum -y install python-openstackclient 在controller节点安装openstack的包

搭建Openstack开源云计算平台插图24

5.2. yum -y install openstack-utils 安装openstack辅助工具包

搭建Openstack开源云计算平台插图25

5.3. yum -y install openstack-selinux 安装openstack-selinux,他可以用来帮你解决selinux的关系

搭建Openstack开源云计算平台插图26

5.4. yum -y install chrony 在控制节点上安装NTP时间服务器

搭建Openstack开源云计算平台插图27

5.4.1.systemctl enable chronyd.service 设置NTP服务为开机自启动

搭建Openstack开源云计算平台插图28

5.4.2.systemctl start chronyd.service 开启NTP服务

搭建Openstack开源云计算平台插图29

5.5.openssl rand -hex 10 > key.sh 此命令的意思是将openssl rand -hex 10输出的结果导入到key.sh这个文件里,如果没有这个文件,会在当前目录自动生成这个文件,并且文件里会有秘钥,这个秘钥作为后面认证的时候需要用

搭建Openstack开源云计算平台插图30

6.以下操作在compute节点上运行

6.1. yum -y install python-openstackclient 在compute节点安装openstack的包

搭建Openstack开源云计算平台插图31

6.2. yum -y install openstack-utils 安装openstack辅助工具包

搭建Openstack开源云计算平台插图32

6.3. yum -y install openstack-selinux 安装openstack-selinux的包

搭建Openstack开源云计算平台插图33

6.4. yum -y install chrony 在compute节点安装NTP服务

搭建Openstack开源云计算平台插图34

6.5. systemctl enable chronyd.service 设置NTP服务为开机自启动

搭建Openstack开源云计算平台插图35

6.6.systemctl start chronyd.service 开启NTP服务

搭建Openstack开源云计算平台插图36

7.以下操作在controller节点上:

7.1. yum -y install mariadb mariadb-server python2-PyMySQL 在controller节点上安装mariadb数据库

搭建Openstack开源云计算平台插图37

7.2. vim /etc/my.cnf.d/openstack.cnf 编辑此配置文件,通常是没有openstack.cnf这个文件的,我们可以直接用vim创建它

搭建Openstack开源云计算平台插图38

7.3.填写上如下内容之后保存并退出

搭建Openstack开源云计算平台插图39

7.4. systemctl enable mariadb 设置mariadb数据库为开机自启动

搭建Openstack开源云计算平台插图40

7.5. systemctl start mariadb 开启mariadb数据库

搭建Openstack开源云计算平台插图41

7.6. mysqladmin -u root password 'redhat' 给mariadb数据库设置root密码这里密码为redhat (如果真实环境请写复杂密码!)

搭建Openstack开源云计算平台插图42

二.安装服务阶段

安装rabbitmq:

1.以下操作在controller节点上操作

1.1.yum -y install rabbitmq-server 安装rabbitmq服务,这是一个消息队列服务

搭建Openstack开源云计算平台插图43

1.2. systemctl start rabbitmq-server 开启rabbitmq

搭建Openstack开源云计算平台插图44

1.3. systemctl enable rabbitmq-server 设置为开机自启动

搭建Openstack开源云计算平台插图45

1.4. rabbitmqctl add_user openstack redhat 创建了一个名为openstack的用户,密码为redhat

搭建Openstack开源云计算平台插图46

1.5. rabbitmqctl set_permissions openstack ".*" ".*" ".*" 给openstack用户赋予权限

搭建Openstack开源云计算平台插图47

1.6. rabbitmq-plugins enable rabbitmq_management 启动rabbitmq插件

搭建Openstack开源云计算平台插图48

1.7.打开浏览器输入IP地址跟端口号,初始用户是guest 密码也是guest

搭建Openstack开源云计算平台插图49

1.8.能进入说明rabbitmq搭建没问题

搭建Openstack开源云计算平台插图50

安装Memcached

1.以下操作在controller节点上

1.1. yum -y install memcached python-memcached 安装memcached服务,这是一个高速缓存服务

搭建Openstack开源云计算平台插图51

1.2. vim /etc/sysconfig/memcached 编辑memcached的配置文件

搭建Openstack开源云计算平台插图52

1.3.修改成如下一样即可

搭建Openstack开源云计算平台插图53

1.4.systemctl start memcached.service 开启memcached服务

搭建Openstack开源云计算平台插图54

1.4. systemctl enable memcached.service 设置为开机自启动

搭建Openstack开源云计算平台插图55

安装Etcd

1.以下操作在controller节点

1.1. yum -y install etcd 安装etcd服务,这是一个分布式的键值对数据存储系统

搭建Openstack开源云计算平台插图56

1.2.vim /etc/etcd/etcd.conf 编辑etcd的配置文件

搭建Openstack开源云计算平台插图57

1.3.修改以下八项,根据实际情况改,IP换成你controller节点的管理IP,有被#注释的去掉就行

ETCD_LISTEN_PEER_URLS="http://10.0.10.188:2380"

ETCD_LISTEN_CLIENT_URLS=http://10.0.10.188:2379

ETCD_NAME="controller"

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.10.188:2380"

ETCD_ADVERTISE_CLIENT_URLS=http://10.0.10.188:2379

ETCD_INITIAL_CLUSTER="controller=http://10.0.10.188:2380"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"

ETCD_INITIAL_CLUSTER_STATE="new"

搭建Openstack开源云计算平台插图58

搭建Openstack开源云计算平台插图59

搭建Openstack开源云计算平台插图60

1.4. systemctl enable etcd 设置etcd为开机自启动

搭建Openstack开源云计算平台插图61

1.5.systemctl start etcd 开启etcd服务

搭建Openstack开源云计算平台插图62

安装Keystone服务

1.以下操作在controller节点上操作

1.1. mysql -u root –p 进入数据库,数据库密码是前面设置的redhat

搭建Openstack开源云计算平台插图63

1.2. create database keystone; 创建一个名为keystone的数据库

搭建Openstack开源云计算平台插图64

1.3.grant all privileges on keystone.* to 'keystone'@'localhost' identified by 'redhat'; 给keystone数据库创建一个用户并且设置密码为redhat

搭建Openstack开源云计算平台插图65

1.4. grant all privileges on keystone.* to 'keystone'@'%' identified by 'redhat'; 允许所有人远程访问keystone数据库

搭建Openstack开源云计算平台插图66

1.5. yum -y install openstack-keystone httpd mod_wsgi 安装keystone以及http服务,keystone是一个身份验证的服务

搭建Openstack开源云计算平台插图67

1.6. vim /etc/keystone/keystone.conf 编辑keystone的配置文件

搭建Openstack开源云计算平台插图68

1.7.在配置文件里找到[database] 在下面添加一行

connection = mysql+pymysql://keystone:redhat@controller/keystone

查找方式举例:直接在底行模式输入/\后面跟你要找的内容就可以找到了,其它的以此类推

搭建Openstack开源云计算平台插图69

举例如下图:红框内的redhat是你keystone数据库的密码

搭建Openstack开源云计算平台插图70

1.7.1.在配置文件里找到[tokent]在下面添加一行

provider = fernet

举例如下图:

搭建Openstack开源云计算平台插图71

1.8. su -s /bin/sh -c "keystone-manage db_sync" keystone 填充Keystone数据库

搭建Openstack开源云计算平台插图72

1.9. 初始化Keystone数据库

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

搭建Openstack开源云计算平台插图73

1.10. 启动Keystone身份服务,红框中redhat是数据库的密码,注意不要填错

keystone-manage bootstrap --bootstrap-password redhat --bootstrap-admin-url http://controller:5000/v3/ --bootstrap-internal-url http://controller:5000/v3/ --bootstrap-public-url http://controller:5000/v3/ --bootstrap-region-id RegionOne

搭建Openstack开源云计算平台插图74

1.11. vim /etc/httpd/conf/httpd.conf 编辑http配置文件

搭建Openstack开源云计算平台插图75

1.12.找到ServerName这行,修改成如下,前面有#号的去掉#号

搭建Openstack开源云计算平台插图76

1.13. ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ 做个软链接

搭建Openstack开源云计算平台插图77

1.14. systemctl enable httpd 将http设置为开机自启动

搭建Openstack开源云计算平台插图78

1.15. systemctl start httpd 开启http服务

搭建Openstack开源云计算平台插图79

1.16.设置临时全局变量,注意,密码是redhat不要写错,根据你实际的密码写

export OS_USERNAME=admin

export OS_PASSWORD=redhat

export OS_PROJECT_NAME=admin

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_DOMAIN_NAME=Default

export OS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

搭建Openstack开源云计算平台插图80

1.17.创建一个名为servicet的openstack服务项目

openstack project create --domain default --description "Service Project" service

搭建Openstack开源云计算平台插图81

1.17.1.如下图创建成功

搭建Openstack开源云计算平台插图82

1.18.创建一个名为myproject的openstack服务项目

openstack project create --domain default --description "Demo Project" myproject

搭建Openstack开源云计算平台插图83

1.18.1.如下图创建成功

搭建Openstack开源云计算平台插图84

1.19.创建一个名为demo的用户,并设置密码,我这里密码设置的是redhat

openstack user create --domain default --password-prompt demo

搭建Openstack开源云计算平台插图85

1.19.1.创建成功

搭建Openstack开源云计算平台插图86

1.20.创建一个名叫user的角色

openstack role create user

搭建Openstack开源云计算平台插图87

1.20.1.创建成功

搭建Openstack开源云计算平台插图88

1.21.将名为user的角色添加到myproject项目和demo用户,项目,角色,用户都是在上面创建的注意不要写错了

penstack role add --project myproject --user demo user

搭建Openstack开源云计算平台插图89

1.22. unset OS_AUTH_URL OS_PASSWORD 取消临时环境变量

搭建Openstack开源云计算平台插图90

1.23.以管理员身份请求令牌,这个密码是redhat

penstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue

搭建Openstack开源云计算平台插图91

1.23.1.出现下图说明成功

搭建Openstack开源云计算平台插图92

1.24.用上面创建的demo用户去请求令牌,密码也是redhat

openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name myproject --os-username demo token issue

搭建Openstack开源云计算平台插图93

1.24.1.出现此图说明请求令牌成功

搭建Openstack开源云计算平台插图94

1.25. vim admin.sh在宿主目录创建一个名为admin.sh的文件,用来存放admin的环境变量

搭建Openstack开源云计算平台插图95

1.25.1.写上如下内容,注意admin的密码别写错了

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=redhat

export OS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

搭建Openstack开源云计算平台插图96

1.26.vim demo.sh 同样还需要创建一个demo.sh的文件,用来存放上面创建的demo用户的环境变量

搭建Openstack开源云计算平台插图97

1.26.1.写上如下内容:注意项目的名称以及用户名和密码

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=myproject

export OS_USERNAME=demo

export OS_PASSWORD=redhat

export OS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

搭建Openstack开源云计算平台插图98

1.27. source admin.sh 加载admin的环境变量

搭建Openstack开源云计算平台插图99

1.27.1. openstack token issue 测试admin获取令牌,出现下图说明成功

搭建Openstack开源云计算平台插图100

1.28.source demo.sh 加载demo用户的环境变量

搭建Openstack开源云计算平台插图101

1.28.1. openstack token issue 测试demo用户获取令牌,出现下图说明成功

搭建Openstack开源云计算平台插图102

至此Keystone安装配置完毕

安装配置glance镜像服务

1.以下操作在controller节点上

1.1. mysql -u root -p 进入mariadb数据库

搭建Openstack开源云计算平台插图103

1.2. create database glance; 创建名为glance的数据库

搭建Openstack开源云计算平台插图104

1.3. grant all privileges on glance.* to 'glance'@'localhost' identified by 'redhat'; 创建一个名为glance的用户,并设置密码为redhat

搭建Openstack开源云计算平台插图105

1.4. grant all privileges on glance.* to 'glance'@'%' identified by 'redhat'; 设置允许所有人远程glance数据库

搭建Openstack开源云计算平台插图106

2. source admin.sh 加载下admin的环境变量

搭建Openstack开源云计算平台插图107

2.1. openstack user create --domain default --password-prompt glance 创建一个名为glance的用户,这里我的glance用户的密码设置的是redhat

搭建Openstack开源云计算平台插图108

2.2. openstack role add --project service --user glance admin 添加角色

搭建Openstack开源云计算平台插图109

2.3.openstack service create --name glance --description "OpenStack Image" image 创建glance服务

搭建Openstack开源云计算平台插图110

2.4. 创建glance服务API端点

openstack endpoint create --region RegionOne image public http://controller:9292

搭建Openstack开源云计算平台插图111

openstack endpoint create --region RegionOne image internal http://controller:9292

搭建Openstack开源云计算平台插图112

openstack endpoint create --region RegionOne image admin http://controller:9292

搭建Openstack开源云计算平台插图113

3. yum install openstack-glance 安装glance镜像服务

搭建Openstack开源云计算平台插图114

3.1. vim /etc/glance/glance-api.conf 编辑glance-api的配置文件

搭建Openstack开源云计算平台插图115

3.2.找到[database]在下面添加如下内容,注意文中的redhat是glance数据库的密码,请根据实际情况来写

connection = mysql+pymysql://glance:redhat@controller/glance

搭建Openstack开源云计算平台插图116

3.3.找到[keystone_authtoken]添加如下内容:

www_authenticate_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = glance

password = redhat

搭建Openstack开源云计算平台插图117

3.4.找到[paste_deploy] 添加如下行

flavor = keystone

搭建Openstack开源云计算平台插图118

3.5.找到[glance_store] 添加如下内容

stores = file,http

default_store = file

filesystem_store_datadir = /var/lib/glance/images/

搭建Openstack开源云计算平台插图119

4. vim /etc/glance/glance-registry.conf 编辑glance-registry的配置文件

搭建Openstack开源云计算平台插图120

4.1.找到[database]添加如下内容

connection = mysql+pymysql://glance:redhat@controller/glance

搭建Openstack开源云计算平台插图121

4.2.找到[keystone_authtoken]添加以下内容

www_authenticate_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = glance

password = redhat

搭建Openstack开源云计算平台插图122

4.3.找到[paste_deploy]添加以下内容

flavor = keystone

搭建Openstack开源云计算平台插图123

5. su -s /bin/sh -c "glance-manage db_sync" glance 填充glance数据库

搭建Openstack开源云计算平台插图124

5.1.最后看到这个结果说明成功

搭建Openstack开源云计算平台插图125

5.2. 设置glance服务为开机自启动

systemctl enable openstack-glance-api.service openstack-glance-registry.service

搭建Openstack开源云计算平台插图126

5.3.开启glance服务

systemctl start openstack-glance-api.service openstack-glance-registry.service

搭建Openstack开源云计算平台插图127

5.4. wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img 下载一个微量级的镜像用来测试下镜像服务上传功能是否正常,如果在服务器里下载慢可以用浏览器下载之后再上传到服务器上

搭建Openstack开源云计算平台插图128

5.5.用如下命令上传镜像,cirros是你上传到openstack上显示的名字

cirros-0.4.0-x86_64-disk.img是镜像的名字,--public代表是公共的镜像

openstack image create "cirros" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare –public

搭建Openstack开源云计算平台插图129

如图出现此情形说明glance上传镜像没有问题

5.6. openstack image list 查看openstack上的image

搭建Openstack开源云计算平台插图130

至此 glance组件搭建完毕

安装以及配置Placement服务

1.以下操作在controller节点上

1.1. mysql -u root -p 进入mariadb数据库

搭建Openstack开源云计算平台插图131

1.2. create database placement; 创建名为placement的数据库

搭建Openstack开源云计算平台插图132

1.3. grant all privileges on placement.* to 'placement'@'localhost' identified by 'redhat'; 创建一个名为placement的用户密码为redhat

搭建Openstack开源云计算平台插图133

1.4. grant all privileges on placement.* to 'placement'@'%' identified by 'redhat';

设置允许所有人远程placement数据库

搭建Openstack开源云计算平台插图134

1.5. source admin.sh 加载下admin的环境变量

搭建Openstack开源云计算平台插图135

1.6. openstack user create --domain default --password-prompt placement 创建一个名为placement的用户,我这里设置的密码为redhat

搭建Openstack开源云计算平台插图136

1.7. openstack role add --project service --user placement admin 添加角色

搭建Openstack开源云计算平台插图137

1.8. 在服务中添加API条目

openstack service create --name placement --description "Placement API" placement

搭建Openstack开源云计算平台插图138

1.9. 创建API服务端点

openstack endpoint create --region RegionOne placement public http://controller:8778

搭建Openstack开源云计算平台插图139

openstack endpoint create --region RegionOne placement internal http://controller:8778

搭建Openstack开源云计算平台插图140

openstack endpoint create --region RegionOne placement admin http://controller:8778

搭建Openstack开源云计算平台插图141

1.10. yum -y install openstack-placement-api 安装placement服务,这是一个资源管理服务

搭建Openstack开源云计算平台插图142

1.11. vim /etc/placement/placement.conf 编辑placement配置文件

搭建Openstack开源云计算平台插图143

1.12.找到[placement_database]添加以下内容

connection = mysql+pymysql://placement:redhat@controller/placement

搭建Openstack开源云计算平台插图144

redhat是placement数据库的密码

1.13.找到[api]添加以下内容

auth_strategy = keystone

搭建Openstack开源云计算平台插图145

1.14.找到[keystone_authtoken]添加如下内容:

auth_url = http://controller:5000/v3

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = placement

password = redhat

搭建Openstack开源云计算平台插图146

1.15. su -s /bin/sh -c "placement-manage db sync" placement 填充placement数据库

搭建Openstack开源云计算平台插图147

1.16. systemctl restart httpd 重启httpd服务

搭建Openstack开源云计算平台插图148

至此Placement组件配置安装完毕

安装以及配置nova服务

1.以下在controller节点上操作

1.1. mysql -u root –p 进入mariadb数据库

搭建Openstack开源云计算平台插图149

1.2.分别创建三个名为nova_api、nova、cell0的数据库

create database nova_api;

create database nova;

create database nova_cell0;

搭建Openstack开源云计算平台插图150

1.3.分别给这三个数据库创建用户,设置密码以及设置允许远程登录

grant all privileges on nova_api.* to 'nova'@'localhost' identified by 'redhat';

grant all privileges on nova_api.* to 'nova'@'%' identified by 'redhat';

搭建Openstack开源云计算平台插图151

grant all privileges on nova.* to 'nova'@'localhost' identified by 'redhat';

grant all privileges on nova.* to 'nova'@'%' identified by 'redhat';

搭建Openstack开源云计算平台插图152

grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by 'redhat';

grant all privileges on nova_cell0.* to 'nova'@'%' identified by 'redhat';

搭建Openstack开源云计算平台插图153

1.4. source admin.sh 加载下admin的环境变量

搭建Openstack开源云计算平台插图154

1.5. openstack user create --domain default --password-prompt nova 创建一个名为nova的用户我这里密码设置的是redhat

搭建Openstack开源云计算平台插图155

1.6. openstack role add --project service --user nova admin 添加角色

搭建Openstack开源云计算平台插图156

1.7. openstack service create --name nova --description "OpenStack Compute" compute 创建Nova服务

搭建Openstack开源云计算平台插图157

1.8.创建API端点

openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1

搭建Openstack开源云计算平台插图158

openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

搭建Openstack开源云计算平台插图159

openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

搭建Openstack开源云计算平台插图160

1.9. yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler 安装nova服务,nova是openstack里面的计算服务

搭建Openstack开源云计算平台插图161

1.10. vim /etc/nova/nova.conf 编辑nova配置文件

搭建Openstack开源云计算平台插图162

1.11.找到[DEFAULT]添加如下内容,redhat是rabbit的密码,一开始我们已经创建了,是redhat,my_ip填写controller节点的管理IP

enabled_apis = osapi_compute,metadata

transport_url = rabbit://openstack:redhat@controller

my_ip = 10.0.10.188

use_neutron = true

firewall_driver = nova.virt.firewall.NoopFirewallDriver

搭建Openstack开源云计算平台插图163

1.12. 找到[api_database]添加如下内容,redhat是nova_api数据库的密码,别写错

connection = mysql+pymysql://nova:redhat@controller/nova_api

搭建Openstack开源云计算平台插图164

1.13. 找到[database]添加如下内容,redhat是nova数据库的密码

connection = mysql+pymysql://nova:redhat@controller/nova

搭建Openstack开源云计算平台插图165

1.14.找到[api]添加如下内容

auth_strategy = keystone

搭建Openstack开源云计算平台插图166

1.15.找到[keystone_authtoken]添加如下内容

auth_url = http://controller:5000/v3

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = nova

password = redhat

搭建Openstack开源云计算平台插图167

1.16.找到[vnc]添加如下内容

enabled = true

server_listen = $my_ip

server_proxyclient_address = $my_ip

搭建Openstack开源云计算平台插图168

1.17.找到[glance]添加如下内容

api_servers = http://controller:9292

搭建Openstack开源云计算平台插图169

1.18.找到[oslo_concurrency]添加如下内容

lock_path = /var/lib/nova/tmp

搭建Openstack开源云计算平台插图170

1.19.找到[placement]添加如下内容

region_name = RegionOne

project_domain_name = Default

project_name = service

auth_type = password

user_domain_name = Default

auth_url = http://controller:5000/v3

username = placement

password = redhat

搭建Openstack开源云计算平台插图171

1.20.对数据库进行以下操作

su -s /bin/sh -c "nova-manage api_db sync" nova

搭建Openstack开源云计算平台插图172

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

搭建Openstack开源云计算平台插图173

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

搭建Openstack开源云计算平台插图174

su -s /bin/sh -c "nova-manage db sync" nova

搭建Openstack开源云计算平台插图175

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

搭建Openstack开源云计算平台插图176

1.21.开启nova服务

systemctl start openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

搭建Openstack开源云计算平台插图177

1.22.将nova服务设置为开机自启动

systemctl enable openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

搭建Openstack开源云计算平台插图178

安装compute节点的nova服务

1.以下操作在compute节点上

1.1.yum -y install openstack-nova-compute 在计算节点上安装计算服务

搭建Openstack开源云计算平台插图179

1.2. vim /etc/nova/nova.conf 编辑nova配置文件

搭建Openstack开源云计算平台插图180

1.3.找到[DEFAULT]添加以下内容

enabled_apis = osapi_compute,metadata

transport_url = rabbit://openstack:redhat@controller

my_ip = 10.0.10.189

use_neutron = true

firewall_driver = nova.virt.firewall.NoopFirewallDriver

搭建Openstack开源云计算平台插图181

1.4.找到[api]添加以下内容

auth_strategy = keystone

搭建Openstack开源云计算平台插图182

1.5.找到[keystone_authtoken]添加如下内容

auth_url = http://controller:5000/v3

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = nova

password = redhat

搭建Openstack开源云计算平台插图183

1.6.找到[vnc]添加以下内容,这个IP地址填写的是controller节点的IP地址

enabled = true

server_listen = 0.0.0.0

server_proxyclient_address = $my_ip

novncproxy_base_url = http://10.0.10.188:6080/vnc_auto.html

搭建Openstack开源云计算平台插图184

1.7.找到[glance]添加如下内容

api_servers = http://controller:9292

搭建Openstack开源云计算平台插图185

1.8.找到[oslo_concurrency]添加如下内容

lock_path = /var/lib/nova/tmp

搭建Openstack开源云计算平台插图186

1.9.找到[placement]添加如下内容

region_name = RegionOne

project_domain_name = Default

project_name = service

auth_type = password

user_domain_name = Default

auth_url = http://controller:5000/v3

username = placement

password = redhat

搭建Openstack开源云计算平台插图187

1.10.找到[libvirt]添加以下内容 真实境请不要加这一条,这是因为在ESXI宿主机上做,不加之后的实例起不来

virt_type = qemu

搭建Openstack开源云计算平台插图188

1.11 systemctl enable libvirtd.service openstack-nova-compute.service 设置nova开机自启动

搭建Openstack开源云计算平台插图189

1.12 systemctl start libvirtd.service openstack-nova-compute.service 开启nova服务

搭建Openstack开源云计算平台插图190

以下在controller节点操作

1. source admin.sh 加载admin的环境变量

搭建Openstack开源云计算平台插图191

2. openstack compute service list --service nova-compute 查看controller节点上的计算服务

搭建Openstack开源云计算平台插图192

3. su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova 在controller节点上发现compute主机

搭建Openstack开源云计算平台插图193

4. openstack compute service list 在controller节点上查看计算节点

搭建Openstack开源云计算平台插图194

如图可以看到,至此,nova组件安装配置完毕

安装以及配置neutron组件

1.以下操作在controller节点上

1.1. mysql -u root –p 进入mariadb数据库

搭建Openstack开源云计算平台插图195

1.2. create database neutron; 创建名为neutron的数据库

搭建Openstack开源云计算平台插图196

1.3. grant all privileges on neutron.* to 'neutron'@'localhost' identified by 'redhat'; 创建数据库用户并设置密码为redhat

搭建Openstack开源云计算平台插图197

1.4.grant all privileges on neutron.* to 'neutron'@'%' identified by 'redhat';

搭建Openstack开源云计算平台插图198
允许所有人远程访问neutron数据库

1.5. source admin.sh 加载下admin的环境变量

搭建Openstack开源云计算平台插图199

1.6. openstack user create --domain default --password-prompt neutron 创建一个名为neutron的用户,这里设置的密码为redhat

搭建Openstack开源云计算平台插图200

1.7. openstack role add --project service --user neutron admin 添加角色

搭建Openstack开源云计算平台插图201

1.8. openstack service create --name neutron --description "OpenStack Networking" network 创建一个neutron服务

搭建Openstack开源云计算平台插图202

1.9.创建网络服务的API端点

openstack endpoint create --region RegionOne network public http://controller:9696

搭建Openstack开源云计算平台插图203

openstack endpoint create --region RegionOne network internal http://controller:9696

搭建Openstack开源云计算平台插图204

openstack endpoint create --region RegionOne network admin http://controller:9696

搭建Openstack开源云计算平台插图205

1.10. 安装neutron组件,这是一个为云主机提供网络的重要组件

yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables

搭建Openstack开源云计算平台插图206

1.11. vim /etc/neutron/neutron.conf 编辑neutron配置文件

搭建Openstack开源云计算平台插图207

1.12.找到[database],添加如下内容

connection = mysql+pymysql://neutron:redhat@controller/neutron redhat是neutron数据库的密码

搭建Openstack开源云计算平台插图208

1.13.找到[DEFAULT]添加如下内容

core_plugin = ml2

service_plugins =

transport_url = rabbit://openstack:redhat@controller

auth_strategy = keystone

notify_nova_on_port_status_changes = true

notify_nova_on_port_data_changes = true

搭建Openstack开源云计算平台插图209

1.14.找到[keystone_authtoken]添加如下内容

www_authenticate_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = redhat

搭建Openstack开源云计算平台插图210

1.15.找到[oslo_concurrency] 添加如下内容

lock_path = /var/lib/neutron/tmp

搭建Openstack开源云计算平台插图211

1.16.在[DEFAULT]下面空一格添加如下内容

[nova]

auth_url = http://controller:5000

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = nova

password = redhat

搭建Openstack开源云计算平台插图212

1.17. vim /etc/neutron/plugins/ml2/ml2_conf.ini 编辑ml2_conf.ini文件

搭建Openstack开源云计算平台插图213

1.18.在[DEFAULT]下空一格添加如下内容,注意空格,详情见下图

[ml2]

type_drivers = flat,vlan

tenant_network_types =

mechanism_drivers = linuxbridge

extension_drivers = port_security

[ml2_type_flat]

flat_networks = provider

[securitygroup]

enable_ipset = true

搭建Openstack开源云计算平台插图214

1.19. vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini 修改linuxbirdge配置文件

搭建Openstack开源云计算平台插图215

1.20.在[DEFAULT]下空一格添加如下内容,注意ens224是给云主机上网的网卡,未配置IP,ens192网卡上是配置的管理IP,你要根据实际的情况看你网卡的号是多少

[DEFAULT]

[linux_bridge]

physical_interface_mappings = provider:ens224

[vxlan]

enable_vxlan = false

[securitygroup]

enable_security_group = true

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

搭建Openstack开源云计算平台插图216

1.21. vim /etc/neutron/dhcp_agent.ini 配置dhcp

搭建Openstack开源云计算平台插图217

1.22.找到[DEFAULT]添加如下内容

interface_driver = linuxbridge

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_metadata = true

搭建Openstack开源云计算平台插图218

1.23. vim /etc/neutron/metadata_agent.ini 编辑metadata置文件

搭建Openstack开源云计算平台插图219

1.24.找到[DEFAULT]添加如下内容 redhat是给元数据代理设置的密码

nova_metadata_host = controller

metadata_proxy_shared_secret = redhat

搭建Openstack开源云计算平台插图220

1.25. vim /etc/nova/nova.conf 编辑nova配置文件

搭建Openstack开源云计算平台插图221

1.26.找到[neutron]添加如下内容,注意图中的redhat是密码,根据实际情况写

url = http://controller:9696

auth_url = http://controller:5000

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = neutron

password = redhat

service_metadata_proxy = true

metadata_proxy_shared_secret = redhat

搭建Openstack开源云计算平台插图222

1.27. ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini 做个软链接

搭建Openstack开源云计算平台插图223

1.28.填充数据库

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \

--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

搭建Openstack开源云计算平台插图224

1.29. systemctl restart openstack-nova-api.service 重启API服务

搭建Openstack开源云计算平台插图225

1.30.设置neutron服务为开机自启动

systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service

搭建Openstack开源云计算平台插图226

1.31.开启neutron服务

systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service

搭建Openstack开源云计算平台插图227

安装compute节点的neutron服务

1.以下操作在compute节点上

1.1. yum -y install openstack-neutron-linuxbridge ebtables ipset 安装neutron在计算节点上

搭建Openstack开源云计算平台插图228

1.2. vim /etc/neutron/neutron.conf 编辑neutron配置文件

搭建Openstack开源云计算平台插图229

1.3.找到[DEFAULT]添加如下内容

transport_url = rabbit://openstack:redhat@controller

auth_strategy = keystone

搭建Openstack开源云计算平台插图230

1.4.找到[keystone_authtoken] 添加如下内容

www_authenticate_uri = http://controller:5000

auth_url = http://controller:5000

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = redhat

搭建Openstack开源云计算平台插图231

1.5. 找到[oslo_concurrency]添加如下内容

lock_path = /var/lib/neutron/tmp

搭建Openstack开源云计算平台插图232

1.6. vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini 修改linuxbridege配置文件

搭建Openstack开源云计算平台插图233

1.7.找到[DEFAULT]空一格添加如下内容,ens224是给云主机上网的网卡而非管理网卡,请注意

[linux_bridge]

physical_interface_mappings = provider:ens224

[vxlan]

enable_vxlan = false

[securitygroup]

enable_security_group = true

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

搭建Openstack开源云计算平台插图234

1.8. vim /etc/nova/nova.conf 修改nova配置文件

搭建Openstack开源云计算平台插图235

1.9.找到[neutron]添加如下内容

url = http://controller:9696

auth_url = http://controller:5000

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = neutron

password = redhat

搭建Openstack开源云计算平台插图236

1.10. systemctl restart openstack-nova-compute.service 重启计算服务

搭建Openstack开源云计算平台插图237

1.11. systemctl enable neutron-linuxbridge-agent.service 将linuxbridge设置为开机自启

搭建Openstack开源云计算平台插图238

1.12. systemctl start neutron-linuxbridge-agent.service 启动服务

搭建Openstack开源云计算平台插图239

至此neutron组件搭建完毕

安装以及配置dashboard

1.以下操作在controller节点

1.1. yum -y install openstack-dashboard 安装dashboard,这是openstack的面板

搭建Openstack开源云计算平台插图240

1.2. vim /etc/openstack-dashboard/local_settings 编辑面板的配置文件

搭建Openstack开源云计算平台插图241

1.3.找到OPENSTACK_HOST,改成如下内容

搭建Openstack开源云计算平台插图242

1.4.找到ALLOWED_HOSTS,修改成如下内容,这里定义的是谁可以访问openstack控制台,*代表所有

搭建Openstack开源云计算平台插图243

1.5.搜索SESSION_ENGINE,发现是一个注释文件,在下面写上如下内容

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {

'default': {

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

'LOCATION': 'controller:11211',

}

}

搭建Openstack开源云计算平台插图244

1.6.搜索OPENSTACK_KEYSTONE_URL,改成以下内容

搭建Openstack开源云计算平台插图245

1.7. 搜索OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT,去掉前面的#号注释

搭建Openstack开源云计算平台插图246

1.8. 搜索OPENSTACK_API_VERSIONS发现都被注释了,没关系在下面新写入如下内容

OPENSTACK_API_VERSIONS = {

"identity": 3,

"image": 2,

"volume": 3,

}

搭建Openstack开源云计算平台插图247

1.9.搜索OPENSTACK_KEYSTONE_DEFAULT_DOMAIN,去掉前面的#号注释

搭建Openstack开源云计算平台插图248

1.10.搜索OPENSTACK_KEYSTONE_DEFAULT_ROLE,改成如下内容

搭建Openstack开源云计算平台插图249

1.11.搜索OPENSTACK_NEUTRON_NETWORK,将以下全部改成False

搭建Openstack开源云计算平台插图250

1.12.搜索TIME_ZONE,将时区修改成如下内容

搭建Openstack开源云计算平台插图251

1.13. vim /etc/httpd/conf.d/openstack-dashboard.conf 修改配置文件

搭建Openstack开源云计算平台插图252

1.14.在第四行写上如下内容

WSGIApplicationGroup %{GLOBAL}

搭建Openstack开源云计算平台插图253

1.15. vim /etc/httpd/conf.d/00-placement-api.conf编辑此配置文件,这是一个BUG,官方文档里没有写,如果不操作进去实例会创建机器失败

搭建Openstack开源云计算平台插图254

1.16在文件的最后添加如下内容

<Directory /usr/bin>

<IfVersion >= 2.4>

Require all granted

</IfVersion>

<IfVersion < 2.4>

Order allow,deny

Allow from all

</IfVersion>

</Directory>

搭建Openstack开源云计算平台插图255

1.17. systemctl restart httpd.service memcached.service 重启http以及memecache服务

搭建Openstack开源云计算平台插图256

1.18.打开浏览器,输入http://10.0.10.188/dashboard/ 即可访问,IP输入你实际情况的IP,用户名是admin,密码是redhat

搭建Openstack开源云计算平台插图257

至此,openstack搭建完毕

搭建完毕之后,还要做一系列配置才能正常创建主机

以下操作在controller节点

1.1. source admin.sh 加载admin的环境变量

搭建Openstack开源云计算平台插图258

1.2.创建一个名为vmnet的网卡,用于给openstack里面的主机上网

openstack network create --share --external --provider-physical-network provider --provider-network-type flat vmnet

搭建Openstack开源云计算平台插图259

1.3.创建成功之后我们进入openstack网页版 依次点击项目-网络-网络-vmnet

搭建Openstack开源云计算平台插图260

1.14.点击子网

搭建Openstack开源云计算平台插图261

1.15.点击创建子网

搭建Openstack开源云计算平台插图262

1.16.输入子网的名称,还有你要给云主机分配的IP段,我这里分配的是20.0/24段,然后写上网关,下一步

搭建Openstack开源云计算平台插图263

1.17.输入你要分配的IP起始地址,填写DNS,主机路由不用写,然后点击创建

搭建Openstack开源云计算平台插图264

1.18.点击项目-网络-安全组

搭建Openstack开源云计算平台插图265

1.19.创建安全组

搭建Openstack开源云计算平台插图266

1.20.输入名称然后创建安全组 安全组是用来云主机网络安全管控的

搭建Openstack开源云计算平台插图267

1.21.创建了安全组现在来添加规则

搭建Openstack开源云计算平台插图268

1.22.你可以定制规则,就是限制端口不能访问等等,我这里选择放行所有ICMP TCP UDP协议

搭建Openstack开源云计算平台插图269

1.23.没有多选只能手动去添加,添加完成如下图

搭建Openstack开源云计算平台插图270

1.24.点击项目-计算-密钥对

搭建Openstack开源云计算平台插图271

1.25.这个秘钥生成之后会有一个公钥一个私钥,你可以无密码的登录,但是需要加载私钥才行,生成了之后私钥自动下载

搭建Openstack开源云计算平台插图272

1.26.输入秘钥名称,然后秘钥类型 接着点击创建

搭建Openstack开源云计算平台插图273

1.27.创建成功之后会发现,浏览器自动下载了一个私钥,这个私钥就是你登录服务器的凭证

搭建Openstack开源云计算平台插图274

搭建Openstack开源云计算平台插图275

1.28.点击管理员-计算-实例类型 这个实例类型,定义了云主机的资源,如CPU 硬盘 内存等等

搭建Openstack开源云计算平台插图276

1.29.点击创建实例类型

搭建Openstack开源云计算平台插图277

1.30.定义一个给Linux系统的限制,1个CPU 1G内存 30G硬盘然后创建实例类型

搭建Openstack开源云计算平台插图278

1.32创建云主机之前,我们看看有哪些镜像,发现只有一个刚刚测试的镜像,这是一微量级的Linux系统,如果你想要其他的镜像,比如windows Linux 你可以自己制作,也可以到网上下载

搭建Openstack开源云计算平台插图279

1.33始创建主机 点击项目-计算-实例

搭建Openstack开源云计算平台插图280

1.34创建实例

搭建Openstack开源云计算平台插图281

1.35.输入实例的名称,这里是Test,然后下一步

搭建Openstack开源云计算平台插图282

1.36.选择安装镜像,就是你要装什么系统,这里我选择微量级的Linux,然后下一步

搭建Openstack开源云计算平台插图283

1.37.这里就是限制资源的,点击箭头,把它点上去

搭建Openstack开源云计算平台插图284

1.38.网络是刚刚创建的,用于给实例上网的,如果在下面也要点上去这里是正常的

搭建Openstack开源云计算平台插图285

1.39.网络接口不用管直接跳到安全组,把缺省安全组点下去,把我们刚刚创建的安全组点上来

搭建Openstack开源云计算平台插图286

1.40.密钥对点上去

搭建Openstack开源云计算平台插图287

1.41.除此之外还可以载入脚本,它可以在安装之后,自动执行脚本

搭建Openstack开源云计算平台插图288

1.42.其他的我们就不看了 直接创建实例

搭建Openstack开源云计算平台插图289

1.43.可以看到机器正在孵化中,也就是在安装中,能看到IP已经分配了

搭建Openstack开源云计算平台插图290

1.44.我们点击进去

搭建Openstack开源云计算平台插图291

1.45.点击控制台

搭建Openstack开源云计算平台插图292

1.46.可以看到机器以及安装完毕了正在加载中 因为是微量级的所以很快

搭建Openstack开源云计算平台插图293

1.47.点击只显示控制台

搭建Openstack开源云计算平台插图294

1.48这是一个用来测试的镜像这里已经写上用户名密码了 我们输入登录进去

搭建Openstack开源云计算平台插图295

1.49.测试机器可以上网,实验成功

搭建Openstack开源云计算平台插图296

至此openstack搭建完毕

注:如果宿主机是ESXI,请开启以下三个,否则实例机器无法获取IP地址!!!

搭建Openstack开源云计算平台插图297

头像

作者:

发表评论

邮箱地址不会被公开。

Demon_运维笔记