[步骤] CentOS&RHEL yum 的设置

步骤一:移除不可用的 yum 软件库配置文件
1.1 方法一:备份系统自带的 yum 库配置文件

# mkdir /etc/yum.repos.d/repobackup
# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repobackup/

1.2 方法二:删除系统自带的 yum 软件库配置文件

# rm -rf /etc/yum.repos.d/*.repo

步骤二:添加指定的 yum 软件库配置
2.1 方法一:使用 yum-config-manager 工具建立新配置文件

# yum-config-manager --add-repo http://example.com/

(补充:这里的 http://example.com/ 指的是官方提供的公共 yum 库链接)

(注意:添加了这个源之后确保对应的 /etc/yum.repos.d/ 配置文件中的 enable=0)

2.2 方法二:手动写一个 yum 软件库配置文件指定 yum 软件仓库

# vim  /etc/yum.repos.d/local.repo

创建以下内容:

[local]
name=local
baseurl=file:///temp
enabled=1
gpgcheck=0 

(补充:这里以软件仓库在 /temp 为例)

步骤三:确认新配置的 yum 源可用
3.1 清理过时 yum 库的缓存

# yum clean all

3.2 刷新并列出所有可用的源

# yum repolist 

[步骤] KVM 虚拟机模板的创建 (CentOS 7 版)

注意:

在创建 KVM 虚拟机之前要先安装 KVM 并创建 KVM 虚拟网络

软件准备:

在 CentOS 官网上下载安装系统所需要的镜像:

https://centos.org/download/

正文:

步骤目录:

步骤一:创建 KVM 虚拟机模板的目的

步骤二:为这个虚拟机创建硬盘文件 template_centos_7_10g.qcow2
2.1 创建硬盘文件 template_centos_7_10g.qcow2
2.2 确认硬盘文件 template_centos_7_10g.qcow2 已创建

步骤三:使用 KVM 和刚刚创建的硬盘文件新安装一台虚拟机
3.1 启动 KVM 的 virt-manager
3.2 在 virt-manager 上的左上角点击文件之后点击“新建虚拟机”
3.2.1 选择以本地安装介质的方式安装系统
3.2.2 选择安装系统的系统镜像
3.2.3 设置内存大小和处理器数量
3.2.4 选择用刚刚创建的硬盘文件来安装系统
3.2.5 给虚拟机命名为 “template_centos_7_10g” 并选择虚拟网络 “vlan001”
3.2.6 开始安装系统
3.2.7 选择系统语言
3.2.8 之后进行系统配置界面
3.2.8.1 通过 “INSTALLATION DESTINATION” 对硬盘进行分区
3.2.8.2 取消 “KDUMP”
3.2.9 之后点击右下角的 “Begin installation”
3.2.10 在安装的过程中设置 root 密码,安装完成后重启
3.2.11 在安装系统的过程中需要注意的内容总结

步骤四:进入新创建虚拟机修改配置
4.1 修改网卡个性化设置
4.1.1 修改网卡配置文件
4.1.2 使修改的网卡配置生效
4.2 禁用 selinux
4.3 禁用空路由
4.4 添加 Console 配置
4.4.1 修改 grub 内核配置文件
4.4.2 使修改的 grub 内核配置生效
4.5 将系统自动挂载的硬盘从使用 UUID 换成硬件路径
4.5.1 查看根分区的 UUID
4.5.2 在自动挂载文件里将根分区的 UUID 换成硬件路径
4.6 删除不用的程序
4.7 配置虚拟系统的 yum 源
4.7.1 备份旧 yum 源
4.7.1.1 创建备份目录
4.7.1.2 备份旧 yum 源
4.7.2 创建新的 yum 源文件
4.7.3 删除旧的 yum 源数据
4.7.4 刷新新的 yum 源
4.8 对虚拟系统进行升级
4.9 进行分区扩展
4.9.1 安装分区扩展软件
4.9.2 给开机自启配置文件相应的权限
4.9.3 设置开机自动扩容根目录
4.10 修改虚拟机系统的名称
4.11 启用 serial 服务实现通过 virsh console 命令控制虚拟机
4.12 清除虚拟系统的历史命令
4.13 关闭虚拟机

步骤五:在真机上对虚拟机进行清理优化

步骤六:此时就可以将此虚拟机的硬件文件作为模块批量克隆虚拟机了

具体的操作步骤:

步骤一:理解创建 KVM 虚拟机模板的目的

主要用于批量克隆出新的 KVM 机器,节约创建新虚拟机的时间

步骤二:为这个虚拟机创建硬盘文件 template_centos_7_10g.qcow2
2.1 创建硬盘文件 template_centos_7_10g.qcow2

(只在真机上执行以下步骤)

# qemu-img create -f qcow2 /var/lib/libvirt/images/template_centos_7_10g.qcow2 10G

2.2 确认硬盘文件 template_centos_7_10g.qcow2 已创建

(只在真机上执行以下步骤)

# ls /var/lib/libvirt/images/ | grep template_centos_7_10g.qcow2

步骤三:使用 KVM 和刚刚创建的硬盘文件新安装一台虚拟机
3.1 启动 KVM 的 virt-manager

(只在真机上执行以下步骤)

# virt-manager

3.2 在 virt-manager 上的左上角点击文件之后 “点击新建虚拟机”

(只在真机上执行以下步骤)

(步骤略)

3.2.1 选择以本地安装介质的方式安装系统

(只在真机上执行以下步骤)

(图:1)

3.2.2 选择安装系统的系统镜像

(只在真机上执行以下步骤)

(图:2)

3.2.3 设置内存大小和处理器数量

(只在真机上执行以下步骤)
(图:3)

3.2.4 选择用刚刚创建的硬盘文件来安装系统

(只在真机上执行以下步骤)

(图:4)

3.2.5 给虚拟机命名为 “template_centos_7_10g” 并选择虚拟网络 “vlan001”

(注意:虚拟网络必须提前创建好)

(只在真机上执行以下步骤)

(图:5)

3.2.6 开始安装系统

(只在真机上执行以下步骤)

(图:6)

3.2.7 选择系统语言

(只在真机上执行以下步骤)

(图:7)

3.2.8 之后进行系统配置界面

(只在真机上执行以下步骤)

需要手动配置的地方有两个:
1) “INSTALLATION DESTINATION”
2) “KDUMP”
分别点击以后就可以配置了

