RHCA cl210 013 制作镜像 轮转key rabbitmq追踪 写时复制 keystone多域登录图形界面
undercloud 部署 overcloud
overcloud控制节点上的组建rabbitmq
排错需要rabbitmq,开启追踪则会更详细,会消耗性能
环境问题
登录一下classroom
osp13 环境需要固定时间到2020年,然后fullreset其他主机,不关机时间不会变
lab controlplane-message setup 执行成功会出现两个配置文件

一个管理员一个租户
172.25.250.50:5000/v3 为keystone地址
登录使用用户所属域登录
rambbitmq
rabbitmq以容器的方式运行的
[root@controller0 ~]# docker ps | grep rabbit
8c323e2eceaa 172.25.249.200:8787/rhosp13/openstack-rabbitmq:pcmklatest "/bin/bash /usr/lo..." 54 minutes ago Up 54 minutes rabbitmq-bundle-docker-0
[root@controller0 ~]#
docker exec -it 8c323e2ec /bin/bash 没有bash就试试sh
()[root@controller0 /]# rabbitmqctl list_queues
Listing queues
q-reports-plugin_fanout_dd3d205f13f84eb4abff5217310fef60 0
conductor_fanout_d2dfe478340e4b8984d5f32218ec887e 0
engine 0
q-plugin 0
alarming.sample 0
q-plugin.controller0.overcloud.example.com 0
reply_66c462bc74bb46e187bb12c7fffde52a 0
notifications.info 0
manila-scheduler 0
列出队列的消息有多少个要被处理
0就是没有
如果有很多可能就会出问题
组建端口号 ss -tanu | grep xxx 查一查就行
可以在容器外开机rabbit追踪
[root@controller0 ~]# docker exec -i 8c323 rabbitmqctl trace_on
Starting tracing for vhost "/"
[root@controller0 ~]# ls
overcloud-full-rpm.manifest overcloud-full-signature.manifest rmq_trace.py
出现一个py的文件 (lab命令生成的,工作当中得自己写)
[root@controller0 ~]# docker exec -i 8c323 rabbitmqctl list_users
Listing users
guest [administrator]
需要通过一个新用户追踪,guest原本就有
创建rabbit用户 (考试)
[root@controller0 ~]# docker exec -i 8c323 rabbitmqctl --help | grep user
Error: could not recognise command
add_user <username> <password>
delete_user <username>
change_password <username> <newpassword>
clear_password <username>
authenticate_user <username> <password>
set_user_tags <username> <tag> ...
list_users
set_permissions [-p <vhost>] <user> <conf> <write> <read>
clear_permissions [-p <vhost>] <username>
list_user_permissions <username>
channels, protocol, auth_mechanism, user, vhost, timeout, frame_max,
user, vhost, transactional, confirm, consumer_count, messages_unacknowledged,
[root@controller0 ~]#
创建用户
[root@controller0 ~]# docker exec -i 8c323 rabbitmqctl add_user user1 redhat
Creating user "user1"
[root@controller0 ~]# docker exec -i 8c323 rabbitmqctl list_users
Listing users
user1 []
guest [administrator]
打标签
[root@controller0 ~]# docker exec -i 8c323 rabbitmqctl set_user_tags user1 administrator
Setting tags for user "user1" to [administrator]
[root@controller0 ~]# docker exec -i 8c323 rabbitmqctl list_users
Listing users
user1 [administrator]
guest [administrator]
赋权
docker exec -i 8c323 rabbitmqctl set_permissions user1 ".*" ".*" ".*"
Setting permissions for user "user1" in vhost "/"
[root@controller0 ~]#
赋权
.* 任意的所有的
./rmq_trace.py -u user1 -p redhat -t 172.24.1.1 > /tmp/trace.txt
-t 172.24.1.1监听controller0
创建云主机
openstack server create --image rhel7 --flavor default --security-group default --key-name example-keypair --nic net-id=finance-network1 finance-server2 --wait
实例运行起来才会释放终端 --wait
openstack image list
openstack keypair list
openstack security group list
openstack network list
查看到信息用在openstack server create上
[root@controller0 tmp]# ls
systemd-private-a553c85ed0f64fceacbc5dcbbdbe634e-ntpd.service-r2q3iL trace.txt
tmp.BhMtbIL4Co
[root@controller0 tmp]#
可以去查trace.txt
docker exec -i 8c323 rabbitmqctl trace_off
关闭消息队列
结束
[root@controller0 tmp]# pcs resource show
查看集群
vnc登录
通过访问5900的controller0转发到 计算节点

