Openstack学习笔记(三):keystone的安装与配置

OpenStack简介

OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集(IaaS)。其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云提供可扩展的、灵活的云计算。
OpenStack主要包含以下几个组件,各个组件的功能如下,其中Nova,Keyston,Neutron,Glance,DashBoard为必须装的组件,其余可以选择性安装,图为OpenStack生态系统。

  • Nova 计算管理服务,支撑虚拟机运行
  • Keystone 提供所有组件的认证
  • Neutron 提供网络支持
  • Glance 提供给镜像服务
  • DashBoard 提供WEB管理界面服务
  • Swift 提供对象存储
  • Cinder 提供扩展硬盘给nova
  • Ceilometer 监控cinder,neutron,nova,glance运行并计量
  • Heat 支持云平台资源自动部署,集群服务

OpenStack安装配置

由于OpenStack的各个模块都需要通过KeyStone来进行认证,所以在配置安装OpenStack过程中需要主要,安装其他模块之前必须先进行安装KeyStone模块,本次安装步骤如下:

  • 配置认证服务KeyStone
  • 配置镜像服务Glance
  • 配置计算服务Nova
  • 配置网络服务Neutron
  • 配置Web管理服务DashBoard

配置认证服务KeyStone

主要分为以下几步

  • 安装配置认证服务
  • 创建用户、租户和角色

安装配置认证服务

KeyStone只需要在controller上面进行配置,执行yum指令即可安装,安装成功后需要进行数据库相关配置,还需要对相关权限进行配置

  • 安装KeyStone
    yum install -y openstack-keystone python-opnstackclient
安装完成
执行命令后该配置文件会多出这行数据
  • 配置数据库用户
    [root@controller ~]# mysql -u root -p000000
    MariaDB [(none)]> create database keystone;
    MariaDB [(none)]> grant all privileges on keystone.* to keystone@'localhost' identified by '000000';
    MariaDB [(none)]> grant all privileges on keystone.* to keystone@'%' identified by '000000';
    MariaDB [(none)]> flush privileges;
    MariaDB [(none)]> exit;
