ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

openstack-keystone

2022-08-08 10:32:00  阅读:207  来源: 互联网

标签:mon01 -- keystone yum openstack root


keystone
参考视频:https://www.bilibili.com/video/BV1ju411v7Ug?p=2
openstack官方网站:https://docs.openstack.org/rocky/index.html查看各个版本的安装指导手册
一、基本角色
管理员admin
租户_member_
二、Keystone基本架构
Keystone Service:
token:用来生成和管理token
catalog:用来存储和管理service/endpoint
Identity:用来管理tenant/user/role和验证
Policy:用来管理访问权限
三、环境搭建-部署必要的组件
准备4台虚拟机1台控制机,3台node
1.环境初始化,配置hosts解析,NTP(网络时钟同步)
#以下2-4在node1上部署
2.创建openstack-rocky版本的yum源
[root@mon01 yum.repos.d]# cat openstack-rocky.repo
[rocky]
name=CentOS-Rocky
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-rocky/
enable=1
gpgcheck=0
[rocky-extras]
name=CentOS-Rocky-extras
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
enable=1
gpgcheck=0
[centos7]
name=Centos-7
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enable=1
gpgcheck=0
[root@mon01 yum.repos.d]# yum clean all
[root@mon01 yum.repos.d]# yum makecache
3.[root@mon01 yum.repos.d]# yum install python-openstackclient
4.[root@mon01 yum.repos.d]# yum install openstack-selinux

#部署数据库(选择在node1上部署)
5.[root@mon01 yum.repos.d]# yum install mariadb mariadb-server python2-PyMySQL -y
6.[root@mon01 my.cnf.d]# cat /etc/my.cnf.d/openstack.cnf #编辑一个配置文件
[mysqld]
bind-address = 192.168.43.120 #管理网卡的地址

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
7.[root@mon01 my.cnf.d]# systemctl enable mariadb.service
8.[root@mon01 my.cnf.d]# systemctl start mariadb.service
9.[root@mon01 my.cnf.d]# mysql_secure_installation #初始化数据库

#安装消息队列rabbitmq
10.参考链接:https://docs.openstack.org/install-guide/environment-messaging-rdo.html
或者参考之前的学习文档openstack-rabbitmq的文档

