OpenStack基础组件安装keystone身份认证服务

域名解析

vim /etc/hosts

192.168.245.172 controller01

192.168.245.171 controller02

192.168.245.173 controller03

配置源码

配置 dns 全局解释器:

vim /etc/resolv.conf

nameserver 192.168.254.251            #连接learn.yunwei.edu的内网
nameserver 223.5.5.5   

wget http://download2.yunwei.edu/shell/yum-repo.sh
sh yum-repo.sh

清空,更新下源码

yum clean all (清空)

yum makecache (更新)

OpenStack 环境组件安装

由于我们配置好了公司源码,所以直接下载所需的组件

安装 OpenStack包:

1.安装启用 OpenStack 仓库的包

# yum install centos-release-openstack-ocata -y

2.安装 OpenStack 客户端

# yum install pythone-openstackclient -y

3.安装 OpenStack-selinux 软件包以便自动管理 OpenStack 服务的安全策略

# yum install openstack-selinux -y

安装 SQL 数据库:

1.安装软件包

# yum install  mariadb mariadb-server python2-PyMySQL -y

2.创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作:

在 [mysqld] 部分,设置 ``bind-address``值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库:

# cat /etc/my.cnf.d/openstack.cnf

[mysqld]
bind-address = 192.168.245.172 #绑定控制节点IP,填主机名或者Ip
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

 3.启动数据库服务,并将其配置为开机自启

# systemctl start mariadb.service

# systemctl enable mariadb.service

并检查端口是否存在

ss -ntl | grep 3306 或者 netstat -ntpl | grep 3306

4.为了保证数据库服务的安全性,运行 mysql_secure_installation 设置密码

# mysql_secure_installation

安装rabbitmq消息队列

yum -y install rabbitmq-server

systemctl start rabbitmq-server.service

systemctl enable rabbitmq-server.service

在rabbitmq中添加用户

rabbitmqctl add_user openstack admin

设置权限

rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...

安装memcached

yum -y install memcached python-memcached

编辑配置文件

vim /etc/sysconfig/memcached

PORT=“11211”
USER=“memcached”
MAXCONN=“1024”
CACHESIZE=“64”
OPTIONS="-l 127.0.0.1,::1,controller01"

systemctl start memcached.service

systemctl enable memcached.service

Identity service安装

mysql -uroot -p123

CREATE DATABASE keystone;

建立keystone用户与权限

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘localhost’
IDENTIFIED BY ‘123’;

设置远程登录

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’
IDENTIFIED BY ‘123’;

下载keystone httpd mod_wsgi 

yum -y install openstack-keystone httpd mod_wsgi

先备份配置文件

cp /etc/keystone/keystone.conf /etc/keystone/keystone.conf.bak

编辑配置文件,在database模块中添加

[DEFAULT]

[assignment]

[auth]

[cache]

[catalog]

[cors]

[cors.subdomain]

[credential]

[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/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]

导入数据库

su -s /bin/sh -c “keystone-manage db_sync” keystone

mysql -ukeystone -p123

use keystone;

show tables;

+------------------------+
| access_token           |
| assignment             |
| config_register        |
| consumer               |
| credential             |
| endpoint               |
| endpoint_group         |
| federated_user         |
| federation_protocol    |
| group                  |
| id_mapping             |
| identity_provider      |
| idp_remote_ids         |
| implied_role           |
| local_user             |
| mapping                |
| migrate_version        |
| nonlocal_user          |
| password               |
| policy                 |
| policy_association     |
| project                |
| project_endpoint       |
| project_endpoint_group |
| region                 |
| request_token          |
| revocation_event       |
| role                   |
| sensitive_config       |
| service                |
| service_provider       |
| token                  |
| trust                  |
| trust_role             |
| user                   |
| user_group_membership  |
| user_option            |
| whitelisted_config     |
+------------------------+
38 rows in set (0.00 sec)

建立管理员的用户

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

设置keystone服务端点

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

链接keystone的配置文件

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ #软链接

开启httpd服务

systemctl start httpd.service

systemctl enable httpd.service

httpd中写入服务器的地址

vim /etc//httpd/conf/httpd.conf  #在ServerName模块下写入

ServerName comtroller01

systemctl restart httpd

宣告环境变量

vim openrc

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://controller01:35357/v3
export OS_IDENTITY_API_VERSa

 source openrc 启动环境变量

显示如下则为成功

openstack user list

创建名为service的项目

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

创建demo项目

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

创建demo项目的用户,并设置为管理员

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

创建用户user的角色

openstack role create user

在项目demo中添加角色,并设为普通

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

 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/lwl117/p/10691654.html