今天就开始来讲讲安装openstack中的组件,那么就从keystone这个安全认证服务来安装吧,当然,在安装前都是有一些准备工作要做的。

    首先来说下keystone是干啥的吧。

    其实在早起的openstack中是没有keystone这个组件的,一些安全认证例如,用户、消息、API调用的认证等都是在Nova这个模块中的。

    但是在后来的开发中,由于各种各样的模块加入到openstack中,安全认证涉及到的方面就更广了,如:用户登陆、用户消息传递、模块消息通信、服务注册等各不相同的认证,处理这些不同的安全认证变的也越来越复杂了,因此需要一个模块来管理这些不同的安全认证,keystone就应运而生了。

    无论是公有云还是私有云,都会开放接口给众多用户,keystone在对众多用户进行认证的同时,有对用户的权限进行了限制,keystone会保证openstack的服务的正常注册,同时各个服务传递消息的口令验证也是由keystone来完成的。

     Keystone所有的数据都是存放在数据库中,本文将以mysql为实例来讲解,mysql安装为试验性质,并不讲解各种复杂的方法,大型环境的安装请参考mysql更专业的文档。

    本文使用centos7来安装keystone,特别提示:最好在keystone服务器上不要安装别的组件,否则容易出现冲突,请根据个人环境来定。

    1. Mysql安装

       # 下载mysqlrepo源

         wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

       # 安装mysql-community-release-el7-5.noarch.rpm包  

         rpm -ivh mysql-community-release-el7-5.noarch.rpm

         安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

       # 设置mysql  root密码

         use mysql

         update user set password=password('123456') where user='root';

         exit;

       # 设置iptables 防火墙

         vim /etc/sysconfig/iptables  #添加一下内容

         -----------------------------------------------------------------------------

         -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

         -----------------------------------------------------------------------------

         service iptables restart    #重启下iptables

    2. Keystone安装配置

       # 创建数据库

         mysql -u root –p123456

         CREATE DATABASE keystone;

         GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';   #创建keystone用户,密码是keystone

         GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';

       # 安装keystone 所需要的组件

         yum -y install openstack-keystone python-keystoneclient

       # 修改keystone.conf配置文件

         vim /etc/keystone/keystone.conf

         -----------------------------------------------------------------------------

         dmin_token = 12345678  #这里可以随意写,但是需要记住

         verbose = True

         [database]connection = mysql://keystone:keystone@controller/keystone

         -----------------------------------------------------------------------------

       # 同步数据库

         su -s /bin/sh -c "keystone-manage db_sync" keystone

       # 重启服务

         systemctl enable openstack-keystone.service

         systemctl start openstack-keystone.service

       # 创建tenants, users, 和roles

         keystone tenant-create --name domain--description "Admin Tenant"

         keystone user-create --name domain--pass users --email [email protected]

         keystone role-create --name domain

       # 授权

         keystone user-role-add --tenant domain--user domain --role domain

       # 创建services

         keystone tenant-create --name service --description "Service Tenant"

       # 创建service entity 和API endpoint

         keystone service-create --name keystone --type identity \--description "OpenStack Identity"

         keystone endpoint-create \--service-id $(keystone service-list | awk '/ identity / {print $2}') \--publicurl http://controller:5000/v2.0 \--internalurl http://controller:5000/v2.0 \--adminurl http://controller:35357/v2.0 \--region regionOne

       # 验证操作

         keystone user-list # 正常显示就说明安装成功了


    本文都是使用最简洁的安装方式安装的,请大家根据公司内部需求自行规划,那么keystone就算安装完成了,明天会给大家讲下Swift这个重要组件的简介,安装及加入到keystone注册服务中,后面的更精彩,请关注我啊。