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