#安装memcached
11.[root@mon01 ~]# yum install memcached python-memcached
12.[root@mon01 ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,192.168.43.120" #此处可以写ip也可以写hostname,即mon01

#安装etcd
[root@mon01 ~]# yum install etcd
[root@mon01 ~]# cat /etc/etcd/etcd.conf
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.43.120:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.43.120:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.43.120:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.43.120:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.43.120:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
[root@mon01 ~]# systemctl enable etcd
[root@mon01 ~]# systemctl start etcd

四、部署身份认证服务
参考文档:https://docs.openstack.org/keystone/rocky/install/keystone-install-rdo.html
1.配置数据库,让keystone用户可以本地或者远程登录
[root@mon01 ~]# mysql -uroot -p123456
MariaDB [(none)]> CREATE DATABASE keystone;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> flush privileges;
2.[root@mon01 ~]# yum install openstack-keystone httpd mod_wsgi -y

 

  出现如上图所示,可以到下面的地址搜索python2-qpid-proton-0.22.0-1.el7.x86_64.rpm包

  https://developer.aliyun.com/packageSearch?word=mitaka

  #将下载下来的包直接安装

  [root@mon01 qpid]# rpm -ivh python2-qpid-proton-0.22.0-1.el7.x86_64.rpm --nodeps --force
3.修改配置文件 vim /etc/keystone/keystone.conf
[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@mon01/keystone #此处的mon01也可以写IP
[token]
provider = fernet
4.同步数据库
[root@mon01 ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone
到数据库下面查看是否有表

如果报错内容如下:

 [root@mon01 qpid]# yum install -y python2-pip-8.1.2-14.el7.noarch

[root@mon01 qpid]# pip uninstall urllib3

[root@mon01 qpid]# pip uninstall chardet

[root@mon01 qpid]# pip install requests
5.初始化Fernet密钥存储库

[root@mon01 ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keyston

[root@mon01 ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

6.设置admin用户的密码

[root@mon01 ~]# keystone-manage bootstrap --bootstrap-password ADMIN_PASS  \

--bootstrap-admin-url http://mon01:5000/v3/  \

--bootstrap-internal-url http://mon01:5000/v3/  \

--bootstrap-public-url http://mon01:5000/v3/  \

--bootstrap-region-id RegionOne

 --bootstrap-password ADMIN_PASS \  #设置admin的密码为ADMIN_PASS
  --bootstrap-admin-url http://controller:5000/v3/ \       #设置管理网控制节点的地址
  --bootstrap-internal-url http://controller:5000/v3/ \     #设置内网控制节点的地址
  --bootstrap-public-url http://controller:5000/v3/ \      #设置公共网控制节点的地址
  --bootstrap-region-id RegionOne                  #设置工作域 RegionOne

7.配置apache httpd服务

  #修改/etc/httpd/conf/httpd.conf文件

  ServerName mon01

  #将配置文件软连接到httpd的conf.d目录下

  ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

  #重启httpd服务和设置开机自启动

  [root@mon01 ~]# service httpd restart

  [root@mon01 ~]# systemctl enable httpd.service

  #验证wsgi-keystone.conf中监听的5000端口是否启动

  [root@mon01 ~]# netstat -lntp|grep 5000

  #配置admin用户的环境变量:建一个文件keystone_admin,内容如下

[root@mon01 ~]# cat keystone_admin 
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://mon01:5000/v3
export OS_IDENTITY_API_VERSION=3

  #让环境变量生效

  [root@mon01 ~]# source keystone_admin

  #列出用户信息

  [root@mon01 ~]# openstack user list

 

 8.创建一个domain(域),projects(项目),users(用户)和roles(角色)

  •   创建domain keystone默认域为default,项目、用户、用户组、角色都包含在域中

  [root@mon01 ~]# openstack domain create --description "An Example Domain" example

  [root@mon01 ~]# openstack domain list   #列出domain

  [root@mon01 ~]# openstack domain set --disable 18bcea93997b4ebfb4dd7d48f8c68d1b  #关闭domain

  [root@mon01 ~]# openstack domain delete 18bcea93997b4ebfb4dd7d48f8c68d1b  #删除domain

  •   创建project,用于资源(计算、存储和网络)进行分组和隔离

  [root@mon01 ~]# openstack project create --domain default   --description "Service Project" service

  [root@mon01 ~]# openstack project list  #列出所有的项目

  [root@mon01 ~]# openstack project delete 378564d621914bfab20a4a7e90478f40 #删除一个项目

  [root@mon01 ~]# openstack project create --domain default   --description "Demo Project" myproject #创建一个Demo的项目

  •   创建用户,可以登录openstack的用户

  [root@mon01 ~]# openstack user create --domain default   --password=123456 myuser  #指定密码

  [root@mon01 ~]# openstack user create --domain default   --password-prompt myuser  #终端2次输入

  [root@mon01 ~]# openstack user delete 5fe1d49157314a0c886f914fbe622134 #删除一个用户

  •   创建role,不同的role具备不同的权限,一种叫admin,另一种为非admin

  [root@mon01 ~]# openstack role create myrole

  [root@mon01 ~]# openstack role list #列出role

  [root@mon01 ~]# openstack role delete 52704ef6f70141cb8b9f4717bff3cad4 #删除一个role

  [root@mon01 ~]# openstack role add --project myproject --user myuser myrole #将myrole角色添加到myproject项目和myuser 用户中

 

标签:mon01,--,keystone,yum,openstack,root
来源: https://www.cnblogs.com/jingsshao/p/16529784.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有