3.2.8.1 通过 “INSTALLATION DESTINATION” 对硬盘进行分区

(只在真机上执行以下步骤)

(补充:完成后点击左上角的 “DONE”)

(注意:只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘类型,硬盘格式设置为 XFS)

(图:8)
(图:9)

3.2.8.2 取消 “KDUMP”

(只在真机上执行以下步骤)

(补充:完成后点击左上角的 “DONE”)

(图:10)

3.2.9 设置完成之后点击右下角的 “Begin installation”

(只在真机上执行以下步骤)

(图:11)

3.2.10 在安装的过程中设置 root 密码,安装完成后重启

(只在真机上执行以下步骤)

(图:12)

3.2.11 在安装系统的过程中需要注意的内容总结

1) 一定要使用刚刚创建的 /var/lib/libvirt/images/template_centos_7_10g.qcow2 作为安装虚拟机的硬件文件
2) 虚拟机网络 “vlan001” 要提前创建好
3) 只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘,硬盘格式是 XFS
4) 取消 “KDUMP”

步骤四:进入新创建虚拟机修改配置
4.1 修改网卡个性化设置
4.1.1 修改网卡配置文件

(只在虚拟机上执行以下步骤)

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

将全部内容进行如下修改:

BOOTPROTO=dhcp
NAME=eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet

4.1.2 使修改的网卡配置生效

(只在虚拟机上执行以下步骤)

# service network restart

4.2 禁用 selinux

(只在虚拟机上执行以下步骤)

# vi /etc/selinux/config

将全部内容进行如下修改:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

4.3 禁用空路由

(只在虚拟机上执行以下步骤)

# vi /etc/sysconfig/network

将全部内容修改如下:

# Created by anaconda
NOZEROCONF="yes"

4.4 添加 Console 配置
4.4.1 修改 grub 内核配置文件

(只在虚拟机上执行以下步骤)

# vi /etc/default/grub

将全部内容修改如下:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --unit=1 --speed=115200"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=tty0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
GRUB_DISABLE_RECOVERY="true"

4.4.2 使修改的 grub 内核配置生效

(只在虚拟机上执行以下步骤)

# grub2-mkconfig -o grub

4.5 将系统自动挂载的硬盘从使用 UUID 换成硬件路径

(只在虚拟机上执行以下步骤)

# blkid
/dev/vda1: UUID="84ccf593-a924-4949-b7ef-584be43deef5" TYPE="xfs"

(补充:这里的 UUID 是: 84ccf593-a924-4949-b7ef-584be43deef5)

# vi /etc/fstab

将以下内容:

......
UUID=84ccf593-a924-4949-b7ef-584be43deef5 /                   xfs     defaults        0 0

(补充:这里的 UUID 是: 84ccf593-a924-4949-b7ef-584be43deef5)

修改为:

