实验环境部署

主机名 IP 备注
controllre 192.168.80.184 控制节点
compute01 192.168.80.185 计算节点

注:计算节点可有多个


控制节点和计算节点  环境搭建


  • 分别配置主机名和hosts文件

# hostnamectl set-hostname controller # hostnamectl set-hostname compute01  //重启生效 # vi /etc/hosts   192.168.80.184 controller
  192.168.80.185 compute01

  • 关闭禁用 防火墙及SELinux

# systemctl stop firewalld

# systemctl disable firewalld

# setenforce 0

# vi /etc/sysconfig/selinux

SELINUX=disabled

  • 时间同步

# yum install -y ntp

# ntpdate time1.aliyun.com //同步阿里云网络时间

# date   //查看时间是否同步

  • 安装必要软件

# yum install -y vim net-tools wget telnet

  • 安装openstack包

安装对应版本的epel库:

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

安装openstack客户端:

# yum install python-openstackclient -y

RHEL和CentOS 默认启用SELinux。安装 openstack-selinux软件包以自动管理OpenStack服务的安全策略:

# yum install openstack-selinux -y

  • 数据库安装

安装包:

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

创建和编辑配置文件 /etc/my.cnf.d/openstack.cnf:

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

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

设置启动数据库:

# systemctl enable mariadb.service
# systemctl start mariadb.service

通过运行mysql_secure_installation 脚本来保护数据库服务。特别是,为数据库root帐户选择合适的密码 :

# mysql_secure_installation

# Enter current password for root (enter for none):     Enter(回车)     //输入根目录的当前密码(输入表示无)

# Set root password? [Y/n]   y   //是否设置root密码

# New password:

# Re-enter new password:

# Remove anonymous users? [Y/n] y  // 是否删除匿名用户

# Disallow root login remotely? [Y/n] y  // 是否禁止root远程登陆

# Remove test database and access to it? [Y/n] y  //是否删除test库

# Reload privilege tables now? [Y/n] y  //加载权限表

Thanks for using MariaDB!

  • 安装消息队列

安装rabbitmq:

# yum install rabbitmq-server -y

启动rabbitmq:

# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service

使用此插件实现web管理:
# rabbitmq-plugins enable rabbitmq_management

验证是否开启成功
# netstat -anpt | grep 5672

浏览器访问:192.168.80.184:15672

用户名 密码皆为 guest

添加openstack用户

添加的用户名为openstack,密码也是openstack

# rabbitmqctl add_user openstack openstack

对openstack用户进行读写授权:

# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

  • 安装Memcached

安装Memacached:

# yum install memcached python-memcached -y

编辑/etc/sysconfig/memcached,修改配置

# vi /etc/sysconfig/memcached

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

注:  修改部分为     ( ,+本机ip)

启动memcached:

# systemctl enable memcached.service
# systemctl start memcached.service

验证有没有开启
# netstat -anpt | grep memcache

到此环境部署完成。



控制节点: 开始安装openstack服务

keystone服务安装

配置keystone数据库:

使用数据库访问客户端以root用户身份连接到数据库服务器:

# mysql -u root -p

创建keystone数据库,授予对keystone数据库的适当访问权限:

> CREATE DATABASE keystone;

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

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

> quit

安装配置keystone

运行以下命令以安装软件包:

# yum install openstack-keystone httpd mod_wsgi -y

编辑/etc/keystone/keystone.conf文件并完成以下操作:
# cd /etc/keystone/

# cp keystone.conf keystone.conf.bak     //以防误操作,尽量先将配置文件备份一份
# egrep -v "^#|^$" keystone.conf.bak > keystone.conf

# vi keystone.conf

[database]
    connection = mysql+pymysql://keystone:keystone@192.168.80.184/keystone
    [token]
    provider = fernet

填充Identity服务数据库:

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

验证数据库表
# mysql -ukeystone -pkeystone -e "use keystone; show tables;"

初始化Fernet密钥存储库:

# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

引导身份服务:

