openstack -mitaka-install(-)

本文详细介绍如何在CentOS 7环境下部署OpenStack,包括控制节点、计算节点和存储节点的配置,涵盖网络设置、时间同步、系统更新、数据库安装、消息队列设置以及身份服务(Keystone)的配置。

**环境说明
使用的光盘为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
部署opentack的yum源

  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实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
[root@compute1 ~]# 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服务
[root@controller ~]# systemctl enable chronyd
[root@controller ~]# 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开机启动
[root@compute1 ~]# systemctl enable chronyd.service
[root@compute1 ~]# systemctl start chronyd.service
注:如果防火墙开启的话,要允许udp 123的连接
测试时间同步:

[root@cinder1 ~]# 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
[root@cinder1 ~]# 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
[root@cinder1 ~]# ntpdate 192.168.31.11
26 Nov 23:44:28 ntpdate[2562]: adjust time server 192.168.31.11 offset -0.000032 sec
三个节点分别升级系统
[root@controller ~]#yum –y update
三个节点分别重新启动系统
[root@controller ~]#reboot
为了方便起见,可以为三个节点虚拟机创建快照;
以下操作为controller节点部署,当需要部署compute节点和cinder节点时会做相应的提示,请看好相应提示在做操作。
openstack identity service
Openstack的identity服务(即keystone)有两个主要的功能:
用户管理:实现用户的认证及授权
服务目录(service catalog):所有可用服务的信息库,包含所有可用服务及其API endpoint的路径;
Yum安装python-openstackclient和openstack-selinux
[root@controller ~]# yum -y install python-openstackclient
[root@controller ~]# yum -y install openstack-selinux

安装并初始化mysql服务
[root@controller ~]# 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服务开机自动启动

  [root@controller ~]# systemctl enable mariadb.service
    [root@controller ~]# systemctl start mariadb.service
    [root@controller ~]#systemctl list-unit-files | grep mariadb.service

使用mysql_secure_installation命令进行安全初始化
[root@controller ~]# mysql_secure_installation (root密码设置为123456)
先按回车,然后按Y,设置mysql密码,然后一直按y结束。
安装rabbitmq-server
openstack的各组件间通过消息队列传递消息以异步的方式进行协调,从而降低了各组件间的耦合度,使得高负载时的服务可用性大大提升。openstack指的使用的对立服务包括rabbitmq、apache qpid以及zeromq等

[root@controller ~]# yum -y installrabbitmq-server
[root@controller ~]# systemctl enablerabbitmq-server.service
[root@controller ~]# systemctl start rabbitmq-server.service

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

[root@controller ~]# rabbitmqctl add_useropenstack openstack
Creatinguser "openstack" ...

为openstack用户赋予权限

[root@controller ~]# rabbitmqctlset_permissions openstack ".*" ".*" ".*"
Settingpermissions for user "openstack" in vhost "/" ...

注意不要重复执行,主要怕你们看不清有没有空格。
查看rabbitmq的监听端口:5672
netstat –antpl | grep 5672
查看rabbitmq插件
[root@controller ~]# /usr/lib/rabbitmq/bin/rabbitmq-plugins list
打开rabbitmq插件

[root@controller ~]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management

再次查看rabbitmq 插件
安装memcached python-memcached

[root@controller ~]# yum -y install memcached python-memcached
[root@controller ~]# systemctl enable memcached.service
[root@controller ~]# systemctl start memcached.service

安装配置identity服务
创建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相关软件包

[root@controller ~]# yum -y install openstack-keystone httpd mod_wsgi memcached python-memcached

安装openstack的文件配置工具

[root@controller ~]# yum -y install openstack-utils

有了这个工具,就能直接运行openstack-config命令配置openstack文件
在最初配置keystone时生成一个随机值作为管理token来使用。
生成token

[root@controller ~]# openssl rand -hex 10
378df6a3c0d8d97fbb77

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

[root@controller ~]# ADMIN_TOKEN=378df6a3c0d8d97fbb77

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

[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN
[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf database connection mysql://keystone:openstack@$HOSTNAME/keystone
[root@controller ~]# openstack-config --set /etc/keystone/keystone.conf token provider fernet

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

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

[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

注:
此命令在keystone数据库中创建相应数据表。
查看是否同步成功,请到keystone数据库查看生成的表
初始化fernet秘钥,此命令没有任何输出

[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置http服务
创建/etc/httpd/conf.d/wsgi-keystone.conf 添加下面的内容:

[root@controller ~]# 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开机启动

[root@controller ~]# systemctl enable httpd.service
[root@controller ~]# systemctl start httpd.service
[root@controller ~]# systemctl status httpd.service
[root@controller ~]# systemctl list-unit-files | grep httpd.servicopenstack -mitaka-install(-)**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值