[工作常用 Linux 操作:磁盘卸载、 自动化挂盘脚本 、磁盘多个分区合并、ansible 、git 设置相关]
1、查看 欧拉系统 的版本号:rpm -q --provides euler0release
2、查看机器镜像:cat /etc/os-release
3、查看 mock版本:rpm -qa | grep mock
4、更换Linux密码:echo 'root:123456(新密码)'|chpasswd
############################################################################################################################
1、[卸载相关]
# 卸载挂盘
umount /home /var/lib/mock /var/cache/mock
# 删除逻辑卷路径
lvremove /dev/ci-vg1/home/ /dev/ci-vg1/lib_mock /dev/ci-vg1/cache_mock -y
# 删除逻辑卷组 vgdisplay 可以查看逻辑卷组信息
vgremove ci-vg1
# 删除物理卷
pvremove /dev/vdb
查看 卷组信息:
vgdisplay | awk '{print$3}' | sed -n 2p (获取第 3 列 第2 行 得到 ci-vg1)
vgdisplay | awk '{print$3}' | sed -n 2p | xargs vgremove (得到 ci-vg1,并 vgremove ci-vg1)
# 删除物理卷 physical volume:
pvscan | awk '{print$2}' | sed -n 1p | xargs pvremove (获取第 2 列 第1 行 得到 /dev/vdb,并卸载)
2、挂盘自动化脚本:
sh -x ola-x86.sh /dev/vdb
"""
#!/bin/bsah
set -ex
workdir=$(dirname $0)
cd $(workdir)
# 一般重装系统后,会存在逻辑卷,先判断
# 挂盘前,如果存在逻辑卷组,先卸载
lv=`lvscan |awk {if(NR < 4){print$2}} | xargs`,也可以直接匹配 /dev/ci-vg1 开头的
lv=`lvscan | awk '/dev/ci-vg1/{print$2}' | xargs`
echo $lv
if [-z $lv];then
echo "No such logical volume need to remove!"
else
lvscan | awk '{print$2}' | xargs lvremove -y
echo "already removed the logical volume !"
fi
# 删除卷组
# 查看卷组
vg=`vgdisplay | awk '{print$3}' | sed -n 2p | xargs`
echo $vg
if [-z $vg];then
echo "No such volume group need to remove!"
else
vgdisplay | awk '{print$3}' | sed -n 2p | xargs lvremove -y
echo "already removed the volume group !"
fi
# 删除物理卷组
pv=`pvdisplay | awk '{print$3}' | sed -n 3p | xargs`
echo $pv
if [-z $pv];then
echo "No such physical volume need to remove!"
else
pvdisplay | awk '{print$3}' | sed -n 3p | xargs pvremove -y
echo "already removed the physical volume !"
fi
# 开始挂盘
disk=$1
# 创建物理卷(pvcreate ci-pv1)
pvcreate $disk
#创建卷组 vgcreate ci-vg1 $disk
# 在 卷组上创建逻辑卷
lvcreate --name lib_mock -L 50G ci-vg1 -y
mkfsext3 /dev/mapper/ ci-vg1/lib_mock
rm-rf /var/lib/mock/
mkdir -p /var/lib/mock/
chmod 755 /var/lib/mock/
mount /dev/mapper/ci--vg1-lib_mock /var/lib/mock/
# 创建lv
lvcreate --name cache_mock -L 50G ci-vg1 -y
# 格式化磁盘
mkfs.ext3 /dev/mapper/ci--vg1/cache_mock
# 挂载磁盘
rm -rf /var/cache/mock/
mkdir -p /var/cache/mock/
mount /dev/mapper/ci--vg1-cache_mock /var/cache/mock/
lvcreate ci-vg1 -L 100%Free --name home -y
mkfs.ext3 /dev/mapper/ci--vg1-home
mkdir -p /home
mount /dev/mapper/ci--vg1-home /home
# 设置开机自启挂盘防丢失
echo "mount /dev/mapper/ci--vg1-home /home" >> /etc/rc.d/rc.local
echo "mount /dev/mapper/ci--vg1-cache_mock /var/cache/mock/" >> /etc/rc.d/rc.local
echo "mount /dev/mapper/ci--vg1-lib_mock /var/lib/mock/" >> /etc/rc.d/rc.local
# 查看挂盘情况
df -h(lsblk)
# 一般添加 DNS 开机自启
cat> /etc/resolve.conf <<EOF
nameserver 10.10.10.10
nameserver 10.xxx.xxx.xxx
EOF
# 添加SVN 和 域名 代理
echo "10.xxx.xxx.xxx xxsvn-xxx" >> /etc/hosts # svn 代理
echo "10.xxx.xxx.xxx xxx.xxx.com" >> /etc/hosts # 域名代理
# ssh 链接域名时不需要输入 yes:
sed -i 's/#StrictHostKeyChecking ask/StrictHostKeyChecking no/' /etc/ssh/ssh_config
sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/ssh_config
# 修改加 Jenkins 连接失败的sshd_config 文件
sed -i 's/MACs hmac-sha2-256/MACs hmacs-sha1,hmac-sha2-256/' /etc/ssh/sshd_config
service sshd restart
# ansible 机器添加后无法链接各执行机,需要关闭 selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/comfig
"""
3、# linux 多个分区合并为一个分区
1、创建PV
# pvcreate /dev/vdb /dev/vdc /dev/vdd
# pvdisplay
2、创建VG
# vgcreate
jenkins_volume_group /dev/vdb /dev/vdc /dev/vdd
3、创建LV
# lvcreate -l 100%VG -n jenkins_master_volume_group
4、格式化
mkfs.ext3 /dev/jenkins_volume_group/jenkins_master
5、挂载
mkdir -p /jenkins/workspace
mount /dev/jenkins_volume_group/jenkins_master /jenkins/workspace
6、写入开机自动挂载防丢失 /etc/fstab 、 /etc/rc.d/rc.local
echo "mount /dev/jenkins_volume_group/jenkins_master /jenkins/workspace" >> /etc/rc.d/rc.local
echo "mount /dev/jenkins_volume_group/jenkins_master /jenkins/workspace ext3 defaults 0 0 " >> /etc/fstab
############################################################################################################################
[ansible]
方法一:
某一台执行机 与 ansible 机器进行免密添加
ssh-keygen -t rsa (生成密钥)
ssh-copy-id root@10.xx.xxx.xxx (拷贝密钥)
方法二:
将本地机器的 /root/.ssh/id_rsa.pub 文件内容 手动拷贝到远程机器的 /root/.ssh/authorized_keys 文件中:
vi /etc/ansible/ansible.cfg (配置 IP机器tag)
验证ansible:
ansible <groupname> -m ping
ansible 批量操作:
ansible 标签name -m shell -a "echo 'http://git账号:密码@xxx.com(域名)' >> /root/.git-credentials"
ansible 标签name -m shell -a "echo 'root:123456'|chpasswd"
ansible 标签name -m shell -a "cat /root/.pip/pip.conf"
ansible 标签name -m shell -a "scp /root/* root@xx.xx.xx.xx(ip):/etc/root/temp/"
or
ansible 标签name -m copy "src=/root/.git-credentials dest=/root/"
############################################################################################################################
【Git 设置】:
# git clone ssh 安全验证 设置 false:
git config --global http.sslVerify false
或者 编辑 TortoiseGit -> Setting --> Edit global.gitconfig 添加如下配置:
cat .gitconfig
[credential]
helper = store
[pack]
window = 0
windowMemry = 2048m
SizeLimit = 2048m
threads = 1
[http]
sslVerify = false