admin为管理用户的密码,这里是设置密码。
# keystone-manage bootstrap --bootstrap-password admin \
  --bootstrap-admin-url http://192.168.80.184:5000/v3/ \
  --bootstrap-internal-url http://192.168.80.184:5000/v3/ \
  --bootstrap-public-url http://192.168.80.184:5000/v3/ \
  --bootstrap-region-id RegionOne

配置Apache HTTP服务

编辑/etc/httpd/conf/httpd.conf
# vi /etc/httpd/conf/httpd.conf

ServerName 192.168.80.184

创建/usr/share/keystone/wsgi-keystone.conf文件的链接:

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

启动服务

启动Apache HTTP服务并将其配置为在系统引导时启动:
# systemctl enable httpd.service
# systemctl start httpd.service

配置管理帐户

# 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://192.168.80.184:5000/v3
# export OS_IDENTITY_API_VERSION=3

查看全局变量是否生效
# env|grep ^OS

创建domain(域),projects(项目),users(用户) and roles(角色)

# openstack domain create --description "An Example Domain" example

注:OpenStack 是动态生成 ID 的,因此您看到的输出会与示例中的命令行输出不相同。

使用默认的domain,创建service项目:用做服务。
# openstack project create --domain default \
  --description "Service Project" service

创建myproject项目:用做常规(非管理员)任务应使用非特权项目和用户。
# openstack project create --domain default \
  --description "Demo Project" myproject

创建myuser用户:

创建用户需要设置密码
# openstack user create --domain default \
  --password-prompt myuser

注:密码自定义

创建myrole角色:
# openstack role create myrole

将myuser添加到myproject项目中并赋予myrole的角色:
# openstack role add --project myproject --user myuser myrole

验证用户
取消设置临时 变量OS_AUTH_URL和OS_PASSWORD环境变量:
# unset OS_AUTH_URL OS_PASSWORD

作为admin用户,请求身份验证令牌:
 执行后需要输入admin密码

# openstack --os-auth-url http://192.168.80.184:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name admin --os-username admin token issue

注:

用户名密码皆为admin

作为myuser用户,请求身份验证令牌:
# openstack --os-auth-url http://192.168.80.184:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name myproject --os-username myuser token issue

注:上面注册之后输入的密码

创建openstack 客户端环境脚本

openstack客户端通过添加参数或使用环境变量的方式来与Identity服务进行交互,为了提高效率,创建环境脚本:

创建admin用户环境脚本:admin-openstack.sh

# vi admin-openstack.sh

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://192.168.80.184:5000/v3
    export OS_IDENTITY_API_VERSION=3

创建myuser用户环境脚本:demo-openstack.sh

# vi demo-openstack.sh

export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=myproject
    export OS_USERNAME=myuser
    export OS_PASSWORD=myuser
    export OS_AUTH_URL=http://192.168.80.184:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2

使用脚本

# source           admin-openstack.sh  或者  demo-openstack.sh

# openstack token issue   //请求身份验证令牌

转载于:https://blog.51cto.com/14188767/2382100