数据库与用户均建立成功
  • 为认证服务创建数据库表
    [root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone
表创建成功
  • 定义配置授权令牌
    [root@controller ~]# ADMIN_TOKEN=$(openssl rand -hex 10)
    [root@controller ~]# echo $ADMIN_TOKEN
    3a4756d6a595a5d6794c
    [root@controller ~]# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN
配置文件首行会出现令牌
  • 相关权限配置
    [root@controller ~]# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
    [root@controller ~]# chown -R keystone:keystone /etc/keystone/ssl
    [root@controller ~]# chmod -R o-rwx /etc/keystone/ssl
配置完成
  • 启动KeyStone服务并设置自启动
    [root@controller ~]# systemctl restart openstack-keystone
    [root@controller ~]# systemctl enable openstack-keystone

  • 创建计划任务并定期执行
    [root@controller ~]# (crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush > /var/log/keystone/keystone-tokenflush.log 2>&1' >> /var/spool/cron/keystone
    [root@controller ~]# crontab -l -u keystone
    @hourly /usr/bin/keystone-manage token_flush > /var/log/keystone/keystone-tokenflush.log 2>&1

创建用户、租户和角色

  • 配置环境变量,编辑admin-openrc.sh文件,并写入以下几句,保存后执行
    [root@controller ~]# vi admin-openrc.sh
    export OS_TOKEN=3a4756d6a595a5d6794c
    export OS_URL=http://controller:35357/v3
    export OS_USERNAME=admin
    export OS_PASSWORD=000000
    export OS_AUTH_URL=http://controller:35357/v3
    export OS_PROJECT_NAME=admin
    export OS_IDENTITY_API_VERSION=3
    [root@controller ~]# source admin-openrc.sh
验证
  • 通过openstackclient创建服务及对应的endpoint
    [root@controller ~]# openstack
    (openstack) service create --name keystone --description "Openstack Identity" identity
    (openstack) endpoint create --region RegionOne identity public http://controller:5000/v3
    (openstack) endpoint create --region RegionOne identity admin http://controller:35357/v3
    (openstack) endpoint create --region RegionOne identity internal http://controller:35357/v3
验证
  • 创建admin相关项目、用户、角色
    (openstack) project create --domain default --description "Admin Project" admin
    (openstack) user create --domain default --password 000000 --email admin@localhost admin
    (openstack) role create admin
    (openstack) role add --project admin --user admin admin
Paste_Image.png
  • 创建demo相关项目、用户、角色
    (openstack) project create --domain default --description "Demo Project" demo
    (openstack) user create --domain default --password 000000 demo
    (openstack) role create demo
    (openstack) role add --project demo --user demo user

  • 创建service相关项目、用户、角色
    (openstack) project create --domain default --description="Service Project" service

验证认证服务

  • 重置环境变量并获取token
    [root@controller ~]# unset OS_TOKEN
    [root@controller ~]# unset OS_URL
    [root@controller ~]# openstack token issue
成功

配置镜像服务Glance

Glance镜像服务实现发现、注册、获取虚拟机镜像和镜像元数据,镜像数据支持存储多种的存储系统,可以是简单文件系统、对象存储系统等。
Glance镜像服务是典型的C/S架构,Glance架构包括glance-CLIent、Glance、Glance Store。Glance包括主要包括REST API、数据库抽闲层(DAL)、域控制器(Glance Domain controller)、注册层(Registry Layer),Glance 使用集中数据库(Glance DB)在Glance各组件直接共享数据。
该过程仅需在controller节点布置。

  • 下载安装Glance
    [root@controller ~]# yum install openstack-glance -y
  • 修改相关配置文件,设置数据库连接以及keystone相关设置
    openstack-config --set /etc/glance/glance-api.conf database connection mysql://glance:000000@controller/glance
    openstack-config --set /etc/glance/glance-registry.conf database connection mysql://glance:000000@controller/glance
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller:5000
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_plugin password
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_id default
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_id default
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
    openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password 000000
    openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller:5000
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:35357
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_plugin password
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_id default
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_id default
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
    openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password 000000
    openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
    配置成功后两个文件均会多出以下几行
  • 配置数据库相关权限及表
    [root@controller ~]# mysql -u root -p000000
    create database glance;
    grant all privileges on glance.* to 'glance'@'localhost' identified by '000000';
    grant all privileges on glance.* to 'glance'@'%' identified by '000000';
    flush privileges;
    exit
    [root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
验证
  • 建立相关用户
    [root@controller ~]# openstack
    (openstack) user create --password 000000 --email glance@localhost glance
    (openstack) role add --project service --user glance admin


    成功
  • 建立endpoint
    (openstack) service create --name glance --description="Openstack Image Service" image
    (openstack) endpoint create --region RegionOne image public http://controller:9292
    (openstack) endpoint create --region RegionOne image internal http://controller:9292
    (openstack) endpoint create --region RegionOne image admin http://controller:9292

成功
  • 启动服务并设置自启动
    [root@controller ~]# systemctl restart openstack-glance-api
    [root@controller ~]# systemctl restart openstack-glance-registry
    [root@controller ~]# systemctl enable openstack-glance-api
    [root@controller ~]# systemctl enable openstack-glance-registry
  • 上传镜像
    [root@controller images]# openstack image create --disk-format qcow2 --container-format bare --public --file /opt/images/centos_65_x86_6420140327.qcow2 centos


    上传成功

遇见问题

  • 安装openstack-keystone的时候会报错,提示缺少python-zope-interface这个包,在阿里云、网易云镜像站均找不到这个包,最后通过关键字搜索python-zope-interface rpm找到了对应的包,放入epel文件夹并更新repodate文件,再次安装成功。
缺少文件报错
发现确实缺少zope-interface文件
更新repo文件
验证已解决
  • 由于k版本后keystone client被openstack client所代替,所以如果yum的是python-keystoneclient,执行命令时候会出现如图所示告警,下载
告警
  • 在配置账户的时候出现很多问题,例如试验指导书里面给的环境变量是 OS_SERVICE_ENDPOINT和OS_SERVICE_TOKEN,但是帮助里面没有这个环境变量的用法,当我修改为OS_URL和OS_TOKEN的时候可以正常使用,可能是因为版本变更的问题吧。并且这里如果没有配置OS_URL和OS_TOKEN环境变量的话,报错的很多问题可能都不会指向OS_URL,可能会提示其他诸如
    openstack could not determine a suitable url for the plugin
    openstack The request you have made requires authentication,
    还有一些其他的报错没有一一记录,总之,这两个环境变量很重要。
os_url
  • 在配置环境变量的时候各参数一定要一致,如果地址末尾给的是v3,那么一定要将export OS_IDENTITY_API_VERSION的值设置成3,如果给的是v2.0,则这一项可以不填,因为默认的是2,不然会因为版本问题无法继续配置。

  • 注意这里对于环境变量OS_URL和OS_TOKEN一定要重置,否则会提示404未找到等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,290评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,399评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,021评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,034评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,412评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,651评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,902评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,605评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,339评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,586评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,076评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,400评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,060评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,851评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,685评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,595评论 2 270

推荐阅读更多精彩内容