马先生的技术笔记
职业软件工程师 / 业余硬件工程师 / 入门3D建模工程师

寻找mount源码来源util-linux-xxx/sys-utils/mount.cmk_exit_code函数

结论:
如代码所示,当底层存储返回EACCESEROFS错误返回码,会给出相应的提示,然后通过goto try_readonly;重新以readonly的方式尝试挂载。
所以mount只是在第一次挂载是感知到错误后,尝试以readonly的方式挂载。

...

分析hasattr在python2/python3下遇到的不同行为的问题

先说结论:
python2和python3的hasattr实现,实际是调用getattr,然后判断是否会抛出异常,如果抛出异常,则判定为没有指定的属性返回false,否则返回true。但是python2会捕获所有的异常,而python3仅捕获PyExc_AttributeError异常,其他异常会继续向上抛,导致上层逻辑收到异常。

相关依据:
python2的hasattr文档描述看这里,代码实现看这里
python3的hasattr文档描述看这里,代码实现看这里

...

qemu要运行aarch64必须先安装aarch64支持:qemu-system-aarch64,centos/rhel下该包需要自己编译安装,Fedora源带该包,为简单操作本文直接在Fedora上实践

宿主机选用的Fedora版本 : Fedora-Server-dvd-x86_64-30-1.2.iso
虚拟机选用的rhel-7.4-aarch64版本 : rhel-alt-server-7.4-aarch64-dvd.iso (用centos的aarch64也可以)

配置桥接目的是在后面安装好的aarch64系统里面可以配置和宿主机Fedora在同一个网段的IP,如果不需要桥接,该章节可以跳过

...

1.配置dns,保证机器可以使用公网网络源
2.额外添加几个盘,作为数据盘,此处我加了/dev/vdb /dev/vdc /dev/vdd三块100G的盘

添加centos源和epel源,本文全部使用阿里云的源

添加ceph源,在/etc/yum.repos.d/目录下创建ceph.repo文件,粘贴以下内容

...

先将.vmdk格式转换为.qcow2

安装依赖包后就可以挂载了,/tmp/x目录下就是镜像里面的文件了

问题一,找不到libvirt服务,可能是libvirtd没有启动,启动一下即可

...

点击 “文件->新建” 此处的ip改成你自己服务器的IP,上面的名称无所谓

购买云主机时,如果选的密钥验证的话,此处必须使用密钥登录,.pem是你在阿里云控制台创建密钥的时候生产的,在阿里云控制台上应该也可以下载

...

一个小博客也没啥重要内容,本来不想搞证书,最近竟然发现页面有被劫持篡改的情况,折腾一下吧

https会使用443端口,所以无论是centos的防火墙,还是云主机提供商的防火墙,都必须开放443端口

后面第3步操作会临时占用80端口,如果nginx等其他服务占用该端口,将导致无法生成证书
猜测下面工具的实现过程是用-d的域名,临时启动了一个web服务器用于向机构申请证书

...

在安装openstack-queens时,提示缺少qemu-kvm-rhev

网上没有找到qemu-kvm-rhev的rpm包,只找到了源码包

只好自己打包了,编译环境使用的是CentOS Linux release 7.4.1708

...

OpenStack的release列表可以参照https://releases.openstack.org

对于还在支持的版本,可以在https://repos.fedorapeople.org/openstack/找到rpm列表
对于已经EOL的版本,上述地址已经不再提供下载,可以在http://ftp.riken.jp/Linux/cern/centos/7/cloud/x86_64/找到rpm列表,但是太老的版本这里也没有

上述rpm列表已经做好了repo,只要在自己的机器上创建一个.repo文件,修改其中的baseurl地址到你要安装的版本地址即可
比如要安装queens版本

...

之前分配给公司实习生一个任务,需要制作一个带python脚本的rpm包,在制作时后发现他的rpm编译过程不会自动编译出.pyc.pyo文件,所以安装出来的就不带.pyc.pyo文件,他的.py脚本安装目录为/usr/local/bin/test

rpmbuild在编译时用到的脚本都在/usr/lib/rpm这个目录下的脚本,通过在rpmbuild时的输出看出,当制作带python脚本的rpm包时,具体执行/usr/lib/rpm/brp-python-bytecompile这个脚本,猫腻就在这个脚本的最后一段

在使用compileall模块的compile_dir函数时,使用了一个正则表达式参数:

...
搜索
分类
2篇
c
1篇
8篇
19篇
9篇
2篇
k8s
2篇
4篇
页面