......
/dev/vda1 /                   xfs     defaults        0 0

4.6 删除不用的程序

(只在虚拟机上执行以下步骤)

# yum -y remove NetworkManager-* firewalld-* python-firewall

4.7 配置虚拟系统的 yum 源
4.7.1 备份旧 yum 源
4.7.1.1 创建备份目录

(只在虚拟机上执行以下步骤)

# mkdir /etc/yum.repos.d/backup

4.7.1.2 备份旧 yum 源

(只在虚拟机上执行以下步骤)

# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup

4.7.2 创建新的 yum 源文件

(只在虚拟机上执行以下步骤)

# vi /etc/yum.repos.d/lan.repo

创建以下内容:

[CentOS7]
name=CentOS7
baseurl=http://192.168.100.254/CentOS7/
enabled=1
gpgcheck=0

(注意: http://192.168.1.250/centos7/ 需要根据真实环境的情况进行更改)

4.7.3 删除旧的 yum 源数据

(只在虚拟机上执行以下步骤)

# yum clean all

4.7.4 刷新新的 yum 源

(只在虚拟机上执行以下步骤)

# yum repolist

4.8 对虚拟系统进行升级

(只在虚拟机上执行以下步骤)

# yum -y update

4.9 进行分区扩展
4.9.1 安装分区扩展软件

(只在虚拟机上执行以下步骤)

# yum install -y cloud-utils-growpart

4.9.2 给开机自启配置文件相应的权限

(只在虚拟机上执行以下步骤)

# chmod 755 /etc/rc.local

4.9.3 设置开机自动扩容根目录

(只在虚拟机上执行以下步骤)

# vi /etc/rc.local

添加以下内容:

/usr/bin/growpart /dev/vda1 
/usr/sbin/xfs_growfs /

4.10 修改虚拟机系统的名称

(只在虚拟机上执行以下步骤)

# vi /etc/hostname

将全部内容修改如下:

template_centos_7_10g

4.11 启用 serial 服务实现通过 virsh console 命令控制虚拟机

(只在虚拟机上执行以下步骤)

# systemctl start serial-getty@ttyS0
# systemctl enable serial-getty@ttyS0

4.12 清除虚拟系统的历史命令

(只在虚拟机上执行以下步骤)

# history -c

4.13 关闭虚拟机

(只在虚拟机上执行以下步骤)

# poweroff

步骤五:在真机上对虚拟机进行清理优化

(只在真机上执行以下步骤)

# sudo virt-sysprep -d template_centos_7_10g


注意:如果此命令不存在
1) CentOS 系统的话需要安装 libguestfs-tools
2) openSUSE 系统的话需要安装 guestfs-tools

步骤六:此时就可以将此虚拟机的硬件文件作为模块进行批量克隆虚拟机了

(只在真机上执行以下步骤)

[内容] Linux 硬件信息的查看 (CPU、内存、硬盘和其他硬件信息)

内容目录:

内容一:查看 CPU 信息
1.1 查看 CPU 个数(也就是处理的 socket 数)
1.2 查看 CPU 核心数
1.3 查看 CPU 的详细信息

内容二:查看内存大小
2.1 查看内存大小
2.2 查看内存详细信息

内容三:查看硬盘信息

内容四:查看其他硬件的方法
4.1 查看其他所有硬件的方法
4.2 查看某一个硬件的方法

具体的内容:

内容一:查看 CPU 信息
1.1 查看 CPU 个数(也就是处理的 socket 数)

# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

1.2 查看 CPU 核心数

# cat /proc/cpuinfo | egrep "core id|physical id" | tr -d "\n" | sed s/physical/\\nphysical/g | grep -v ^$ | sort | uniq | wc -l

1.3 查看 CPU 的详细信息

# lscpu

内容二:查看内存大小
2.1 查看内存大小

# free -m

2.2 查看内存详细信息

# cat /proc/meminfo 

内容三:查看硬盘信息

# lsblk

内容四:查看其他硬件的信息
4.1 查看其他所有硬件的信息

# dmesg

4.2 查看某一个硬件的信息

# dmesg | grep -i mouse

(补充:这里以查看鼠标信息的方法为例)

[工具] Shell 检测性能指标 (例如:剩余硬盘空间、内存空间等)

介绍:

#名称: 检测性能指标(例如:剩余硬盘空间、内存空间等)
#作用: 检测性能指标(例如:剩余硬盘空间、内存空间等)

#使用方法:
#1. 给此脚本添加执行权限
#2. 执行此脚本

脚本:

#!/bin/bash

