OpenStack环境部署

环境配置:

OpenStack环境:

控制节点主机:Centos 7.6-controller(192.168.153.30)
计算节点主机:Centos 7.6-computer01(192.168.153.31)

具体实验过程:

1.安装虚拟机

(1)配置虚拟机为静态IP地址
(2)重启网络服务
(3)检查是否能够解析域名,下载软件包
(4)YUM源备份
(5)更新YUM源,使用阿里云源
(6)使用yum clean all 进行清除缓存
(7)使用命令yum makecache 重新生成缓存
(8)使用yum update进行生成缓存

2.配置chrony时间同步服务

(1)控制节点和计算节点同时安装chrony
(2)编辑配置文件/etc/chronyd.conf
(3)编辑/etc/hosts文件
(4)重新启动虚拟机
(5)重新启动chronyd服务
(6)查看监听开启的端口

3.配置rocky服务

(1)安装rocky
(2)控制节点安装OpenStack客户端

4.安装mysql数据库

(1)安装mysql数据库
(2)创建mysql用户
(3)安装软件包
(4)编译安装mysql数据库
(5)做一个软连接到mysql-5.6.39
(6)将用户主和用户组赋予给mysql目录
(7)编辑mysql配置文件
(8)修改/etc/init.d/mysqld文件的权限
(9)编辑配置文件,添加mysqld环境变量
(10)启动mysqld
(11)登录mysql数据库

5.安装rabbitmqctl服务

(1)添加openstack用户
(2)配置openstack用户权限

6.安装memcached服务

(1)使用yum -y install memcached python-memcached
(2)配置文件/etc/sysconfig/memcached文件

7.安装httpd服务

(1)关闭防火墙和Selinux,可以使用sentenforce 0临时关闭开启httpd服务

8.安装分布式存储可靠键值存储(etcd服务)

(1)安装yum -y install etcd
(2)启用etcd服务:systemctl enable etcd;systemctl start etcd
(3)编辑/etc/hosts文件

9.配置keystone应用环境

(1)使用root用户进行登录mysql数据库,安装配置验证服务数据库
(2)安装验证服务
(3)安装配置验证服务
(4)将验证服务添加到数据库
(5)初始化fernet**存储
(6)配置Apache httpd服务器
(7)创建、配置管理账户脚本keystone.sh
(8)创建域、项目、用户和角色
(9)验证操作
①关闭临时性令牌机制
②作为admin用户,请求认证令牌
③作为myuser用户,请求令牌
④创建OpenStack客户端环境脚本
⑤加载admin-openstack文件来身份认证服务的环境变量位置和admin项目的用户证书
⑥请求认证令牌
⑦补充知识点
⑧查看监听的端口号和/etc/hosts文件

1.安装虚拟机

(1)配置虚拟机为静态IP地址

在安装好系统之后没有IP地址,即使是配置了IP地址也没有IP地址,在配置文件/etc/sysconfig/network-scripts/ifcfg-eno16777736配置文件中将ONBOOT=yes设置为YES,并且配置IP地址为静态ip地址,网关以及DNS即为物理机本地ip地址。

(2)重启网络服务

执行命令systemctl restart network.
再次使用命令ip a sh进行查看IP地址。此时就可以看到IP地址了。

(3)检查是否能够解析域名,下载软件包

使用命令查看是否虚拟机可以解析域名:ping baidu.com -c 2可以正常的返回数据包的话,就可以使用虚拟机自带的编辑器vi了,同时可以进行下载软件包vim,gedit ,lrzsz软件包。

(4)YUM源备份

执行命令:mv/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

(5)更新YUM源,使用阿里云源

使用编辑器vim /etc/yum.repos.d/CentOS-Base.repo,如果本地YUM源不可以使用的话,就可以使用scp [email protected]:源文件的绝对路路径 /目的文件的目录,就可以实现虚拟机之间的文件的下载了。
此处使用命令wget 进行在线下载:wget http://mirrors.aliyun.com/repo/Centos-7.repo
OpenStack环境部署

(6)使用yum clean all 进行清除缓存
(7)使用命令yum makecache 重新生成缓存
(8)使用yum update进行生成缓存

2.配置chrony时间同步服务

(1)控制节点和计算节点同时安装chrony

并且使服务开机自运行。执行命令systemctl enable chronyd/(chrony.service)

(2)编辑配置文件/etc/chronyd.conf

控制节点配置如下:
OpenStack环境部署