keystone
图形界面允许登录多域
vi /var/lib/config-data/horizon/etc/openstack-dashboard/local_setting
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
vi /var/lib/config-data/keystone/etc/keystone.conf
domain_specific_drivers_enabled=True
docker restart horizon
docker restart keystone
轮转key
fernet 不存在后端
存在控制节点
/var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys
0 未来的key 1 当前的key

可以设置轮转共保留key,5个
未来key为0,轮转后变为最大值,过期key=当前key,当前key+1 [轮转后]
过期key 未来key 当前key都有可能解密
过期key属于你提前轮转了,未来key属于其他节点先轮转了

16小时内轮转4次,过期的token会无效,退出重新登录,不断刷新token保证安全性,不放在后端也解决了token滞留影响性能
考试需要手动轮转
考试有产品文档,去那里查命令
手动轮转

轮转后
多一个key

制作镜像
raw性能最高,没有特性,没有压缩
qcow2可以有特性,有快照
KVM
实例 系统盘可以来自 文件 (qcow2) /dev/sdb 磁盘
qcow2 = qemu+cow
KVM 计算虚拟化
qemu 模拟网卡磁盘设备
现在她两被整合

未装系统,所以很小,装系统会越来越大

这是一个镜像文件
如果是raw,分配10G,立即给你用上10G
她两可以转换 qcow2 转换 raw
qeum-img convert -f qcow2 -O raw osp-small.qcow2 osp-small.raw
qcow2 写时复制 (与快照写实复制区分开来)
cow = copy on write
镜像格式为qcow2 通过此镜像发放云主机
将镜像拷贝的计算节点上去,方便启动云主机,多个云主机共用一个镜像,母盘
这是镜像,母盘