ip=`ip a s | awk '/noprefixroute ens33/{print $2}'`
host=`hostname`
disk=`df -h | awk '/\/$/{print $5}'`
mem=`free -m | awk '/Mem/{print $4}'`
cpu=`top -bn 1 | awk -F',' '/^%Cpu/{print $4 }' | awk '{print $1}'`
soft=`rpm -qa | wc -l`
port=`ss -ntulap | wc -l`

echo "$ip $host disk $disk"
echo "$ip $host mem $mem"
echo "$ip $host cpu $cpu"
echo "$ip $host soft $soft"
echo "$ip $host port $port"
echo

[命令] openSUSE&SUSE 命令 zypper (管理软件和软件库)

内容目录:

内容一:zypper 的帮助文档查看

内容二: zypper 的常用案例
2.1 案例一:使用 zypper 的帮助信息
2.1.1 查看 zypper 的所有选项
2.1.2 查看 zypper 某个选项的所有子选项
2.1.2.1 查看 zypper 某个选项的所有子选项的格式
2.1.2.2 查看 zypper 某个选项的所有子选项的案例
2.2 案例二:软件相关
2.2.1 交互式
2.2.1.1 安装软件
2.2.1.1.1 安装软件包格式
2.2.1.1.2 安装软件的案例
2.2.1.2 删除软件
2.2.1.2.1 删除软件的格式
2.2.1.2.2 删除软件的案例
2.2.1.3 升级软件和系统
2.2.2 非交互式
2.2.2.1 安装软件
2.2.2.1.1 安装软件的格式
2.2.2.1.2 安装软件的案例
2.2.2.2 删除软件
2.2.2.2.1 删除软件的格式
2.2.2.2.2 删除软件的案例
2.2.2.3 查找软件
2.2.2.3.1 查找软件的格式
2.2.2.3.2 查找软件的案例
2.2.2.4 查看软件的生命周期
2.2.2.4.1 查看软件的生命周期的格式
2.2.2.4.2 查看软件的生命周期的案例
2.2.2.4 锁定软件
2.2.2.4.1 锁定软件的格式
2.2.2.4.2 锁定软件的案例
2.2.2.5 查看所有已锁软件
2.2.2.6 解锁软件
2.2.2.6.1 解锁软件的格式
2.2.2.6.2 解锁软件的案例
2.2.2.7 清除所有已锁软件
2.2.2.8 升级软件和系统
2.2.2.8.1 查看所有可用更新包
2.2.2.8.2 升级软件和系统
2.3 案例三:软件组相关
2.3.1 交互式
2.3.1.1 安装某一个软件组
2.3.1.1.1 安装某一个软件组的格式
2.3.1.1.2 安装某一个软件组的案例
2.3.1.2 删除某一个软件组
2.3.1.2.1 删除某一个软件组的格式
2.3.1.2.2 删除某一个软件组的案例
2.3.2 非交互式
2.3.2.1 安装某一个软件组
2.3.2.1.1 安装某一个软件组的格式
2.3.2.1.2 安装某一个软件组的案例
2.3.2.2 删除某一个软件组
2.3.2.2.1 删除某一个软件组的格式
2.3.2.3 查看所有可用软件组
2.3.2.4 查看某一个软件组的详细信息
2.3.2.4.1 查看某一个软件组详细信息的格式
2.3.2.4.2 查看某一个软件组详细信息的案例
2.4 案例四:软件源相关
2.4.1 禁用原来的所有软件源
2.4.2 删除原来的所有软件源
2.4.3 新增软件源并指定软件源名
2.4.3.1 新增软件源并指定软件源名的格式
2.4.3.2 新增软件源并指定软件源名的案例
2.4.4 查看所有软件源的链接
2.5 案例五:补丁相关

具体的内容:

内容一:zypper 的帮助文档查看

# zypper --h

内容二: zypper 的常用案例
2.1 案例一:使用 zypper 的帮助信息
2.1.1 查看 zypper 的所有选项

# zypper help

2.1.2 查看 zypper 某个选项的所有子选项
2.1.2.1 查看 zypper 某个选项的所有子选项的格式

# zypper help <option>

或者:

# zypper <option> help

2.1.2.2 查看 zypper 某个选项的所有子选项的案例

# zypper help install

或者:

# zypper install help

(补充:这里以查看 install 子选项为例)

2.2 案例二:软件相关
2.2.1 交互式
2.2.1.1 安装软件
2.2.1.1.1 安装软件包格式

# zypper in <software name>

2.2.1.1.2 安装软件的案例

# zypper in httpd

(补充:这里以安装 httpd 软件为例)

2.2.1.2 删除软件
2.2.1.2.1 删除软件的格式

# zypper rm <software name>

