Centos7升级到RHEL8
本文依照redhat官方文档制作,总共分为两步,先将centos7转换为rhel7,然后再将rhel7升级为rhel8
参考文档:cenots7转换为rhel7rhel7升级为rhel8
centos7升级为rhel7升级到centos7最新版1yum update -y && reboot
安装convert2rhel1234567curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txtcurl -o /etc/yum.repos.d/convert2rhel.repo https://ftp.redhat.com/redhat/convert2rhel/7/convert2rhel.repoyum install -y convert2rhel
开始转换12convert2rhel --username <替换为你的用户名> --password <替换为你的密码>不加--pool 会提示手 ...
内核级负载均衡 LVS DR模式 部署记录
DR模式,Director和realserver都在一个内网里面,他们都绑定上同一个VIP, 原理是通过Director Server 修改数据包的MAC地址, 所以得让realserver不响应arp,不然肯定会造成内网IP冲突
规划:
机器
IP
VIP
10.0.0.8
director
10.0.0.41
realserver1
10.0.0.42
realserver2
10.0.0.43
网卡interface
eth0
RealServer设置创建虚拟网卡个人习惯,可选,可以绑定在任何网卡上面
1ip link add ipvs0 type dummy
配置不响应ARP请求方法1: 调整内核参数方法2: 采用arptables12345# 不响应ARP请求, 修改内核参数echo "1" > /proc/sys/net/ipv4/conf/ipvs0/arp_ignoreecho "1" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho &qu ...
Shell指定分隔符
为什么要指定换行符,我们看一个例子
1234567891011#!/bin/bashdata="a b cd e f"for i in $datado echo $idone
输出的结果是:
123456abcdef
因为系统默认把空格和换行都当作了分隔符。为了避免这种情况,我们可以手动指定分隔符:
123456789101112#!/bin/bashdata="a b cd e f"IFS=$'\n' # 指定分隔符为换行for i in $datado echo $idone
这样打印出来的就是:
12a b cd e f
再看一个例子:
123456#!/bin/basha="aa,bb,cc,dd,ee"for i in $ado echo $idone
输出为:aa,bb,cc,dd,ee
我们想要的输出结果可能是这样
12345aabbccddee
可以修改成这样:
123456789#!/bin/basholdIFS=$IFS #定义变量为 ...
Github Actions自动发布博客
偶然发现github actions可以执行一些命令,这下可以把我的crontab停掉了,也不用占用一台机器专门用来发布博客了,并且完全免费!!
首先我的GitHub pages和博客原始文件是分为两个仓库的,在GitHub Pages仓库里添加了一个Actions用来钉钉发通知:
GitHub仓库配置Secret需要先将环境变量配置在 Settings –> Secrets and Variables –> Actions 里面
配置后,可以在actions里面通过 ${{ secrets.dingtalk_secret }} 调用到对应的数据
针对Hexo博客的构建123456789101112131415161718192021222324252627282930313233343536name: Deploy GitHub Pageson: push: branches: - masterjobs: deploy_github_pages: runs-on: ubuntu-latest ...
KVM虚拟机常用操作记录
添加和删除网卡(虚拟硬件)查看网卡列表1sudo virsh domiflist vm-yaohai
添加网卡(模式桥接到br0)1sudo virsh attach-interface vm-yaohai --type bridge --source br0 --model virtio --config
删除网卡(指定mac地址删除)1sudo virsh detach-interface vm-yaohai --type bridge --mac 52:54:00:61:4c:f3 --config
添加网卡或删除网卡后需要重新定义,不然重启会失效
virsh dumpxml vm-yaohai > /etc/libvirt/qemu/vm-yaohai.xmlvirsh define /etc/libvirt/qemu/vm-yaohai.xml
kvm默认网桥
libvirt默认使用了一个名为default的nat网络,这个网络默认使用virbr0作为桥接接口,使用dnsmasq来为使 ...
Python脚本接受参数
完善一下python脚本,让它支持更完善的参数(长参数、短参数)
12345678910111213141516171819202122232425262728293031323334import getopt, sysdef parse_args(args=sys.argv[1:]): try: opts, args = getopt.getopt(args, "hvc:w:", ["help", "short", "verbose", "critical_num=", "warning_num="]) except getopt.GetoptError as err: print("Input parameter error") sys.exit() verbose = False short = False for opt, arg in opts: if ...
Puppet遍历hash生成array
公司的nagios监控是使用puppet来进行自动部署的,但是需要手动修改puppet配置才能生效,现在的问题是添加一个新机器得先在puppet上添加机器,然后添加到相对应的组,我们想能否让它自动添加到对应的组里面。
vim nagios_server.pp
1234567891011121314151617181920212223242526272829nagios::nagios::add_linux_remote { 'guangzhou.nutscloud.com' : addr => '10.0.0.9', services => [{'name' => 'check_load', 'desc' => 'Current Load', 'notify' => 1}, ... ...
Shell脚本接受参数
直接传参一般情况下直接传参,比如
test.sh
12#!/bin/bashecho hello $1
./test.sh worldhello world
使用getopts解析参数这种方法可以忽略参数位置,使脚本更完善
test.sh
123456789101112131415161718while getopts "a:b:c" arg #选项后面的冒号表示该选项需要参数do case $arg in a) echo "a $OPTARG" #参数存在$OPTARG中 ;; b) echo "b $OPTARG" ;; c) echo "c" ;; ?) #当有不认识的选项的时候arg为? echo "unkonw argum ...
Nginx负载均衡(反向代理)
7层负载均衡
7层就是用域名来进行转发
类似配置文件:
vim /etc/nginx/conf.d/xxx.conf
1234567891011121314upstream wordpress { server 192.168.1.20:8000 weight=5 max_fails=3 fail_timeout=30s; server 192.168.1.21:8000 weight=5 max_fails=3 fail_timeout=30s;}server { listen 80 ; server_name wordpress.zahui.fan; location / { proxy_pass http://wordpress; }}
反代到虚拟主机的另一台Nginx比如现在有一台服务器,部署了a、b两个服务,比如a.com到a服务,b.com到b服务,这种情况我的Nginx想要代理b服务,就需要指定反代header proxy_set_header Host ...
Linux网络之Bridge和Bond
网桥相当于一台虚拟交换机,你可以把自己的网卡绑定在虚拟交换机上,并把其他接口(比如虚拟机的网络)桥接到这个网卡上面来,相当于大家都是在一个内网里面。
创建网桥方法, 以Redhat系为例。
使用nmtui创建网桥
删除网卡配置文件可以到/etc/sysconfig/network-scripts/里面删除ifcfg-开头的配置
使用nmtui创建网桥,并将网卡设备绑定到网桥, 一般关闭生成树协议(STP)
检查/etc/sysconfig/network-scripts/里面有没有多余的配置文件,有的话需要删除以免冲突
网卡和网桥都需要开机自启动
使用配置文件创建网桥
生成uuid cat /proc/sys/kernel/random/uuid 或者 uuidgen
12345678910111213141516171819202122232425262728293031#!/bin/bashset -euf -o pipefailBRIDGE_UUID=$(uuidgen)BRIDGE_NAME=br13NET_UUID=$(uuidgen)NET_DEVICE ...