部署memcached与keystone

 
机器:3台
1:controller:3块网卡(集群网,租户网,外网)
2:compute:2块网卡(集群网,租户网)
3:storage:1块网卡(集群网)
 
1、设置主机名,彼此域名解析,无密钥登陆
vim /etc/hosts   
ssh-keygen   ssh-copy-id  ip号
以上已拍快照
 
在其他地方看视频6月3日 30分
 
因为现在在学校做消息队列的基础上做这个repo源也配好了,所以直接进行一下步骤
在主节点上
 
Environment
 
第一步:安装OpenStackpython客户端
注意yum源,如果不是这样可能会出现版本会出现报错(如果有其他的放到old里面)
[root@controller ~]# yum install python-openstackclient -y
安装组件
[root@controller ~]# yum install openstack-selinux  -y
 
 
第二步:安装数据库
 
[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL -y
mariadb  客户端
mariadb-server   服务端   如果不在下载mariadb,没有办法通过命令行去登录的
python2-PyMySQL    py2的拓展包
 
第三步:配置一个OpenStack单独的配置文件
[root@controller ~]# cd /etc/my.cnf.d/
[root@controller my.cnf.d]# ls
[root@controller my.cnf.d]# vim openstack.cnf
[mysqld]
bind-address = 192.168.193.150
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
 
[mysqld]
bind-address = 10.0.0.11          监听的地址 地址写你集群网卡 就是ens33的ip   ip一定要写对
default-storage-engine = innodb    默认的数据库引擎
innodb_file_per_table = on            启动引擎
max_connections = 4096          最大链接数  (越大越好)
collation-server = utf8_general_ci          字符集
character-set-server = utf8
 
第四步:启动数据库
[root@controller ~]# systemctl start mariadb.service
[root@controller ~]# systemctl enable mariadb.service   设置开机自启动
 
第五步:初始化数据库
[root@controller ~]# mysql_secure_installation
 
测试是否能登录数据库
 
数据库正常,exit退出即可
 
 
 
第六步:安装消息队列
[root@controller ~]# yum install rabbitmq-server -y   (这个之前已配置完成)
启动
root@controller ~]# systemctl start rabbitmq-server.service
[root@controller ~]# systemctl enable rabbitmq-server.service
先关闭防火墙
[root@controller ~]# systemctl stop firewalld
去浏览器里查看是否能正常访问
 
 
第七步:在MQ里添加一个普通用户名字为OpenStack
[root@controller ~]# rabbitmqctl add_user openstack admin 创建用户 密码
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"    设置权限
[root@controller ~]# rabbitmqctl set_user_tags openstack administrator     设置为管理员才能登录
 
使用浏览器登录   成功为正确
Message queue  完结
 
 
第八步:安装缓存服务
[root@controller ~]# yum install memcached python-memcached -y
 
修改 memcached配置文件
[root@controller ~]# vim /etc/sysconfig/memcached
 
启动memcached服务
[root@controller ~]# systemctl start memcached.service
[root@controller ~]# systemctl enable memcached.service
这样就部署完成了
 
 
 
接下来开始keystone服务
Identity service
 
Install and configure
 
第一步:去数据库里创建keystone库
因为keystone这个服务它要保存一些数据所以要创建
 
[root@controller ~]#  mysql -u root -p123
MariaDB [(none)]> CREATE DATABASE keystone;      创建库
创建用户并赋予权限可以本地登录还可以远程登录
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
    -> IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
    -> IDENTIFIED BY '123';
MariaDB [(none)]> exit
 
第二步:安装keystone服务
[root@controller ~]# yum install openstack-keystone httpd mod_wsgi -y
keystone是没有自己的服务进程    keystone是去调用http去对外提供服务
想使用keystone必须要启动http服务
 
第三步:修改keystone服务的配置文件
[root@controller ~]# cd /etc/keystone/    进入目录
[root@controller keystone]# ls    查看
default_catalog.templates  keystone-paste.ini  policy.json
keystone.conf              logging.conf        sso_callback_template.html
[root@controller keystone]# cp keystone.conf  keystone.conf.bak    复制一份
完后再去修改
[root@controller keystone]# vim keystone.conf
所有配置段删除dG     复制粘贴下面
[DEFAULT]
 
[assignment]
 
 
[auth]
 
[cache]
 
[catalog]
 
[cors]
 
[cors.subdomain]
 
[credential]
 
[database]
 
[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]
 
一共87行   复制可以网站http://learn.yunwei.edu/ --> openstack-->Keystone
 
16 connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
链接数据库的方式   用keystone用户去连接然后连接controller 这台机器,这个密码必须是你的数据库刚才设定的密码
82 [token]
83 provider = fernet       token 创建    fernet组件创建的
 
 
修改完后查看权限  下图为正确   属主必须是keystone   权限是640
 