(3)编辑/etc/hosts文件

在控制节点和计算节点中的/etc/hosts文件中添加:
192.168.153.30 controller
192.168.153.31 computer01
目录/etc/中更该节点命名:echo “controller” > hostname

(4)重新启动虚拟机

执行命令shutdown -r 0,重启过后就可以使虚拟机的名字进行更改。

(5)重新启动chronyd服务

在控制节点进行重新启动chronyd服务(systemctl restart chronyd),使chronyd服务(systemctl enable chronyd)开机自运行。之后就可以在计算节点进行同步控制节点的时间了。(先在计算节点进行重新启动chronyd服务,使用命令chronyc sources命令进行查看是否同步到了controller)。
OpenStack环境部署

(6)查看监听开启的端口

使用命令netstat -tupln 进行监听此时开启的端口。进行时间同步的chronyd服务是基于UDP协议,端口为323。
OpenStack环境部署

3.配置rocky服务

(1)安装rocky

执行命令:yum -y install centos-release-openstack-rocky(控制节点和计算节点)
所有节点升级软件包:执行命令:yum upgrade

(2)控制节点安装OpenStack客户端

在控制节点安装Openstack客户端:执行命令yum -y install python-openstackclient
编辑配置文件/etc/my.cnf.d/openstack.cnf文件
OpenStack环境部署

4.安装mysql数据库
(1)安装mysql数据库

在控制节点进行安装:使用rz工具进行从本地windows上进行上传文件至linux中,同样也可以使用工具sz可以从linux系统中上传文件至windows系统中。
将mysql文件上传至根目录中 ,并且进行解压,执行命令:tar -zxvf mysql-5.6.19.tar.gz,解压过后可以将压缩包进行删除。
执行命令rm -rf mysql -5.6.19.tar.gz,可以使用命令du -sh mysql-5.6.19显示目录的大小。
OpenStack环境部署
执行命令du mysql-5.6.19显示目录中各个文件的大小。

(2)创建mysql用户

首先使用命令mkdir -pv /application进行创建目录/application,要想使用mysql数据库的话,就必须要有对应的mysql用户,执行命令创建用户:useradd -s /sbin/nologin -m mysql。

(3)安装软件包

下载安装软件包执行命令yum -y install cmake ncurses-devel libaio-devel
下载安装软件包yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools

(4)编译安装mysql数据库

进入目录mysql-5.6.39中进行编译安装mysql数据库
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.39 -DMYSQL_DATADIR=/application/mysql-5.6.39/data -DMYSQL_UNIX_ADDR=/application/mysql-5.6.39/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_DOWNLOADS=1 -DWITH_DEBUG=0

编译完成后会出现:
OpenStack环境部署
之后使用 make && make install 进行安装。
安装完成后,使用命令ls -al 查看各个文件的权限。(首先将mysql目录移动到application目录中)执行命令:mv mysql-5.6.39 /application/。

(5)做一个软连接到mysql-5.6.39

执行命令:ln -s mysql-5.6.39 mysql
再次使用命令ls -al命令进行查看,就会出现相对应的软连接
OpenStack环境部署
执行命令cd mysql,ls进行查看 。创建临时性目录tmp执行命令mkdir -pv tmp
再次进入/application目录中使用命令ls -al进行查看文件的相应权限
OpenStack环境部署

(6)将用户主和用户组赋予给mysql目录

执行命令将mysql 用户组和用户主赋予给mysql 目录:chown -R mysql:mysql mysql
chown -R mysql.mysql mysql-5.6.39
OpenStack环境部署

(7)编辑mysql配置文件

此时同样要对mysql的配置文件进行配置,在配置之前要先对文件进行备份处理
OpenStack环境部署
OpenStack环境部署
OpenStack环境部署

(8)修改/etc/init.d/mysqld文件的权限

基于安全性方面的考虑,将mysqld 文件的权限设置为700,即只能是用户主执行对mysqld的读,写,可执行权限。
OpenStack环境部署

(9)编辑配置文件,添加mysqld环境变量

查看系统路径,执行命令echo $PATH
OpenStack环境部署
编辑文件/etc/profile,添加路径
OpenStack环境部署
编译文件,是刚才添加的路径起作用
source /etc/profile
再次查看路径
OpenStack环境部署
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
执行该命令时会出现以下错误:
OpenStack环境部署
此时可以进入 cd /application/mysql/scripts/,为mysql_install_db文件进行权限的更改:chmod 777 mysql_install_db
出现以下输出信息,就代表已经安装完成了。
OpenStack环境部署
首先查看一下监听到的端口
OpenStack环境部署