OpenStack搭建私有云一:认证服务相关推荐

  1. 使用openstack搭建私有云

    OpenStack 部署 一.环境准备 版本介绍 CentOS Linux release 7.6.1810 (Core) 内核版本:3.10.0-957.el7.x86_64 $ openstack ...

  2. nextcloud网站不安全_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...

    免费的云盘服务有很多,但是总感觉把重要文件存在上面不安全,动不动就跑路或者限速. 辛辛苦苦收集的学习资料,一夜直接可能就会付诸东流. 最稳妥的方式是存放在本地硬盘中,但是要进行共享或者不同设备之间进行 ...

  3. 百度云盘云知梦php_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...

    免费的云盘服务有很多,但是总感觉把重要文件存在上面不安全,动不动就跑路或者限速. 辛辛苦苦收集的学习资料,一夜直接可能就会付诸东流. 最稳妥的方式是存放在本地硬盘中,但是要进行共享或者不同设备之间进行 ...

  4. linux 可道云_如何搭建私有云

    最近有个Team共享文档的需求.包括大文件,有个access文件超过500m.开始用百度网盘,发现只能分享,不能共享.试了几个其它网盘,广告超级多,但是都没有共享这个功能. 基于此,找了几个私有云程序 ...

  5. 本地搭建私有云盘:虚拟机安装群晖NAS 1/5

    系列文章 本地搭建私有云盘:虚拟机安装群晖NAS 1/5 本地搭建私有云盘:安装Synology Assistant 2/5 本地搭建私有云盘:群晖系统存储空间设置 3/5 本地搭建私有云盘设定:设置 ...

  6. 搭建私有云:owncloud(用Docker构建owncloud私有云盘)

    网上各种云盘都要收费,又或有速度限制,感觉用起来不方便,想抽时间想搭建一个私有云盘.下面讲解下搭建私有云:owncloud. 搭建私有云:owncloud(用Docker构建owncloud私有云盘) ...

  7. 华为私有云的搭建方案_如何搭建私有云

    最近有个Team共享文档的需求.包括大文件,有个access文件超过500m.开始用百度网盘,发现只能分享,不能共享.试了几个其它网盘,广告超级多,但是都没有共享这个功能. 基于此,找了几个私有云程序 ...

  8. php owncloud_技术|搭建私有云:OwnCloud

    所有人都在讨论云.尽管市面上有很多为我们提供云存储和其他云服务的主要服务商,但是我们还是可以为自己搭建一个私有云. 在本教程中,我们将讨论如何利用 OwnCloud 搭建私有云.OwnCloud 是一 ...

  9. 华为私有云的搭建方案_Kali linux 搭建私有云

    Kali linux搭建私有云 1:安装Apache apt-get install apache2 2:安装PHP apt-get install php7.0 3:安装PHP模块 apt-get ...

最新文章

  1. abb机器人指令手册_ABB机器人可以告别示教器啦
  2. 大数据没有降温,已融入主流科技领域
  3. golang 生成 指定大小 空白文件
  4. 【Hello CC.NET】巧用模板简化配置
  5. .NET 指南:许可请求
  6. redis 安装并设置为开机启动服务
  7. 学习结构[记录]类型(7) - 结构也可以有构造函数
  8. mysql数据库比较,各数据库不同之处
  9. android 前后同时预览_用上这些官方动态壁纸,让你的 Android 主屏简洁又优雅
  10. centos7 mysql读写监控,《Centos7——zabbix监控mysql的常规操作》
  11. 网站子域名扫描程序,采用三种扫描方式(crt网站查询、站长网站查询、字典暴力破解)
  12. 火狐无法安装扩展_立即安装4个Firefox扩展
  13. 产品经理/总监 面试题及答案
  14. 大数据:阿里数据仓库建模及管理体系OneData什么是阿里onedata
  15. hapi_带有节点和Hapi后端的Angular文件上传
  16. python 画图 平滑曲线_用Python平滑曲线
  17. php表格弄成隔两行变色,Excel表格实现隔行填充背景颜色的三种方法
  18. [案例4-4]学生和老师
  19. 【Code】OJ推荐
  20. 一起来玩玩WebGL--第一弹

热门文章

  1. PHP 阿里云视频点播HLS加密(简单流程)
  2. Java 字符集编解码及乱码示例
  3. 训练ChatGPT的必备资源:语料、模型和代码库完全指南
  4. 【渝粤教育】国家开放大学2018年春季 0049-22T法律文书 参考试题
  5. 投射式AR/AR眼镜的标定之相机姿态、Unity投影矩阵的计算
  6. 谷歌PR权重 Google PR与百度权重
  7. python入门的详细答案_第11篇参考答案:Python入门经典习题题解
  8. httpd.conf linux,linux上安装apache以及httpd.conf基本配置
  9. mongoDB conf 文件配置详解
  10. 离散数学图论期末复习