第四步:同步数据库
因为keystone的数据库是空的
可以登录数据库验证
导入库
[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone
登录数据库   是有数据的
 
第五步:创建 Fernet 认证的一些配置
使用keystone-manage创建fernet设置   设置keystone的用户   并且这个用户在 keystone组
因为keystone是做用户管理的所以用keystone创建用户
[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone   创建keystone的用户和组
完后在创建keystone的用户信息
[root@controller ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone     设置keystone用户的角色 并且放到了keystone组里
 
 
第六步:做keystone服务的服务端点
 
 
有文件夹修改过的  (下面这是命令  注意密码)
keystone-manage bootstrap --bootstrap-password admin \        这个密码一定要注意
  --bootstrap-admin-url http://controller:35357/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne
 
 
下面是这条命令的解释
keystone-manage bootstrap --bootstrap-password admin \   创建admin用户设置密码这个如果设置错了是没有办法设置OpenStack操作平台的   这个密码一定要注意,下面登录的时候会用到
  --bootstrap-admin-url http://controller:35357/v3/ \     管理网的服务端点  用户名端口号v3是api的版本
  --bootstrap-internal-url http://controller:5000/v3/ \  内部网络服务端点地址  内部服务端点5000
  --bootstrap-public-url http://controller:5000/v3/ \   公共
  --bootstrap-region-id RegionOne
其他服务也有这三个服务端点 管理 内部  公共
 
 
第七步:编辑http服务的配置文件
因为keystone是通过调用http对外提供服务的
[root@controller ~]# vim /etc/httpd/conf/httpd.conf
96 ServerName controller
 
 
第八步:创建一个软链接
它调用是有一个wsgi的模块我们要把这个模块链接到keystone的文件夹下面
[root@controller ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
源路径是 /usr/share/keystone/wsgi-keystone.conf    链接到/etc/httpd/conf.d/
检查是否链接成功
有了这个keystone才可以调用http
 
第九步:启动http服务
[root@controller ~]# systemctl start httpd.service
[root@controller ~]# systemctl enable httpd.service
 
第十步:创建admin用户的环境变量
确保在root下执行下面的操作
[root@controller ~]# 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://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
 
把百分号全部去掉 :  %s/$ //g
$ export OS_USERNAME=admin   export 是宣告变量 变量名OS_USERNAME  变量是admin
$ export OS_PASSWORD=admin         密码(就是上面设置的密码)
$ export OS_PROJECT_NAME=admin         项目叫admin
$ export OS_USER_DOMAIN_NAME=Default      域为default
$ export OS_PROJECT_DOMAIN_NAME=Default      项目域的名字default
$ export OS_AUTH_URL=http://controller:35357/v3   用户验证的地址   就是keystone服务端点  v3版本的API
$ export OS_IDENTITY_API_VERSION=3     验证服务的API版本  是第三版本
 
 
Prerequisites
创建项目域角色
 
 
 
这时候刚才编辑的环境变量的配置文件就起到作用了,登录就需要使用环境变量
每次使用OpenStack的命令时都需要宣告一下环境变量
 
使用OpenStack的命令是要先 source openrc
 
[root@controller ~]# source openrc
[root@controller ~]# openstack project create --domain default   --description "Service Project" service
 
openstack主命令
project create 项目创建
--domain default \   创建domain域   域的名字叫default
  --description   描述
"Service Project"  这个域是服务的项目
service   名字叫service
下图为正确
下图是报错
 
 
这样就把service的项目创建完了
 
查看项目列表
[root@controller ~]# openstack project list
 
service是新的    admin是自带的
 
查看用户列表
[root@controller ~]# openstack user list
 
 
查看每个服务的服务端点
[root@controller ~]# openstack endpoint list
 
 
查看角色
[root@controller ~]# openstack role list
 
admin   就是root  超级管理员
_member_   比admin低一点   一些普通的操作使用member
 
 
 
 
再创建一个demo的项目
先查看项目列表
 
[root@controller ~]# openstack project create --domain default \
>   --description "Demo Project" demo     创建项目 demo
 
openstack project create --domain default \
>   --description "Demo Project" demo
 
 
 
创建demo的用户
下图中用户只有admin
 
[root@controller ~]# openstack user create --domain default \
>   --password-prompt demo
 
openstack user create   创建用户
--domain default \      处在default 域里面
  --password-prompt demo  给demo的用户的密码
 
 
 
 
再创建一个角色  角色叫user
 
[root@controller ~]# openstack role create user    这个只是普通用户的一个角色
 
 
 
 
把demo用户设置成普通的用户
 
[root@controller ~]# openstack role add --project demo --user demo user
 
openstack role 添加角色操作
add --project demo  用户在project demo项目里
--user demo user  用户叫demo   设置角色叫user
 
 
Verify operation
 
 
现在admin用户的密码生效了可以使用命令需要一个环境变量的值
现在把admin用户的名字和密码取消掉然后再登录一下
 
取消环境变量的值
[root@controller ~]# unset OS_AUTH_URL OS_PASSWORD
 
 
来验证一下
[root@controller ~]# openstack --os-auth-url http://controller:35357/v3 \
>   --os-project-domain-name default --os-user-domain-name default \
>   --os-project-name admin --os-username admin token issue
 
openstack --os-auth-url http://controller:35357/v3 \
登录它的服务端点是找keystone服务端点
  --os-project-domain-name default --os-user-domain-name default \
登录的项目是default               域叫default
  --os-project-name admin --os-username admin token issue
用项目里面的admin用户来登录   使用token的方式来验证
 
 
使用OpenStack的命令
 
到这keystone服务就部署完成了
 

posted @ 2020-05-10 17:21  乄Keyboardman丶  阅读(297)  评论(0编辑  收藏  举报