Welcome to li chao's blog

若逢新雪初霁,满月当空,下面平铺着皓影,上面流转着亮银,而你带笑地向我步来,月色与雪色之间,你是第三种绝色!

openstack (3)---------部署memcached缓存服务,keystone服务

一、memcached概念

  Memcached 是一个开源的、高性能的分布式内存对象缓存系统。通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站访问速度,加速动态WEB应用、减轻数据库负载。

  Memcached是一种内存缓存,把经常需要存取的对象或数据缓存在内存中,内存中,缓存的这些数据通过API的方式被存取,数据经过利用HASH之后被存放到位于内存上的HASH表内,HASH表中的数据以key-value的形式存放,由于Memcached没有实现访问认证及安全管理控制,因此在面向internet的系统架构中,Memcached服务器通常位于用户的安全区域。

当Memcached服务器节点的物理内存剩余空间不足,Memcached将使用最近最少使用算法(LRU,LastRecentlyUsed)对最近不活跃的数据进行清理,从而整理出新的内存空间存放需要存储的数据。

  Memcached在解决大规模集群数据缓存的诸多难题上有具有非常明显的优势并且还易于进行二次开发,因此越来越多的用户将其作为集群缓存系统,此外,Memcached开放式的API,使得大多数的程序语言都能使用Memcached,如javac、C/C++C#,Perl、python、PHP、Ruby 各种流行的编程语言。

  由于Memcached的诸多优势,其已经成为众多开源项目的首选集群缓存系统。如openstacksd的keystone身份认证项目。就会利用Memcached来缓存租户的Token等身份信息,从而在用户登陆验证时无需查询存储在MySQL后端数据库中的用户信息,这在数据库高负荷运行下的大型openstack集群中能够极大地提高用户的身份验证过程,在如web管理界面Horizon和对象存储Swift项目也都会利用Memcached来缓存数据以提高客户端的访问请求响应速率。

二、keystone介绍:

      keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中所有的服务之间的授权和认证都需要经过 keystone. 因此 keystone 是云平台中第一个即需要安装的服务。

 

作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情:

  1. 管理用户及其权限
  2. 维护 OpenStack Services 的 Endpoint
  3. Authentication(认证)和 Authorization(鉴权)

三、环境准备

1、三台机器:主机名:lichaohost1      (控制节点)集群网ip:192.168.206.137  租户网ip: 192.168.206.142  外网ip:192.168.206.143

  主机名:lichaohost2        (计算节点)集群网ip:192.168.206.138   租户网ip: 192.168.206.144

         主机名:lichaohost3        (储存节点)   集群网ip :192.168.206.139

2、控制节点端三块网卡:

ens33: 集群网 (组件相互通信)

ens37:租户网  (实例相互通信)

ens38:外网

3、计算节点两块网卡

ens33:集群网

ens37:租户网

4、储存节点一块网卡

ens33:集群网

5、每台机器最少4G内存

6、静态域名解析

7、免密登录

8、搭建好ntp

9、搭建好rabbitmq

openstacke ocata版 官方网站:https://docs.openstack.org/ocata/index.html

四、安装openstackclient  并安装数据库

#版本源以宕到本地所以直接下载

1、控制节点:   

yum install python-openstackclient -y  (安装 openstackclient )

 

2、 控制节点:  

yum install openstack-selinux  -y    (安装  openstack-selinux  组件)

3、 控制节点:  

yum install mariadb mariadb-server python2-PyMySQL  -y     ( 安装数据库)

 

4、控制节点: 创建并编辑/etc/my.cnf.d/openstack.cnf文件,创建一个[mysqld]节,并将绑定地址键设置为控制器节点的管理IP地址,以允许其他节点通过管理网络访问。设置额外的键来启用有用的选项和UTF-8字符集。

#1   

vim /etc/my.cnf.d/openstack.cnf

#2 编辑以下内容

[mysqld]
bind-address = 192.168.206.137
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

5:、 控制节点:启动mariadb.service并设置开机自启

systemctl restart mariadb.service
systemctl enable mariadb.service

 

6、 控制节点:  初始化数据库

mysql_secure_installation

