Oenstack Queens 部署全过程(未更新完)

1、安装并配置系统基础环境

1.1 操作系统版本

 CentOS 7.4  64bit

1.2 配置IP地址信息

首先建议大家用vim,vim和vi操作的区别就是高亮,vim能让人更清晰的看出代码之间的差异。

yum install vim

正式配置我们的网卡信息,我的网卡有四张,名字为ens33,ens34,ens35,ens36

#配置管理网/API网络的IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#配置Ovelary网络的IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens34
vim /etc/sysconfig/network-scripts/ifcfg-ens35
vim /etc/sysconfig/network-scripts/ifcfg-ens36
#四张网卡操作均相同
#1、ONBOOT=yes
#2、删除网卡UUID

1.3 配置主机名

这项操作是为了让今后对节点操作的时候心中不乱。

hostnamectl set-hostname controller
hostnamectl set-hostname cinder
hostnamectl set-hostname compute-01
hostnamectl set-hostname compute-02

1.4 配置域名解析

此项操作在controller,compute01,compute02和cinder结点都相同。分别配置他们的DNS。

vi /etc/hosts
#复制如下信息至四台结点
#这是我自己的ens33网卡的信息,其中具体的ip地址要按照你们的网络分配的IP来
#不要完全复制我的网卡IP地址。
192.168.124.27    controller
192.168.124.31    network
192.168.124.32    compute-01
192.168.124.33    compute-02 

1.5 关闭Selinux

这项操作要在四个结点都进行操作

vim /etc/sysconfig/selinux
#设置如下信息
SELINUX=disabled
#该操作需要重启才能生效,但先别急着重启。

1.6 关闭并禁用防火墙

这项操作同样要在四个结点都进行操作

#关闭防火墙(重启后才生效)
systemctl stop firewalld
#禁用防火墙
systemctl disable firewalld

1.7 重启系统

重启系统,让selinux的关闭,以及防火墙的关闭以及禁用操作生效。

reboot

查看一下selinux关闭成功了没:

getenforce
#显示应该为disabled

再查看一下防火墙关闭成功了没:

systemctl status firewalld

1.8 配置网络时间协议(NTP)

这个操作也要再四台虚拟机同时操作,但控制节点和其他节点不同,他的目的是让其他节点的时间和控制节点同步。

#1)首先四台结点都要安装chrony包
yum install chrony -y
#2)下面的操作在controller结点的配置文件设置
vi /etc/chrony.conf
#设置允许以下网段的信息:(直接找到allow开头的一行,把注释去掉进行修改)
allow 192.168.124.0/24
#3)下面的操作在cinder,compute01,compute02结点的配置文件设置
vi /etc/chrony.conf
#注释掉前面server0,server1,server2,server3的三行代码,同时在其下添加一行:
server controller iburst
#4)下面开启chrony服务,此操作要在四个结点都进行
systemctl enable chronyd.service
systemctl start chronyd.service
#5)查看一下服务开启情况
chronyc sources
#正常情况下,在compute01,compute02,cinder结点执行上述命令后
#会显示一个controller的信息,不会出现其他信息。
#如果出现了的列表中没有controller,则执行以下操作,
#如果出现了就以下操作就不用进行操作了。
#6)安装ntpdate
yum install ntpdate
ntpdate controller
#7)重启并查看一下服务开启情况
systemctl restart chronyd.service
chronyc sources
#此时应该已经成功了

1.9 安装Stack软件仓库 和 OpenStack client

 yum install centos-release-openstack-queens
 yum install python-openstackclient

  • 注意,以下部分都是在控制节点安装配置的

1.10 安装并配置SQL数据库

yum install mariadb mariadb-server python2-PyMySQL -y
vim /etc/my.cnf.d/openstack.cnf
# 打开配置文档并修改以下信息,取消其注释
#[mysqld]
bind-address = 192.168.124.27
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
# 退出编辑文档,设置开机启动并开启服务
systemctl enable mariadb.service
systemctl start mariadb.service
# 注意这一步开始的时候要注意执行完这个语句,会让你选择
# 先按一个Enter,然后依次输入y,n,y,y
# 其中的n那一项为是否禁止远程连接数据库
mysql_secure_installation

1.11 安装并配置消息队列

# 安装rabbitmq-server
yum install rabbitmq-server -y
# 启动消息队列服务并将其配置为开机启动
systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server
# 添加 openstack 用户,RABBIT_PASS 为密码
rabbitmqctl add_user openstack RABBIT_PASS
# 给openstack用户配置写和读权限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

1.12 安装并配置Memcached

yum install memcached python-memcached -y
vim /etc/sysconfig/memcached
# 编辑如下选项,记住不要复制过去,只是在选项括号内的末尾添加上controller即可
OPTIONS="-l 127.0.0.1,::1,controller"
# 启动Memcached并将其配置为开机启动
systemctl enable memcached.service
systemctl start memcached.service

1.13 安装并配置etcd

yum install etcd -y
vim /etc/etcd/etcd.conf
# 编辑以下信息,其中192.168.124.27为我本机ens33网卡的ip地址
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.124.27:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.124.27:2379"
ETCD_NAME="controller"
# 退出编辑并启动服务
systemctl start etcd

2、 安装部署认证服务 (Identity Service )

