Openstack ocata版安装

Openstack ocata版

1. Openstack基础架构

在这里插入图片描述
在这里插入图片描述

  • 核心服务

    • Dashboard控制台 :web方式管理云平台,建云主机,分配网络,配安全组,加云盘。
    • Nova计算:负责响应虚拟机创建请求、调度、销毁云主机
    • Neutron网络:实现SDN(软件定义网络),提供一整套API,用户可以基于该API实现自己定义专属网络,不同厂商可以基于此API提供自己的产品实现
  • 储存服务

    • Swift对象存储 :REST风格的接口和扁平的数据组织结构。RESTFUL HTTPAPI来保存和访问任意非结构化数据,ring环的方式实现数据自动复制和高度可以扩展架构,保证数据的高度容错和可靠性
    • Cinder块存储:提供持久化块存储,即为云主机提供附加云盘。
  • 共享服务

    • Keystone.认证服务 :为访问openstack各组件提供认证和授权功能,认证通过后,提供一个服务列表(存放你有权访问的服务),可以通过该列表访问各个组件。
    • Glance镜像服务: 为云主机安装操作系统提供不同的镜像选择
    • Ceilometer计费服务 :
      收集云平台资源使用数据,用来计费或者性能监控

2. Openstack部署安装ocata 版

官方文档
https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/environment-packages.html

镜像下载网站
http://mirrors.ustc.edu.cn/centos-cloud/centos/7/images/ 国内中科大
https://docs.openstack.org/image-guide/obtain-images.html 官方镜像

queens版yum仓库
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y centos-release-openstack-queens

2.1 准备环境

主机名称 角色 IP 内存
controller 控制节点 192.168.10.9 4G
compute1 计算节点 192.168.10.10 1G

添加hosts文件

192.168.10.9 controller
192.168.10.10 compute1

2.1.1 时间同步

#服务端
1:安装chrony
yum install chrony
vim /etc/chrony.conf
	allow 192.168.10.0/24
systemctl restart chronyd
systemctl enable chronyd

#客户端
1:#安装chrony
yum install chrony
sed -ri '/^server/d' /etc/chrony.conf
sed -ri '3aserver 192.168.10.9 iburst' /etc/chrony.conf
systemctl restart chronyd
2:#设置每隔一小时同步一次
crontab -e
* */1 * * * /usr/bin/systemctl restart chronyd

2.1.2 配置YUM源,并安装客户端

#所有节点
1:#安装阿里BASH仓库
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


2:#安装OpenStack仓库
openstack_ocata_rpm.tar.gz下载
链接:https://pan.baidu.com/s/1UDDJ5gdhQHbU1iKUv4ijGA 
提取码:oc1c 
复制这段内容后打开百度网盘手机App,操作更方便哦
上传到系统中
tar zxvf openstack_ocata_rpm.tar.gz -C /tmp
cat >/etc/yum.repos.d/openstack.repo <<-EOF
[openstack]
name=openstack
baseurl=file:///tmp/repo
enabled=1
gpgcheck=0
EOF

3:#验证 清楚缓存
yum clean all
yum install python-openstackclient -y

2.1.3 安装数据库

#控制节点
1:安装软件包
yum install mariadb mariadb-server python2-PyMySQL
#openstack是由python开发所以需要python2-PyMySQL用来连接数据库

2:#修改mariadb配置文件
vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.10.9
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

3:#启动数据库
systemctl enable mariadb.service
systemctl start mariadb.service

4:#mariadb安全初始化
mysql_secure_installation

2.1.4 安装消息列队rabbitmq

#控制节点
1:#安装消息列队
yum install rabbitmq-server

2:#启动消息列队服务
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

3:#在rabbitmq创建用户
rabbitmqctl add_user openstack 123.com.cn

4:#为刚刚创建的oppenstack授权
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

2.1.5 安装memcache缓存

#控制节点
1:#安装mecache 
各类服务的身份认证机制使用Memcached缓存令牌。缓存服务memecached通常运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。
yum install memcached python-memcached

2:#配置/etc/sysconfig/memcached
##修改最后一行
vim /etc/sysconfig/memcached
OPTIONS="-l 0.0.0.0"

3:#启动服务
systemctl enable memcached.service
systemctl start memcached.service

2.1.6 检查端口是否启动

netstat -lntup | grep -E '123|3306|5672|11211'

2.2 安装keystone认证服务

#控制节点操作
1:创库授权
mysql -u root -p
#创建库
CREATE DATABASE keystone;
#对库进行授权
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'
IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' 
IDENTIFIED BY '123456';

2:安装keystone服务
#http配合mode_wsgi插件调用python项目
yum install openstack-keystone httpd mod_wsgi openstack-utils -y

#过滤keystone配置文件以#号开头
cp /etc/keystone/keystone.conf{
   ,.bak}
grep -Ev '^$|#' /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf

#修改keystone配置文件
vim /etc/keystone/keystone.conf
在 [database] 部分,配置数据库访问:
[database]
connection = mysql+pymysql://keystone:123456@controller/keystone

在``[token]``部分,配置Fernet UUID令牌的提供者。
[token]
provider = fernet