五、搭建memcached缓存服务

1、  控制节点:

 yum install memcached python-memcached -y      安装memcached

2、控制节点: 编辑/etc/sysconfig/memcached文件

vim  /etc/sysconfig/memcached

 

#

 

注:写主机名前提做了静态域名解析

例:

 

3、控制节点:启动memcached 并设置为开机自启

systemctl enable memcached.service
systemctl restart memcached.service

六、搭建keystone 服务

1、控制节点:登录数据库

mysql -uroot   -plichao123

2、 控制节点:创建keystone数据库

create  database  keystone;

3、控制节点:授予适当的访问keystone数据库的权限

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'KEYSTONE_DBPASS';

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

4、控制节点:安装keystone 服务

yum install openstack-keystone httpd mod_wsgi -y

5、编辑/etc/keystone/keystone.conf

#1  备份原文件

 

#2  编辑/etc/keystone/keystone.conf

vim  /etc/keystone/keystone.conf

编辑以下内容:

[DEFAULT]

[assignment]

[auth]

[cache]

[catalog]

[cors]

[cors.subdomain]

[credential]

[database]

connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@lichaohost1/keystone

[domain_config]

[endpoint_filter]

[endpoint_policy]

[eventlet_server]

[federation]

[fernet_tokens]

[healthcheck]

[identity]

[identity_mapping]

[kvs]

[ldap]

[matchmaker_redis]

[memcache]

[oauth1]

[oslo_messaging_amqp]

[oslo_messaging_kafka]

[oslo_messaging_notifications]

[oslo_messaging_rabbit]

[oslo_messaging_zmq]

[oslo_middleware]

[oslo_policy]

[paste_deploy]

[policy]

[profiler]

[resource]

[revoke]

[role]

[saml]

[security_compliance]

[shadow_users]

[signing]

[token]
provider = fernet

[tokenless_auth]

[trust]

#3

 

#4

6、控制节点: 查看属组

ll

7、控制节点:同步数据库 (导入keystone表)

#1

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

#2 查看

 

8、 控制节点:  初始化Fernet密钥存储库

#1  

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone  ( 创建keystone的 用户)

#2  

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone(设置keystone 角色)

9、控制节点:配置 keystone 服务端点

如下:

keystone-manage bootstrap --bootstrap-password admin \
  --bootstrap-admin-url http://lichaohost1:35357/v3/ \
  --bootstrap-internal-url http://lichaohost1:5000/v3/ \
  --bootstrap-public-url http://lichaohost1:5000/v3/ \
  --bootstrap-region-id RegionOne

10、控制节点:配置Apache HTTP服务器

#1 编辑/etc/httpd/conf/httpd.conf文件

 

#2 配置ServerName选项来引用控制器节点

 

11、控制节点:创建到/usr/share/keystone/wsgi-keystone.conf文件的链接

 

#查看

 

12、控制节点:启动 httpd  并设置开机自启  ( 这样 keystone 服务 就可以调用 httpd 服务 从而使其正常工作了)

systemctl restart httpd.service
systemctl enable httpd.service

13、控制节点:配置管理帐户 (创建admin 用户环境变量)

#1 在/root 下编辑文件

vim   openrc

#2   编辑以下内容

export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://lichaohost1:35357/v3
export OS_IDENTITY_API_VERSION=3

七、控制节点:   简单演示 keystone(创建域、项目、用户和角色)

1、宣告环境变量

source  openrc

2、创建server 项目

openstack project create --domain default  --description "Service Project" service

 

3、查看项目列表

openstack  project list

#补充:

查看 用户列表

openstack  user list

#补充2

查看 服务端点列表

openstack   endpoint  list

# 补充3

查看角色列表

openstack  role  list

4、创建 demo  项目

openstack project create --domain default     --description "Demo Project" demo

5、创建demo用户并查看

openstack user create --domain default   --password-prompt demo

#查看

 

6、创建用户角色

openstack role create user

7、将user角色添加到demo项目的demo用户中

openstack role add --project demo --user demo user

 

posted on 2019-06-13 22:32  lichaoyx  阅读(1694)  评论(0编辑  收藏  举报

导航