(10)启动mysqld

再次查看监听到的端口,从输出信息中已经可以看出,3306端口已经开启了
OpenStack环境部署

(11)登录mysql数据库

使用/etc/init.d/mysqld stop进行停止,默认没有设置任何密码就可以登录mysql数据库。
OpenStack环境部署
OpenStack环境部署
OpenStack环境部署

5.安装rabbitmqctl服务

(1)添加openstack用户

执行命令:rabbitmqctl add_user openstack [email protected]
OpenStack环境部署

(2)配置openstack用户权限

允许写,读,访问权限:
rabbitmqctl set_permissions openstack “." ".” “.*”
OpenStack环境部署

6.安装memcached服务

服务的身份认证极值使用memcached来缓存令牌,memcached服务通常在控制节点上运行,对于生产部署,我们建议启用防火墙,身份验证和加密的组合以保护器安全。

(1)使用yum -y install memcached python-memcached

OpenStack环境部署

(2)配置文件/etc/sysconfig/memcached文件

在配置之前可以先使用命令ll | grep memcached进行查看,是否含有配置文件memcached,配置完成之后。
执行命令systemctl start memcached启动服务,执行命令systemctl enable memcached将memcached服务设置为开机即启动
OpenStack环境部署

7.安装httpd服务

(1)关闭防火墙和Selinux,可以使用sentenforce 0临时关闭开启httpd服务

OpenStack环境部署

8.安装分布式存储可靠键值存储(etcd服务)

(1)安装yum -y install etcd
(2)启用etcd服务:systemctl enable etcd;systemctl start etcd

OpenStack环境部署
OpenStack环境部署

(3)编辑/etc/hosts文件

OpenStack环境部署

9.配置keystone应用环境

(1)使用root用户进行登录mysql数据库,安装配置验证服务数据库

执行命令create database keystone;
keystone数据库的访问权限配置,密码配置为”[email protected]
OpenStack环境部署

(2)安装验证服务

OpenStack环境部署

(3)安装配置验证服务

配置验证服务与数据库访问
编辑配置文件/etc/keystone/keystone.conf
connection = mysql+pymysql://keystone:[email protected]/keystone (约743行添加)
配置Fernet令牌提供
Porvider = fernet (约2832行添加)
OpenStack环境部署
OpenStack环境部署

(4)将验证服务添加到数据库

su -s /bin/sh -c ‘keystone-manage db_sync’ keystone
OpenStack环境部署

(5)初始化fernet**存储

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
OpenStack环境部署

(6)配置Apache httpd服务器

编辑配置文件/etc/httpd/conf/httpd.conf,启动httpd服务,设置开机即启动,并且创建软连接
执行命令:ln -s /usr.share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
OpenStack环境部署
OpenStack环境部署

(7)创建、配置管理账户脚本keystone.sh

查看文件的配置内容
OpenStack环境部署

(8)创建域、项目、用户和角色

首先查看用户列表
OpenStack环境部署
执行命令: openstack domain create --description “Hello World Domain” example
创建新的域
OpenStack环境部署
执行以下命令,在默认的域下,创建一个service服务项目,添加环境中每个服务的唯一用户
OpenStack环境部署
在默认的域下创建一个myproject项目
OpenStack环境部署
创建myuser用户
OpenStack环境部署
创建myrole角色
OpenStack环境部署
将myrole角色添加到myproject项目和myuser用户,并且使用openstack user list和oppenstack project list进行查看
OpenStack环境部署

(9)验证操作

①关闭临时性令牌机制
撤销环境变量:Unset OS_AUTH_URL OS_PASSWORD
②作为admin用户,请求认证令牌
OpenStack环境部署
③作为myuser用户,请求令牌
OpenStack环境部署
OpenStack环境部署
④创建OpenStack客户端环境脚本
创建admin和myuser用户环境变量脚本
OpenStack环境部署
⑤加载admin-openstack文件来身份认证服务的环境变量位置和admin项目的用户证书
OpenStack环境部署
⑥请求认证令牌
OpenStack环境部署
⑦补充知识点
在/var/log/下会记载有系统的日志信息,在这里简单的查看一下boot.log-20191202
OpenStack环境部署
⑧查看监听的端口号和/etc/hosts文件
OpenStack环境部署
OpenStack环境部署