差分盘在ceph里面,差分盘们共用母盘,母盘只读,无法更改
差分盘 qcow2最小存储单元叫簇 以簇为单位
修改的数据肯定放在差分盘,但是否以为簇为单位呢,假设簇为64k,你在差分盘改了20k
剩余44k呢?所以得把剩余的44k也拷贝到差分盘,让它以最小单位簇读取。这叫写实复制
改的一部分在差分盘当中,簇剩下的,也拷贝到差分盘当中。先写再复制。(差分盘读一点母盘读一点不现实,不效率)
qemu-img info disk.qcow2 查看此镜像
使用ceph镜像被转为raw格式可以使用ceph RBD的快照功能 (使用ceph给raw(rbd)打快照)
自定义镜像
从一个基础镜像之上开始构建
guestfish
安装包libguestfs-tools-c
拉一个基础镜像
wget http://materials.example.com/osp-small.qcpw2
进入镜像
guestfish -i --network -a ~/osp-small.qcow2
(-i自动挂载分区 -a指定镜像 --network启用网络 )
><fs> command 'yum -y install httpd'
><fs> command 'systemctl enable httpd'
><fs> command 'systemctl start httpd'
><fs> command 'ls /var/www/'
cgi-bin
html
><fs> touch /var/www/html/index.html
><fs> vi /var/www/html/index.html
hello mqy
:x
><fs> command 'useradd mqy'
创建的文件都未打标签,未来可能起不来
所以打标签
><fs> command 'ls /etc/selinux/targeted/contexts/files/file_contexts'
><fs> selinux-relabel /etc/selinux/targeted/contexts/files/file_contexts /
上传镜像
--min-disk --min-raw 最小磁盘 规格与镜像匹配
openstack image create --disk-format qcow2 --file osp-small.qcow2 small
发放实例
openstack server create --image small --flavor default --security-group default --key-name example-keypair --nic net-id=finance-network1 finance-server2
[student@workstation ~(developer1-finance)]$ openstack network show provider-datacentre 查看这个网络是否为外网
[student@workstation ~(developer1-finance)]$ openstack floating ip create provider-datacentre
[student@workstation ~(developer1-finance)]$ openstack floating ip list
[student@workstation ~(developer1-finance)]$ openstack server add floating ip finance-server2 172.25.250.104
开启安全组
[student@workstation ~(developer1-finance)]$ curl 172.25.250.104
hello mqy
终于把环境玩明白了
classroom启动时会同步f0的时间.更改f0时间,重启classroom。
所有服务启动起来时,需要耐心等待,不行就重启keystone 与 horizon
RHCA cl210 013 制作镜像 轮转key rabbitmq追踪 写时复制 keystone多域登录图形界面的更多相关文章
- DOCKER学习_010:Docker的文件系统以及制作镜像
一 文件系统简介 1.1 Linux文件系统 LInux空间组成分为内核空间和用户空间(使用rootfs) linux文件系统由 bootes和 rootfs组成, bootes主要包含boot1 o ...
- 【电子取证:FTK Imager篇】FTK Imager制作镜像详细介绍
FTK Imager制作镜像详细介绍 以DD镜像制造为例,详细介绍了FTK Imager创建镜像的过程,记得大学的时候学习这些没什么教程,找到的资料也是语焉不详,故在此啰嗦一番---[suy] 一.磁 ...
- 【制作镜像】BCEC制作镜像
如要制作的新镜像已存在标准版本镜像,即linux发行版本相同(此处指CentOS6.5 64位),可利用BCEC制作. 在BCEC创建centos6.5系统的可联外网的虚机,ssh到此虚机,用yum方 ...
- Docker系列06—基于容器制作镜像并上传到Docker Registry
本文收录在容器技术学习系列文章总目录 1.制作镜像 1.1 镜像的生成途径 基于容器制作 dockerfile,docker build 本篇主要详细讲解基于容器制作镜像:基于dockerfile 制 ...
- Dockfile制作镜像
讲一个简单的案例 @哈希码用来校验,这样子会安全 MAINTANIER可能将会被LABEL代替,仅仅说说明一下镜像信息罢了. 1.首先是我们创建一个镜像 [root@ELK-chaofeng08 ~] ...
- Docker学习笔记之二:制作镜像并PUSH
Pull 如果是Public的(docker官方仓库和加速器) 直接 docker pull ubuntu:16.04 即可 若是私有的 首先登陆 docker login 仓库Host 之后 doc ...
- docker-使用Dockerfile制作镜像
最近项目中有使用docker,组内做了关于docker的培训,然后自己跟着研究了一下,大概了解如何使用.我是基于tomcat镜像制作(不需要安装jdk,配置环境变量),基于centos镜像制作需要安装 ...
- OpenStack单节点制作镜像
1.创建快照 已修改后的时刻为记录,进行制作镜像,选择要制作镜像的虚拟机,点击创建快照,在所弹出的对话框中输入所创建的镜像名称 生成了一个镜像,类型为Snapshot 2.保存镜像 查看镜像列表 [r ...
- RabbitMQ原理——exchange、route、queue的关系
从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用Rabbit MQ构建 ...
- WIN7安装Docker Toolbox、制作镜像并发到阿里云
一.安装Docker Toolbox,并配置国内源加速 WIndows7不支持Hyper-v,所以只能采用Docker Toolbox的方式使用Docker.传送门:http://mirrors.al ...
随机推荐
- JS注释 JS变量
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 常见的Linux命令
在 cmd 命令行 或者终端中 可以运行 node.js 命令 也可以 运行 SQL语句 还可以运行 Linux 命令 Li ...
- SELinux 基本原理
首发公号:Rand_cs SELinux 基本原理 本文讲述 SELinux 保护安全的基本原理 安全检查顺序 不废话,直接先来看张图 当我们执行系统调用的时候,会首先对某些错误情况进行检查,如果失败 ...
- Javascript高级程序设计第三章 | ch3 | 阅读笔记
语言基础 语法 标识符 注释 // /* */ 严格模式 // 也可以单独指定在一个函数中进行 'use strict' 语句 语句末尾分号不是必须的,但是最好加上 加上分号方便开发者删除空行压缩代码 ...
- mysql删除主键索引,删除索引语法
mysql删除主键索引,删除索引语法 ### Incorrect table definition; there can be only one auto column and it must be ...
- 字符数组转换及数字求和 java8 lambda表达式 demo
public static void main(String[] args) throws IllegalAccessException { //字符串转换为数字且每个加上100,输出. String ...
- python 动态导入模块并结合反射,动态获取类、方法(反射太好用),动态执行方法
背景: 关键字驱动框架,不同的关键字方法分别定义在不同的类,真正执行关键字方法又在不同的类(简称A),这样就需要在执行前,要在文件A下import要使用的模块,如果有很多页面操作或很多模块时,就需要每 ...
- python json反序列化为对象
在Python中,将JSON数据反序列化为对象通常意味着将JSON格式的字符串转换为一个Python的数据结构(如列表.字典)或者一个自定义的类实例.虽然Python的标准库json模块不提供直接将J ...
- 让matplotlib在绘图时显示中文
让matplotlib绘图时显示中文. 安装中文字体 apt install fonts-wqy-microhei 清除matplotlib的缓存 rm -rf ~/.cache/matplot ...
- python中globals()的用法
python中globals()的用法 1. 获取所有的全局变量, 获取到的内容如下: {'__name__': '__main__', '__doc__': None, '__package__': ...