Openstack-mitaka 使用及搭建(一)

1.1.环境说明

说明:本文档中涉及到的所有主机的操作系统均为Centos7.2x86_64系统,使用的光盘为centos7-x86_64-dvd-1511.iso

控制节点:

主机名:controller

RAM: 4G

管理接口:192.168.31.11/24 桥接

承载虚拟机流量接口:10.0.0.2/24 vmnet1

计算节点:

主机名: computer1

RAM: 6G

管理接口:192.168.31.12/24 桥接

承载虚拟机流量接口:10.0.0.3/24  vmnet1

存储节点:

主机名: cinder1

RAM: 2G

管理接口:192.168.31.13/24

本次实验使用openstack mitaka版本,官方文档:

http://docs.openstack.org/mitaka/install-guide-rdo

部署opentack的yum源

本环境全部是是最小化安装Centos7,关闭防火墙,关闭selinux

systemctl stop firewalld.service

systemctl disable firewalld.service

安装相关工具,因为系统最小化安装,所以一些ifconfig,vim等命令都没有,运行下面的命令安装

yum -y install net-tools wget vim

准备好各种yum源

[[email protected] ~]# yum -y install yum-plugin-priorities

[[email protected] ~]# yum -y install centos-release-openstack-mitaka

[[email protected] ~]#  yum -y install https://rdoproject.org/repos/rdo-release.rpm

[[email protected] ~]#

yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

实验前提:

1.各节点仅用防火墙,并保存,设置开机不启动。

2.各节点之间使用主机名通信,修个每个节点的/etc/hosts文件

3.各节点之间时间要同步,可以使用ntp时钟服务器实现

4.准备好mysql服务器

修改host文件

所有主机按照实验环境要求设置主机名和ip地址,并修改每一台主机的hosts文件,在每一台主机的hosts文件中添加所有主机的ip和主机名映射

192.168.31.11 controller

192.168.31.12 computer1

192.168.31.13 cinder1

注意:

192.168.31.11是controller的管理IP,第一块网卡的ip地址

192.168.31.12是computer1的管理IP,第一块网卡的ip地址

三个节点分别安装ntp

注:

centos从7.0开始改用chrony同步时间,原ntp同步方式也可以使用,但要安装ntp服务。

Chrony是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。它由两个程序组成,分别是chronyd和chronyc。chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

[[email protected] ~]# yum -y install chrony

controller主机配置为ntp时间服务器,修改/etc/chrony.conf文件,添加如下配置项

allow 192.168.31.0/24

注:allow 192.168.31.0/24表示允许为192.168.31.0/24网段的主机提供校对时间服务

启动ntp服务

[[email protected] ~]# systemctl enable chronyd

[[email protected] ~]# systemctl start chronyd

将computer1和cinder1设置为ntp客户端,修改/etc/chrony.conf文件,添加如下配置项

将现有的server添加#注释掉

server 192.168.31.11  iburst

allow 192.168.31.11

注:192.168.31.11是chrony时间服务器的ip或主机名

设置ntp开机启动

[[email protected] ~]# systemctl enable chronyd.service

[[email protected] ~]# systemctl start chronyd.service

注:如果防火墙开启的话,要允许udp 123的连接

测试时间同步:

[[email protected] ~]# timedatectl

Local time: Sat 2016-11-26 23:40:14 CST

Universal time: Sat 2016-11-26 15:40:14 UTC

RTC time: Sat 2016-11-26 15:40:14

Time zone: Asia/Shanghai (CST, +0800)

NTP enabled: yes

NTP synchronized: yes

RTC in local TZ: no

DST active: n/a

[[email protected] ~]# chronyc sources

210 Number of sources = 1

MS Name/IP address         Stratum Poll Reach LastRx Last sample

===============================================================================

^* controller                    3   6   377    59  -8422ns[  -13us] +/-  410ms

[[email protected] ~]# ntpdate 192.168.31.11

26 Nov 23:44:28 ntpdate[2562]: adjust time server 192.168.31.11 offset -0.000032 sec

三个节点分别升级系统

[[email protected] ~]#yum –y update

三个节点分别重新启动系统

[[email protected] ~]#reboot

为了方便起见,可以为三个节点虚拟机创建快照;

以下操作为controller节点部署,当需要部署compute节点和cinder节点时会做相应的提示,请看好相应提示在做操作。

