centos7上安装0penStack
centos7上安装0penStack
author:headsen chen
2017-10-09 20:41:54
个人原创,欢迎转载,请注明作者,出去,否则依法追究责任
一,准备工作(配置ip地址,主机名,yum包安装)
--------------------------------------------------------------------------------------------------------------------------
[root@localhost network-scripts]# uname -a
Linux controller 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost network-scripts]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
vim ifcfg-eno16777736
systemctl restart network
[root@localhost network-scripts]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.11 netmask 255.255.255.0 broadcast 10.0.0.255
i
eno33554984: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.13.148 netmask 255.255.255.0 broadcast 192.168.13.255
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
确保能ping通外网:
ping baidu.com
设置主机名:
hostname controller
hostnamectl set-hostname controller
设置主机名解析地址:
vim /etc/hosts
ping自己能通
确保时间正确
查看yum源,确保没有安装epel的扩展库
yum clean all
yum repolist
安装openstack的扩展源:
yum install centos-release-openstack-newton
升级yum的安装包仓库
yum upgrade
reboot -----------------------------------------(一定要重启,否则后面的做会报错,因为内核等文件有可能改变了)
yum install python-openstackclient
yum install openstack-selinux
二,安装OpenStack的各个组件:
---------------------------------------------------------------------------------------------------------------------------------------------------------
安装数据库:
yum install mariadb mariadb-server python2-PyMySQL
新建并编辑一个openstack的配置文件
启动数据库:
systemctl enable mariadb.service
systemctl start mariadb.service
设置root密码,移除匿名用户,运行root远程登录,删除test库,加载设置
mysql_secure_installation
安装消息队列:
- yum install rabbitmq-server
启动消息队列服务并将其配置为随系统启动:
- systemctl enable rabbitmq-server.service
- systemctl start rabbitmq-server.service
添加 openstack 用户并设置密码为RABBIT_PASS:
[root@controller ~]# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...
[root@controller ~]#
给``openstack``用户配置写和读权限:
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
[root@controller ~]#
安装memcached,缓存服务memecached运行在控制节点
- yum install memcached python-memcached -y
- systemctl enable memcached.service
- systemctl start memcached.service
三,安装认证服务
,1,在你配置 OpenStack 身份认证服务前,你必须创建一个数据库和管理员令牌
用数据库连接客户端以 root 用户连接到数据库服务器:
mysql -u root -p
创建 keystone 数据库:
CREATE DATABASE keystone;
对``keystone``数据库授予恰当的权限:
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';(若只有这一条则不行,不能再本地登录,所以必需两条都加上)
这里的用户密码设为: KEYSTONE_DBPASS
退出数据库
2, 生成一个随机值在初始的配置中作为管理员的令牌。
[root@controller ~]# openssl rand -hex 10
使用带有``mod_wsgi``的Apache HTTP服务器来服务认证服务请求,端口为5000和35357。缺省情况下,Kestone服务仍然监听这些端口。然而,本教程手动禁用keystone服务。
3,安装openstack的认证组件:keystone
yum install openstack-keystone httpd mod_wsgi
vim /etc/keystone/keystone.conf
4,初始化身份认证服务的数据库(又叫同步数据库,在数据库keystone中生成一些表):
su -s /bin/sh -c "keystone-manage db_sync" keystone (忽略输出中任何不推荐使用的信息。)
初始化Fernet keys:
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
5,配置 Apache HTTP 服务器
编辑``/etc/httpd/conf/httpd.conf`` 文件,配置``ServerName`` 选项为控制节点:
vim /etc/httpd/conf/httpd.conf
创建文件:vim /etc/httpd/conf.d/wsgi-keystone.conf,内容如下
- Listen 5000
- Listen 35357
- <VirtualHost *:5000>
- WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
- WSGIProcessGroup keystone-public
- WSGIScriptAlias / /usr/bin/keystone-wsgi-public
- WSGIApplicationGroup %{GLOBAL}
- WSGIPassAuthorization On
- ErrorLogFormat "%{cu}t %M"
- ErrorLog /var/log/httpd/keystone-error.log
- CustomLog /var/log/httpd/keystone-access.log combined
- <Directory /usr/bin>
- Require all granted
- </Directory>
- </VirtualHost>
- <VirtualHost *:35357>
- WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
- WSGIProcessGroup keystone-admin
- WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
- WSGIApplicationGroup %{GLOBAL}
- WSGIPassAuthorization On
- ErrorLogFormat "%{cu}t %M"
- ErrorLog /var/log/httpd/keystone-error.log
- CustomLog /var/log/httpd/keystone-access.log combined
- <Directory /usr/bin>
- Require all granted
- </Directory>
- </VirtualHost>
启动 Apache HTTP 服务并配置其随系统启动:
systemctl enable httpd.service
systemctl start httpd.service
6,身份认证服务提供服务的目录和他们的位置。每个你添加到OpenStack环境中的服务在目录中需要一个 service 实体和一些 API endpoints 。
默认情况下,身份认证服务数据库不包含支持传统认证和目录服务的信息。你必须使用:doc:keystone-install 章节中为身份认证服务创建的临时身份验证令牌用来初始化的服务实体和API端点
[root@controller ~]# export OS_TOKEN=ADMIN_TOKEN
[root@controller ~]# export OS_TOKEN=6d6817ef2478a89cc6cc
[root@controller ~]# export OS_URL=http://controller:35357/v3
[root@controller ~]# export OS_IDENTITY_API_VERSION=3
7,创建服务实体和身份认证服务:(在你的Openstack环境中,认证服务管理服务目录。服务使用这个目录来决定您的环境中可用的服务。)
openstack service create --name keystone --description "OpenStack Identity" identity
身份认证服务管理了一个与您环境相关的 API 端点的目录。服务使用这个目录来决定如何与您环境中的其他服务进行通信。
OpenStack使用三个API端点变种代表每种服务:admin,internal和public。默认情况下,管理API端点允许修改用户和租户而公共和内部APIs不允许这些操作。在生产环境中,处于安全原因,变种为了服务不同类型的用户可能驻留在单独的网络上。对实例而言,公共API网络为了让顾客管理他们自己的云在互联网上是可见的。管理API网络在管理云基础设施的组织中操作也是有所限制的。内部API网络可能会被限制在包含OpenStack服务的主机上。此外,OpenStack支持可伸缩性的多区域。为了简单起见,本指南为所有端点变种和默认``RegionOne``区域都使用管理网络。
创建认证服务的 API 端点:
openstack service create --name keystone --description "OpenStack Identity" identity
The request you have made requires authentication. (HTTP 401) (Request-ID: req-1407fbf2-e274-4f51-aa48-c309640f1c6a)
[root@controller ~]# openstack endpoint create --region RegionOne identity public http://controller:5000/v3
The request you have made requires authentication. (HTTP 401) (Request-ID: req-93240dd6-7757-42e0-933f-5dcd13b29a9b)
[root@controller ~]# openstack endpoint create --region RegionOne identity internal http://controller:5000/v3
The request you have made requires authentication. (HTTP 401) (Request-ID: req-1e21beda-1c4e-43c2-bd46-474afb989538)
[root@controller ~]# openstack endpoint create --region RegionOne identity admin http://controller:35357/v3
The request you have made requires authentication. (HTTP 401) (Request-ID: req-8cbbcaeb-6d58-4889-a7c1-1ed93b114ad2)
[root@controller ~]#
8,创建域、项目、用户和角色(身份认证服务为每个OpenStack服务提供认证服务。认证服务使用 T domains, projects (tenants), :term:`users<user>`和 :term:`roles<role>`的组合。)
centos7上安装0penStack的更多相关文章
- 在centos7上安装Jenkins
在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...
- 在 CentOS7 上安装 zookeeper-3.4.9 服务
在 CentOS7 上安装 zookeeper-3.4.9 服务 1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/service ...
- 在 CentOS7 上安装 MongoDB
在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...
- 在 CentOS7 上安装 MySQL5.7
在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建 ...
- 在 CentOS7 上安装 Tomcat9
在 CentOS7 上安装 Tomcat9 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目 ...
- 在CentOS7上安装JDK1.8
在CentOS7上安装JDK1.8 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目录 to ...
- 在Centos7上安装漏洞扫描软件Nessus
本文摘要:简单叙述了在Centos7上安装Nessus扫描器的过程 Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件,Nessus的用户界面是基于Web界面来访问Nessus漏洞扫描器 ...
- 如何在centos7上安装源码包
在我们使用linux的过程中,有很多程序是通过红帽官网给的系统中安装的,但是一般来说,系统更新的速度比较慢,如果这个时候我们又想用最新版的该怎么办呢?总不能一直等系统升级吧╮(╯﹏╰)╭所以,我们可以 ...
- Centos7上安装docker (转)
Centos7上安装docker Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如 ...
随机推荐
- 蚂蚁爬杆问题 UVA 10881
算法入门经典训练指南上的题. 这里有必要讲一下蚂蚁爬杆问题:每只蚂蚁都有一个初始方向,相撞会转向,关键就是相撞的处理,由于速度并不会改变,两只蚂蚁相撞,可以看做,两只蚂蚁穿过对方,继续沿原方向前进,经 ...
- mysql的常用引擎
在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM. 首先: 1.简单介绍这两种引擎,以及该如何去选择.2.这两种引擎所使用的数据结构是什么. 1. a.Innodb引擎,Inn ...
- mysql修改记录
增加一列:alter table bf_agt_dep_acct_sap_sub add column cust_age varchar(10) not null; 改变属性:alter table ...
- 判断二叉树是否二叉排序树(BST)
算法思想:由于二叉排序树的中序遍历可以得到一个有序的序列,因此,我们可以使用中序遍历进行求解. 代码如下: #include <stack> using namespace std; ty ...
- python语言中的AOP利器:装饰器
一.前言 面向切面编程(AOP)是一种编程思想,与OOP并不矛盾,只是它们的关注点相同.面向对象的目的在于抽象和管理,而面向切面的目的在于解耦和复用. 举两个大家都接触过的AOP的例子: 1)java ...
- Minicom串口工具安装及配置
Minicom串口工具安装及配置 1. 简述 嵌入式开发多采用串口线连接电脑进行开发及调试. 2 安装及配置串口工具(以Minicom为例) Tiny4412开发板提供的有RS232电平的DB9公头接 ...
- VxWorks 任务
任务:在执行时每个程序都被称之为任务.VxWorks操作系统中,任务可以直接地或者以共享方式访问大多数系统资源,为了维护各自的线程,每个任务必须保持有足够的上下文环境.(1) 任务状态:就绪(R ...
- 利用squid 搭建简单的透明代理服务器
环境介绍 虚拟主机1: ip eth0192.168.0.100/24 eth1: 200.168.0.100/24 虚拟主机2(模拟外网) 200.168.0.109/24 (运行web serve ...
- VxWorks镜像简介
VxWorks镜像可分为三类: 可加载型VxWorks镜像:存储在开发机上,运行在板上RAM中 基于ROM的VxWorks镜像:存储在板上ROM,运行在板上RAM中 ROM驻留的VxWor ...
- TCP为何采用三次握手来建立连接,若采用二次握手可以吗
1. TCP简介 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的.基于IP的传输层协议,采用三次握手确认建立一个连接. TCP为 ...