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多域登录图形界面的更多相关文章

  1. DOCKER学习_010:Docker的文件系统以及制作镜像

    一 文件系统简介 1.1 Linux文件系统 LInux空间组成分为内核空间和用户空间(使用rootfs) linux文件系统由 bootes和 rootfs组成, bootes主要包含boot1 o ...

  2. 【电子取证:FTK Imager篇】FTK Imager制作镜像详细介绍

    FTK Imager制作镜像详细介绍 以DD镜像制造为例,详细介绍了FTK Imager创建镜像的过程,记得大学的时候学习这些没什么教程,找到的资料也是语焉不详,故在此啰嗦一番---[suy] 一.磁 ...

  3. 【制作镜像】BCEC制作镜像

    如要制作的新镜像已存在标准版本镜像,即linux发行版本相同(此处指CentOS6.5 64位),可利用BCEC制作. 在BCEC创建centos6.5系统的可联外网的虚机,ssh到此虚机,用yum方 ...

  4. Docker系列06—基于容器制作镜像并上传到Docker Registry

    本文收录在容器技术学习系列文章总目录 1.制作镜像 1.1 镜像的生成途径 基于容器制作 dockerfile,docker build 本篇主要详细讲解基于容器制作镜像:基于dockerfile 制 ...

  5. Dockfile制作镜像

    讲一个简单的案例 @哈希码用来校验,这样子会安全 MAINTANIER可能将会被LABEL代替,仅仅说说明一下镜像信息罢了. 1.首先是我们创建一个镜像 [root@ELK-chaofeng08 ~] ...

  6. Docker学习笔记之二:制作镜像并PUSH

    Pull 如果是Public的(docker官方仓库和加速器) 直接 docker pull ubuntu:16.04 即可 若是私有的 首先登陆 docker login 仓库Host 之后 doc ...

  7. docker-使用Dockerfile制作镜像

    最近项目中有使用docker,组内做了关于docker的培训,然后自己跟着研究了一下,大概了解如何使用.我是基于tomcat镜像制作(不需要安装jdk,配置环境变量),基于centos镜像制作需要安装 ...

  8. OpenStack单节点制作镜像

    1.创建快照 已修改后的时刻为记录,进行制作镜像,选择要制作镜像的虚拟机,点击创建快照,在所弹出的对话框中输入所创建的镜像名称 生成了一个镜像,类型为Snapshot 2.保存镜像 查看镜像列表 [r ...

  9. RabbitMQ原理——exchange、route、queue的关系

    从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件    从应用使用的角度全面的介绍如何利用Rabbit MQ构建 ...

  10. WIN7安装Docker Toolbox、制作镜像并发到阿里云

    一.安装Docker Toolbox,并配置国内源加速 WIndows7不支持Hyper-v,所以只能采用Docker Toolbox的方式使用Docker.传送门:http://mirrors.al ...

随机推荐

  1. JS注释 JS变量

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  2. 常见的Linux命令

     在 cmd 命令行 或者终端中             可以运行 node.js 命令 也可以 运行 SQL语句 还可以运行 Linux 命令                          Li ...

  3. SELinux 基本原理

    首发公号:Rand_cs SELinux 基本原理 本文讲述 SELinux 保护安全的基本原理 安全检查顺序 不废话,直接先来看张图 当我们执行系统调用的时候,会首先对某些错误情况进行检查,如果失败 ...

  4. Javascript高级程序设计第三章 | ch3 | 阅读笔记

    语言基础 语法 标识符 注释 // /* */ 严格模式 // 也可以单独指定在一个函数中进行 'use strict' 语句 语句末尾分号不是必须的,但是最好加上 加上分号方便开发者删除空行压缩代码 ...

  5. mysql删除主键索引,删除索引语法

    mysql删除主键索引,删除索引语法 ### Incorrect table definition; there can be only one auto column and it must be ...

  6. 字符数组转换及数字求和 java8 lambda表达式 demo

    public static void main(String[] args) throws IllegalAccessException { //字符串转换为数字且每个加上100,输出. String ...

  7. python 动态导入模块并结合反射,动态获取类、方法(反射太好用),动态执行方法

    背景: 关键字驱动框架,不同的关键字方法分别定义在不同的类,真正执行关键字方法又在不同的类(简称A),这样就需要在执行前,要在文件A下import要使用的模块,如果有很多页面操作或很多模块时,就需要每 ...

  8. python json反序列化为对象

    在Python中,将JSON数据反序列化为对象通常意味着将JSON格式的字符串转换为一个Python的数据结构(如列表.字典)或者一个自定义的类实例.虽然Python的标准库json模块不提供直接将J ...

  9. 让matplotlib在绘图时显示中文

    让matplotlib绘图时显示中文. 安装中文字体 apt install fonts-wqy-microhei 清除matplotlib的缓存    rm -rf ~/.cache/matplot ...

  10. python中globals()的用法

    python中globals()的用法 1. 获取所有的全局变量, 获取到的内容如下: {'__name__': '__main__', '__doc__': None, '__package__': ...