1.2.openstack identity service

Openstack的identity服务(即keystone)有两个主要的功能:

用户管理:实现用户的认证及授权

服务目录(service catalog):所有可用服务的信息库,包含所有可用服务及其API endpoint的路径;

Yum安装python-openstackclient和openstack-selinux

[[email protected] ~]# yum -y install python-openstackclient

[[email protected] ~]# yum -y install openstack-selinux

1.2.1.安装并初始化mysql服务

[[email protected] ~]# yum -y install mariadb mariadb-server python2-PyMySQL

编辑配置文件/etc/my.cnf.d/mariadb_openstack.cnf ,添加如下内容:

[mysqld]

bind-address = 192.168.31.11

default-storage-engine = innodb

innodb_file_per_table

max_connections = 4096

collation-server = utf8_general_ci

character-set-server = utf8

启动mysql服务,设置mysql服务开机自动启动

[[email protected] ~]# systemctl enable mariadb.service

[[email protected] ~]# systemctl start mariadb.service

[[email protected] ~]#systemctl list-unit-files | grep mariadb.service

使用mysql_secure_installation命令进行安全初始化

[[email protected] ~]# mysql_secure_installation  (root密码设置为123456)

先按回车,然后按Y,设置mysql密码,然后一直按y结束。

1.2.2.安装rabbitmq-server

openstack的各组件间通过消息队列传递消息以异步的方式进行协调,从而降低了各组件间的耦合度,使得高负载时的服务可用性大大提升。openstack指的使用的对立服务包括rabbitmq、apache qpid以及zeromq等,本文以rabbitmq为例

[[email protected] ~]# yum -y install rabbitmq-server

[[email protected] ~]# systemctl enable rabbitmq-server.service

[[email protected] ~]# systemctl start rabbitmq-server.service

创建名为openstack的用户,密码为openstack

[[email protected] ~]# rabbitmqctl add_user openstack openstack

Creating user "openstack" ...

为openstack用户赋予权限

