MIDDLEWARE
nginx反向代理Harbor/配置https
使用docker-compose安装harbor,配置ssl证书后使用nginx反向代理到harbor.配置后安装docker可以直接用域名登录harbor,无需配置私有仓库 nginx配置 Read more…
MIDDLEWARE
Jenkins迁移
以前的Jenkins是通过docker容器跑的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/usr/bin/docker run \ --network host \ --restart=on-failure:5 \ --name=jenkins \ -u=root \ -v /ali-nas/data/jenkins:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /usr/libexec/docker/cli-plugins:/usr/libexec/docker/cli-plugins \ -v /root/.docker/buildx:/root/.docker/buildx \ -v /usr/local/maven:/usr/local/maven \ -v /lib64/:/lib64/ \ -e PATH=/usr/local/maven/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH \ jenkins/jenkins:alpine |
SECURITY
给节点套上CF的warp,彻底解决access denied error code 1020问题
前言 最近的网络最热门的,应该当ChatGPT所属了,在IT开发者界更是:有担忧的,有兴奋的,有求知的,一时兴起万层浪,但是,也有很多小白连最基本的大门都没办法进来,因为流量太大了,已远远超过了ChatGPT的服务器所承受能力,这个访问量已大大超出了你的想像,所以请了一台流量高防大将:CloudFlare,先是真人human验证,再是IP验证,很多新人都对Access Read more…
OS
一键自动创建磁盘并挂载
一键自动创建磁盘并挂载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
#! /bin/bash #注:只有硬盘没有做过系统才能这么搞,如果有做过文件系统会直接返回异常信息。 diskEmpty="" nameOfLv="lv_data" nameOfVg="vg_data" pathOfLog="/tmp/mkfs.log" pathOfMount="/data" echo -e "\n\n`date '+%Y-%m-%d %H:%M:%S'` ###" >> $pathOfLog #验证磁盘是否为空,如果为空则把磁盘名称放入diskEmpty中,空格区分 for i in `lsblk -l | grep disk |awk '{print $1}'`; do isEmpty=1 for j in `hexdump -n 170000 -C /dev/$i | head -1000 | awk -F'|' '{print $2}' | grep -v '^$' |awk -F'.' '{print NF-1}'`; do if [ $j -ne 16 ];then echo "Warnning: disk /dev/$i have data。please check the data of the disk 。" >> $pathOfLog isEmpty=0 break fi done if [ $isEmpty -eq 1 ];then diskEmpty="$diskEmpty"" /dev/$i" fi done echo $diskEmpty #创建逻辑卷和逻辑盘 vgcreate $nameOfVg $diskEmpty &>> $pathOfLog lvcreate -l 100%FREE -n $nameOfLv $nameOfVg &>> $pathOfLog #验证是否创建成功,如果失败则退出 lvscan |awk -F"'" '{print $2}' | awk -F '/' '{print $4}' | grep "^$nameOfLv$" &>> $pathOfLog if [ $? -ne 0 ];then echo "ERROR: no exists device of $nameOfLv named !" &>> $pathOfLog exit 1 fi #获取用于格式化文件系统的真实绝对路径 pathOfDeviceFormkfs=`lvscan |awk -F"'" '{print $2}'|grep "$nameOfLv$"` echo 'pathOfDeviceFormkfs:' `lvscan |awk -F"'" '{print $2}'|grep "$nameOfLv$"` #在该逻辑卷上制作文件系统 mkfs.xfs $pathOfDeviceFormkfs &>> $pathOfLog #获取新创建的逻辑卷的真实绝对路径 pathOfDevice=`blkid |awk -F":" '{print $1}'|grep "$nameOfLv$"` #检查挂载点是否存在,不存在则创建 [ ! -d $pathOfMount ] && mkdir $pathOfMount &>> $pathOfLog #获取该逻辑卷的uuid和文件系统类型 infoOfDevice=`blkid |grep "^$pathOfDevice" | awk '{print $2" "$3}' | awk -F'"' '{print $2" "$4}'` uuid=`echo "$infoOfDevice" | awk '{print $1}'` typeOfFs=`echo "$infoOfDevice" | awk '{print $2}'` #保证两个变量值存在,如果不存在就不做任何临时和永久的挂载操作。 [ -z "$uuid" ] && echo "uuid is null!" &>> $pathOfLog && exit [ -z "$pathOfDevice" ] && echo "pathOfDevice is null!" &>> $pathOfLog && exit #将挂载信息写入fstab并挂载 for i in `cat -n /etc/fstab | awk '{print $1" "$2}' | grep -E "$uuid|$pathOfDevice" | awk '{print $1}'`; do sed -n "${i}p" /etc/fstab >> $pathOfLog echo "warnning: 该数据将删除!" done echo "UUID=$uuid $pathOfMount $typeOfFs defaults 0 0" >> /etc/fstab mount -a &>> $pathOfLog |