3:同步数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
##切到普通用户或程序用户下,使用指定的shell执行某一条命令

#检查数据库是否有表
mysql keystone -e 'show tables;' &>/dev/null ;echo $?
无表:1表示失败请检查数据库连接情况

#初始化令牌凭据
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

#初始化keystone身份认证服务
 keystone-manage bootstrap --bootstrap-password 123456 \
  --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
  
4:配置httpd
echo "ServerName controller" >> /etc/httpd/conf/httpd.conf
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
##启动httpd等效与keystone
systemctl enable httpd.service
systemctl start httpd.service

5:#声明环境变量
vim /root/.bashrc
export OS_USERNAME=admin
export OS_PASSWORD=123456
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

6:# 验证
openstack user list
+----------------------------------+-------+
| ID                               | Name  |
+----------------------------------+-------+
| 7c559e9b3a1a4301919002fc0ae3e0f3 | admin |
+----------------------------------+-------+
7:#创建服务中包含有用户service的项目
openstack project create --domain default --description "Service Project" service


#验证
openstack project list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| df96e84e4e4044269d7decdf61457dba | admin   |
| fd5076aba0094fcea1c01ddeefb44f4c | service |
+----------------------------------+---------+

2.3 安装glance服务

功能:管理镜像模板机 端口号9191 9292

1:创库授权
mysql -u root -p
#创建glance库
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '123.com.cn';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123.com.cn';

2:keystone上创建用户,关联用户
#创建 glance 用户:
openstack user create --domain default --password 123456 glance
#添加 admin 角色到 glance 用户和 service 项目上。
openstack role add --project service --user glance admin

3:keystone上创建服务 
#创建``glance``服务实体:
openstack service create --name glance --description "OpenStack Image" image
#创建镜像服务的 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

4:安装服务软件包
yum install openstack-glance 
5:修改配置文件(连接数据库,keystone授权)
#修改glance-api.conf文件 作用:上传下载删除 
cp /etc/glance/glance-api.conf{
   ,.bak}
cat /etc/glance/glance-api.conf.bak  | grep -Ev '^$|#' > /etc/glance/glance-api.conf

vim /etc/glance/glance-api.conf
[database]
# ...
connection = mysql+pymysql://glance:123.com.cn@controller/glance

[keystone_authtoken]
# ...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = 123456

[paste_deploy]
# ...
flavor = keystone

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

#修改glance-registry.conf文件  作用:修改镜像的属性 x86 根分区大小
cp /etc/glance/glance-registry.conf{
   ,.bak}
cat /etc/glance/glance-registry.conf.bak  | grep -Ev '^$|#' > /etc/glance/glance-registry.conf
vim /etc/glance/glance-registry.conf
[database]
# ...
connection = mysql+pymysql://glance:123.com.cn@controller/glance

[keystone_authtoken]
# ...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = 123456

[paste_deploy]
# ...
flavor = keystone
6:同步数据库
su -s /bin/sh -c "glance-manage db_sync" glance
mysql glance -e 'show tables' | wc -l
16

7:启动服务
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
[root@controller ~]# netstat -ant | grep -E '9191|9292'
tcp        0      0 0.0.0.0:9191            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:9292            0.0.0.0:*               LISTEN

8.命令行上传镜像
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public
#验证
[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 69bfc92f-ec7f-4f42-a3d6-8dc8d848cf5f | cirros | active |
+--------------------------------------+--------+--------

2.4 安装nova服务

2.4.1 控制节点安装nova服务

1:创库授权
mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123.com.cn';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123.com.cn';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123.com.cn';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123.com.cn';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123.com.cn';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123.com.cn';

2:keystone上创建用户,关联角色
#创建 nova 用户
openstack user create --domain default --password 123456 nova
#给 nova 用户添加 admin 角色
openstack role add --project service --user nova admin

#placement 追踪云主机资源使用具体情况 创建 placement 用户
openstack user create --domain default --password 123456 placement
#给placement用户添加admin角色
openstack role add --project service --user placement admin

3:keystone上创建服务,http访问地址(api地址)
#创建 nova 服务实体:
openstack service create --name nova --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

#建 placement 服务实体:
openstack service create --name placement --description "Placement API" placement
openstack endpoint create --region RegionOne placement public http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778

4:安装服务软件包
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api 

openstack-nova-api				管理者
openstack-nova-conductor		连接数据库代理
openstack-nova-console			控制台 账号密码
openstack-nova-novncproxy   	web界面版的vnc客户端
openstack-nova-scheduler		节点调度器
openstack-nova-placement-api	最总虚拟机所使用的资源
openstack-nova-compute			计算节点

5:修改配置文件(连接数据库,keystone授权)
#修改 nova配置文件
cp /etc/nova/nova.conf{
   ,.bak}
cat /etc/nova/nova.conf.bak | grep -Ev '^$|#'  > /etc/nova/nova.conf
vim /etc/nova/nova.conf
[DEFAULT]
##启动nova服务api喝metadata的api
enabled_apis = osapi_compute,metadata
##连接消息队列rabbitmq
transport_url = rabbit://openstack:123.com.cn@controller
my_ip = 192.168.10.9
#启动enutron网络服务,禁用nova内置防火墙
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值