Keystone为所有OpenStack服务提供身份认证和授权,跟踪用户以及它们的权限,提供一个可用服务以及API的列表。接收前台请求的Keystone API和后台的Keystone-db。

2.1 创建Keystone 用户、数据库并分配访问权限

mysql -u root -p
#创建数据库keystone
CREATE DATABASE keystone;
#退出数据库
\q
#配置数据库权限
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';

2.2 安装并配置

yum install openstack-keystone httpd mod_wsgi
vim /etc/keystone/keystone.conf
#配置下面的参数
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
[token]
# ...
provider = fernet

2.3 构建认证服务的数据库

su -s /bin/sh -c "keystone-manage db_sync" keystone

2.4 初始化 Fernet key

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

2.5 引导身份服务

keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
  --bootstrap-admin-url http://controller:35357/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne
#管理员的密码为  ADMIN_PASS ,可以替换,第一次部署不建议替换。

2.6 配置Apache HTTP 服务

vi /etc/httpd/conf/httpd.conf
# 编辑下列内容
ServerName controller
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
systemctl enable httpd.service
systemctl start httpd.service

2.7 配置管理账户

export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

2.8 创建domain, projects, users, and roles

openstack domain create --description "An Example Domain" example
openstack project create --domain default \
  --description "Service Project" service
openstack project create --domain default \
  --description "Demo Project" demo
openstack user create --domain default \
  --password-prompt demo
# 密码 DEMO_PASS
openstack role create user
openstack role add --project demo --user demo user

2.9 验证操作

unset OS_AUTH_URL OS_PASSWORD
openstack --os-auth-url http://controller:35357/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name admin --os-username admin token issue
# 密码  ADMIN_PASS
openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name demo --os-username demo token issue
# 密码 DEMO_PASS

3、安装镜像服务 - Glance(在控制节点安装)

OpenStack镜像服务是IaaS的核心服务,它接受磁盘镜像或服务器镜像API请求,和来自终端用户或OpenStack计算组件的元数据定义。
它也支持包括OpenStack对象存储在内的多种类型仓库上的磁盘镜像或服务器镜像存储。
大量周期性进程运行于OpenStack镜像服务上以支持缓存。
同步复制(Replication)服务保证集群中的一致性和可用性。
其它周期性进程包括auditors, updaters, 和 reapers。
OpenStack镜像服务包括以下组件:
glance-api
接收镜像API的调用,诸如镜像发现、恢复、存储。
glance-registry
存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。

3.1 创建 OpenStack 客户端环境脚本

# 创建admin项目和用户客户端环境变量脚本
vim admin-openrc
# 复制以下内容
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

# 创建demo项目和用户客户端环境变量脚本
vim demo-openrc
# 复制以下内容
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

3.2 使用脚本

. admin-openrc

3.3 请求认证令牌

openstack token issue

3.4 安装Glance

# 创建创建Glance数据库、服务凭证和API端点。
mysql -u root -p
# 创建 glance 数据库
CREATE DATABASE glance;		
# 对``glance``数据库授予恰当的权限 , GLANCE_DBPASS 数据库密码可以替换,第一次安装不建议替换
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
  IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
  IDENTIFIED BY 'GLANCE_DBPASS';
# 退出数据库
\q

3.5 获得 admin 凭证来获取只有管理员能执行的命令的访问权限

. admin-openrc

3.6 创建 glance 用户 , 密码 GLANCE_PASS

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

3.7 添加 admin 角色到 glance 用户和 service 项目上

openstack role add --project service --user glance admin

3.8 创建glance服务实体

openstack service create --name glance \
  --description "OpenStack Image" image

3.9 创建镜像服务的 API 端点

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

3.10 安装glance软件包

yum install openstack-glance -y
# 编辑文件 /etc/glance/glance-api.conf 并完成如下修改:
vim /etc/glance/glance-api.conf
# 在 [database] 部分,配置数据库访问:(如果修改了glance用户密码要替换 GLANCE_PASS )
[database]
# ...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance

在 [keystone_authtoken][paste_deploy] 部分,配置认证服务访问:
[keystone_authtoken]
# ...
auth_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 = GLANCE_PASS

[paste_deploy]
# ...
flavor = keystone


在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置:

[glance_store]
# ...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/


# 编辑 /etc/glance/glance-registry.conf 文件,并完成如下配置:
vim /etc/glance/glance-registry.conf

# 在 [database] 部分,配置数据库访问(如果更改了密码,注意替换GLANCE_DBPASS):
[database]
# ...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance

在 [keystone_authtoken][paste_deploy] 部分,配置认证服务访问(如果更改了密码,注意替换GLANCE_PASS):

[keystone_authtoken]
# ...
auth_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 = GLANCE_PASS

[paste_deploy]
# ...
flavor = keystone

3.11 写入镜像服务数据库

su -s /bin/sh -c "glance-manage db_sync" glance

3.12 启动镜像服务、配置开机启动

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

3.13 测试验证

# 下载源镜像cirros:
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img

# 使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它
openstack image create "cirros" \
  --file cirros-0.3.5-x86_64-disk.img \
  --disk-format qcow2 --container-format bare \
  --public
  
# 确认镜像的上传并验证属性
openstack image list

猜你喜欢

转载自blog.csdn.net/qq_32473685/article/details/83959241