美文网首页
Openstack学习笔记(三):keystone的安装与配置

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

作者: 邵胜奥 | 来源:发表于2017-03-31 00:30 被阅读0次

    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未找到等

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/odisnttx.html