OpenStack安装部署

OpenStack安装部署

一、准备工作

  • 操作系统: ubuntu14.04
  • OpenStack版本:Kilo 目前最新

    1.1 资源信息

  • OpenStack官网: http://www.openstack.org/
  • Ubuntu官网: http://www.ubuntu.org.cn/

    1.2 安装方式

  • 从零开始安装;
  • DevStack安装:http://docs.openstack.org/developer/devstack

    二、keystone的安装

    (1)配置数据库:

  • 使用数据库客户端以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’;

    (2) 小插曲 mariaDB的安装:
    * 设置MariaDB仓库: *

1.$ sudo apt-get install software-properties-common

2. $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

3. $ sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'

4. $ sudo apt-get update

5. $ sudo apt-get install mariadb-server

6. $ sudo /etc/init.d/mysql stop

7. $ sudo /etc/init.d/mysql start

(3) keystone服务的监听端口是5000和35357,配置ApacheHTTP服务端口,为了避免端口冲突,在Ubuntu上禁止KeyStone开机自己启动:

$ echo "manual" > /etc/init/keystone.override

(4)安装与KeyStone相关的软件包:

$ apt-get install keystone python-openstackclient apache2 libapache2-mod-wsgi memcached python-memcache

(5)安装完成后,修改配置文件:

  • (a) 将原文件备份,使用命令生成新的文件,并去掉注释:
$ mv /etc/keystone/keystone.conf
 /etc/keystone/keystone.conf
.bak

$ cat /etc/keystone/keystone.conf
.bak|grep -v '^#' > /etc/keystone/keystone.conf

$ vi /etc/keystone/keystone.conf
  • (b) 随机生成一个16进制的token:
$ openssl rand -hex 10
- openssl: 一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥证书封装管理功能及SSL协议;
  • (c) 修改[DEFAULT]部分,配置初始的命令管理:

    
    # admin_token=ADMIN_TOKEN
    
    - ADMIN_TOKEN: 是刚才通过openssl生成的随机token
  • (d) 修改[database]部分,配置数据库的链接:

# connection=mysql://keystone:Huawei@123@controller/keystone
  • (e) 修改[memcache]部分,配置memcache服务:
# servers=localhost:11211
- 11211是memecahced服务器的默认端口号
  • (f) 修改[token]部分,配置UUID令牌的提供者和memcached的持久化驱动:
# provider=keystone.token.providers.uuid.Provider
-UUID:含义是通用的唯一识别码(Universally Unique Identifier)
# driver=keystone.token.persistence.backends.memcache.Token
- PKI:公钥基础设施;PKI是一种遵循标准的利用公钥加密技术提供一套安全基础平台的技术规范
  • (g) 修改[revoke]部分,配置SQL的撤回驱动:
# driver=keystone.contrib.revoke.backends.sql.Revoke
  • (h) 可选:修改[DEFAULT]部分,配置详细的日志输出:
# verbose=true
  • (i) 为keystone数据库填充数据:
$ su -s /bin/sh -c "keystone-manage db_sync" keystone
-2017-07-31 05:54:54.701 6617 CRITICAL keystone [-] ImportError: No module named MySQLdb
(出现类似此错误,则可能是去烧python链接mysql的库)
$ apt-get install python-mysqldb
  • (g) 修改apache的配置文件:
$ cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
$ vi  /etc/apache2/apache2.conf

# ServerName controller 
  • (k) 创建/etc/apache2/sites-available/wsgi-keystone.conf文件,并添加如下内容:
$ vi /etc/apache2/sites-available/wsgi-keystone.conf
Listen 5000
Listen 35357

<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /var/www/cgi-bin/keystone/main
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    <IfVersion >= 2.4>
      ErrorLogFormat "%{cu}t %M"
    </IfVersion>
    ErrorLog /var/log/apache2/keystone.log
    CustomLog /var/log/apache2/keystone_access.log combined
</VirtualHost>

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    <IfVersion >= 2.4>
      ErrorLogFormat "%{cu}t %M"
    </IfVersion>
    ErrorLog /var/log/apache2/keystone.log
    CustomLog /var/log/apache2/keystone_access.log combined
</VirtualHost>

  • 启动认证服务的虚拟主机:

    # ln -s /etc/apache2/sites-available/wsgi-keystone.conf/etc/apache2/sites-enabled
  • 为WSGI组件创建目录结构:

    $ mkdir -p /var/www/cgi-bin/keystone
  • 拷贝WSGI组件到当前创建好的目录下:

    $ curl http://git.openstack.org/cgit/openstack/keystone/plain/httpd/keystone.py?h=stable/kilo |tee /var/www/cgi-bin/keystone/main /var/www/cgi-bin/keystone/admin
  • 修改权限:

    $ chown -R keystone:keystone /var/www/cgi-bin/keystone
    $ chmod 755 /var/www/cgi-bin/keystone/*
  • 重启 apache的服务:

    $ service apache2 restart
  • 删除ubuntu默认创建的数据库:

    $ cd /var/lib/keystone
    $ rm keystone.db

你可能感兴趣的:(OpenStack安装部署)