[[email protected] ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Setting permissions for user "openstack" in vhost "/" ...

注意不要重复执行,主要怕你们看不清有没有空格。

查看rabbitmq的监听端口:5672

netstat –antpl | grep 5672

查看rabbitmq插件

[[email protected] ~]# /usr/lib/rabbitmq/bin/rabbitmq-plugins list

部分截图如下:

打开rabbitmq插件

[[email protected] ~]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management

再次查看rabbitmq 插件

部分截图如下:

安装memcached python-memcached

[[email protected] ~]# yum -y install memcached python-memcached

[[email protected] ~]# systemctl enable memcached.service

[[email protected] ~]# systemctl start memcached.service

1.2.3.安装配置identity服务

身份服务概述

OpenStack认证管理服务提供一个单点集成身份验证、授权和服务目录服务。其他OpenStack服务使用认证服务作为一个通用统一的API。此外,服务提供用户的信息,但不包括在OpenStack(如LDAP服务)可以集成到一个现有的基础设施。为了从认证服务中受益,其他OpenStack服务需要与身份认证服务协同工作。当一个OpenStack服务从用户那里接收一个请求,它检查与身份认证服务用户是否被授权请求。身份服务包含这些组件:

Server

一个集中的服务器使用RESTful接口提供身份验证和授权服务。

Drivers

驱动程序或服务后端集成到集中式服务器。他们是用于访问的身份信息存储库中的外部OpenStack,并且可能已经存在在OpenStack部署的基础设施(例如,SQL数据库或LDAP服务器)。

Modules

中间件模块运行在OpenStack组件的地址空间使用身份认证服务。这些模块拦截服务请求,提取用户凭证,并将它们发送到中央服务器进行授权。中间件模块和OpenStack组件之间的集成使用Python Web Server Gateway Interface。

创建keystone数据库,创建一个keystone用户以访问同名keystone数据库,密码为:openstack

MariaDB [(none)]> create database keystone;

Query OK, 1 row affected (0.00 sec)

为keystone用户赋予ALL权限,对keystone数据库

MariaDB [(none)]> grant all privileges on keystone.* to ‘keystone‘@‘localhost‘ identified by ‘openstack‘;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on keystone.* to ‘keystone‘@‘%‘ identified by ‘openstack‘;

Query OK, 0 rows affected (0.00 sec)

安装keystone相关软件包

[[email protected] ~]# yum -y install openstack-keystone httpd mod_wsgi memcached python-memcached

安装openstack的文件配置工具

[[email protected] ~]# yum -y install openstack-utils

有了这个工具,就能直接运行openstack-config命令配置openstack文件

在最初配置keystone时生成一个随机值作为管理token来使用。

生成token

[[email protected] ~]# openssl rand -hex 10

378df6a3c0d8d97fbb77

编辑keystone的主配置文件,使其使用mysql作为数据存储池,并配置其使用正确的参数,在database的section中,注意红色部分是keystone用户的密码(openstack)是keystone用户访问keystone数据库时使用的密码

[[email protected] ~]# ADMIN_TOKEN=378df6a3c0d8d97fbb77

配置/etc/keystone/keystone.conf文件

[[email protected] ~]# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN

[[email protected] ~]# openstack-config --set /etc/keystone/keystone.conf database connection mysql://keystone:[email protected]$HOSTNAME/keystone

[[email protected] ~]# openstack-config --set /etc/keystone/keystone.conf token provider fernet

注:

admin_token 为一密钥,用于操作keystone时的认证

同步keystone数据库,必须使用keystone用户同步数据库,此命令执行完不会有任何输出

[[email protected] ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

注:

此命令在keystone数据库中创建相应数据表。

查看是否同步成功,请到keystone数据库查看生成的表,下图为部分截图,会创建37张表。

初始化fernet秘钥,此命令没有任何输出

[r[email protected] ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置http服务

创建/etc/httpd/conf.d/wsgi-keystone.conf 添加下面的内容:

[[email protected] ~]# cat /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>

注:WSGI:Python Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI),是Python应用程序或框架和Web服务器之间的一种接口。

启动httpd服务,并设置httpd开机启动

[[email protected] ~]# systemctl enable httpd.service

[[email protected] ~]# systemctl start httpd.service

[[email protected] ~]# systemctl status httpd.service

[[email protected] ~]# systemctl list-unit-files | grep httpd.service

1.2.4.配置keystone的管理(admin)token

为了使用admin用户管理keystone,可以通过配置keystone的客户端使用service_token和service_endpoint的环境变量来连接至keystone

环境变量如下:

[[email protected] ~]# export OS_TOKEN=378df6a3c0d8d97fbb77

[[email protected] ~]# export OS_URL=http://${HOSTNAME}:35357/v3

[[email protected] ~]# export OS_IDENTITY_API_VERSION=3

注:OS_TOKEN的值就是在前面所生成的token。

查看keystone进程相关信息

创建keystone服务

[[email protected] ~]#openstack service create --name keystone --description "Openstack Identity" identity

注:确保python-openstackclient包要安装

注:ERROR: An unexpected error prevented the server from fulfilling your request. (HTTP 500) (Request-ID: req-7e447b64-0ab1-4add-b0f9-ccb29de79156)

这是一个非常常见的错误,尤其对于入门Openstack的小伙伴而言,很多人就卡在这个ERROR上。这里给出一些解决的方案:

1. 一定要检查Keystone的表是否成功创建

2. 确保环境变量正确,尤其是OS_TOKEN与admin_token的值是一致的,建议使用Copy,因为常见参数值后面带有空格,导致不一致的情况。

3. 确保Hostname和IP能够成功解析

4. 确保Port:35357已经开启

5. 确保HTTP服务正常运行

6. 查看openstack-keystone服务是否打开,如果是M版本就无所谓了

时间: 2024-10-23 17:42:43

Openstack-mitaka 使用及搭建(一)的相关文章

OpenStack Mitaka HA高可用搭建

OpenStack Mitaka HA高可用搭建mini试看版version 1.0环境虚拟机列表:10.1.1.120 controller1 controller1.test.com10.1.1.121 controller2 controller2.test.com10.1.1.122 controller3 controller3.test.com10.1.1.133 compute1 compute1.test.com10.1.1.134 glance-backend backend.

使用Fuel 9.0快速部署Openstack Mitaka

关于什么是Fuel以及Fuel的作用和构架可以参考下面Openstack官方给出的Wiki链接. https://wiki.openstack.org/wiki/Fuel. 在安装部署之前,先看看官方给出的Fuel 9.0版本特性. Mirantis OpenStack is distributed as a single commercially supportedpackage in ISO format. The 9.0 release features: ·       Enhanced

Fuel 9.0 部署Openstack Mitaka详细

漫漫求索Openstack路--- Fuel 9.0 部署Openstack Mitaka详细(排坑版) 0.前言 不想搭建环境,官方提供测试Fuel 9.0的demo环境 http://demo.fuel-infra.org:8000(只要你电脑能上外网)默认用户名.密码admin 一.提前准备 Fuel 9.0将会搭载Openstack_Mitaka 版本,这个版本是2016年出的最新版本. Fuel 在早先的版本中已经去掉了利用Centos来搭建Openstack的环境: 在9.0中只使用

openstack项目【day24】:OpenStack mitaka部署

前言: openstack的部署非常简单,简单的前提建立在扎实的理论功底,本人一直觉得,玩技术一定是理论指导实践,网上遍布个种搭建方法都可以实现一个基本的私有云环境,但是诸位可曾发现,很多配置都是重复的,为何重复?到底什么位置该不该配?具体配置什么参数?很多作者本人都搞不清楚,今天本人就是要在这里正本清源. 介绍:本次案列为基本的三节点部署,集群案列后期有时间再整理 一:网络: 1.管理网络:172.16.209.0/24 2.数据网络:1.1.1.0/24 二:操作系统:CentOS Linu

使用Fuel 9.0快速部署Openstack Mitaka(其实也就用了五六个小时吧)

关于什么是Fuel以及Fuel的作用和构架可以参考下面Openstack官方给出的Wiki链接. https://wiki.openstack.org/wiki/Fuel. 在安装部署之前,先看看官方给出的Fuel 9.0版本特性. Mirantis OpenStack is distributed as a single commercially supportedpackage in ISO format. The 9.0 release features: ·       Enhanced

Openstack Mitaka for Centos7.2 部署指南(一)

本文主要参考 https://www.zybuluo.com/ncepuwanghui/note/389373 OpenStack Mitaka for Ubuntu 16.04 LTS 部署指南 http://docs.openstack.org/mitaka/install-guide-rdo/ 官方文档 把上面的Ubuntu 换成Centos,其他详情请看上面的部署指南 本文主要参考 https://www.zybuluo.com/ncepuwanghui/note/389373 Open

OpenStack Mitaka Dashboard

OpenStack Mitaka Dashboard 一.写在前面 这篇文章主要介绍了OpenStack Mitaka Horizon组件功能,Mitaka 版本的 Horizon新增加了不少新的功能,这里专门整理一下,写文档的过程,就是我熟悉的过程,整理成笔记以便后续自己查阅. 目前还没有深入进行功能理解,暂时只是简单的通过界面功能与上个版本稍作对比,后续将逐步完善. 如果转载,请保留作者信息. 邮箱地址:[email protected] 二.身份认证 1) .登录 Mitaka版本全部的组

openstack I版的搭建二

[[email protected] ~]# cd /usr/local/src/ [[email protected] src]# cd keystone-2014.1 [[email protected] keystone-2014.1]# python setup.py install [[email protected] keystone-2014.1]# cd etc/ [[email protected] etc]# ll 总用量 72 -rw-rw-r-- 1 1004 1004

CENTOS7 安装openstack mitaka版本(最新整理完整版附详细截图和操作步骤,添加了cinder和vxlan)

CENTOS7 安装openstack mitaka版本(最新整理完整版附详细截图和操作步骤,添加了cinder和vxlan,附上个节点的配置文件) 实验环境准备: 为了更好的实现分布式mitaka版本的效果.我才有的是VMware的workstations来安装三台虚拟机,分别来模拟openstack的controller节点 compute节点和cinder节点.(我的宿主机配置为 500g 硬盘 16g内存,i5cpu.强烈建议由条件的朋友将内存配置大一点,因为我之前分配的2g太卡.) 注

OpenStack Mitaka Horiozn 主题开发

一.写在前面 这篇文章主要介绍了OpenStack Mitaka Horizo主题的开发.这里只是说明horiozn主题包的开发逻辑,不具体阐述css.js.html文件的开发, 仅仅是说明horizon主题开发的方式,因为时间仓促以及个人理解有限,固有错误的地方请指出,后续将会不定期的完善,谢谢! 如果转载,请保留作者信息. 邮箱地址:[email protected] 主题下载地址:http://www.smallartisan.site/?p=38 二.环境准备 注意:如果没有特殊说明,一