2.2.1.2.2 删除软件的案例

# zypper rm httpd

(补充:这里以删除 httpd 软件为例)

2.2.1.3 升级软件和系统

# zypper update

2.2.2 非交互式
2.2.2.1 安装软件
2.2.2.1.1 安装软件的格式

# zypper -n in <software name>

2.2.2.1.2 安装软件的案例

# zypper -n in httpd

(补充:这里以安装 httpd 软件为例)

2.2.2.2 删除软件
2.2.2.2.1 删除软件的格式

# zypper -n rm <software name>

2.2.2.2.2 删除软件的案例

# zypper -n rm httpd

(补充:这里以删除 httpd 软件为例)

2.2.2.3 查找软件
2.2.2.3.1 查找软件的格式

# zypper se <software name>

2.2.2.3.2 查找软件的案例

# zypper se httpd

(补充:这里以查找 httpd 软件为例)

2.2.2.4 查看软件的生命周期
2.2.2.4.1 查看软件的生命周期的格式

# zypper lifecycle <software name>

2.2.2.4.2 查看软件的生命周期的案例

# zypper lifecycle httpd

(补充:这里以查找 httpd 软件的周期为例)

2.2.2.4 锁定软件
2.2.2.4.1 锁定软件的格式

# zypper addlock <software name>

或者:

# zypper al <software name>

2.2.2.4.2 锁定软件的案例

# zypper addlock httpd

或者:

# zypper al httpd

(补充:这里以锁定 httpd 软件的周期为例)

2.2.2.5 查看所有已锁软件

# zypper locks

或者:

# zypper ll

2.2.2.6 解锁软件
2.2.2.6.1 解锁软件的格式

# zypper removelocks <software name>

或者:

# zypper rl <software name>

2.2.2.6.2 解锁软件的案例

# zypper removelocks httpd

或者:

# zypper rl httpd

(补充:这里以解锁 httpd 为例)

2.2.2.7 清除所有已锁软件

# zypper cleanlocks

或者:

# zypper cl

2.2.2.8 升级软件和系统
2.2.2.8.1 查看所有可用更新包

# zypper lp

2.2.2.8.2 升级软件和系统

# zypper update

2.3 案例三:软件组相关
2.3.1 交互式
2.3.1.1 安装某一个软件组
2.3.1.1.1 安装某一个软件组的格式

# zypper in -t pattern <pattern name>

2.3.1.1.2 安装某一个软件组的案例

# zypper in -t pattern kvm_server

(补充:这里以安装 kvm_server 软件组为例)

2.3.1.2 删除某一个软件组
2.3.1.2.1 删除某一个软件组的格式

# zypper rm -t pattern <pattern name>

2.3.1.2.2 删除某一个软件组的案例

# zypper rm -t pattern kvm_server

(补充:这里以删除 kvm_server 软件组为例)

2.3.2 非交互式
2.3.2.1 安装某一个软件组
2.3.2.1.1 安装某一个软件组的格式

# zypper -n in -t pattern <pattern name>

2.3.2.1.2 安装某一个软件组的案例

# zypper -n in -t pattern kvm_server

(补充:这里以安装 kvm_server 软件组为例)

2.3.2.2 删除某一个软件组
2.3.2.2.1 删除某一个软件组的格式

# zypper -n rm -t pattern <pattern name>

2.3.2.2.2 删除某一个软件组的案例

# zypper -n rm -t pattern kvm_server

(补充:这里以删除 kvm_server 软件组为例)

2.3.2.3 查看所有可用软件组

# zypper patterns

或者:

# zypper pt

2.3.2.4 查看某一个软件组的详细信息
2.3.2.4.1 查看某一个软件组详细信息的格式

# zypper pattern-info <pattern name>

2.3.2.4.2 查看某一个软件组详细信息的案例

# zypper pattern-info kvm_server

(补充:这里以查看 kvm_server 软件组为例)

2.4 案例四:软件源相关
2.4.1 禁用原来的所有软件源

# zypper mr -da

2.4.2 删除原来的所有软件源

# zypper rr `zypper ls | awk '{print $1}'`

2.4.3 新增软件源并指定软件源名
2.4.3.1 新增软件源并指定软件源名的格式

# zypper ar -fcg <software source link> <define software source name>

2.4.3.2 新增软件源并指定软件源名的案例

# zypper ar -fcg http://192.168.1.1/update-oss/ update-oss

(补充:这里以添加 http://192.168.1.1/update-oss/ 库并命名为 update-oss 为例)

2.4.4 查看所有软件源的链接

# zypper ls -d

2.5 案例五:补丁相关

# zypper in -t patch <patch name>