第三周作业

1. yum私有仓库的实现及博客输出

  思路:搭建公司内部服务器EPEL源,把EPEL源下载到公司内部服务器,再由http将服务器EPEL所有数据共享出来,公司内部的客户端就可以从创建好的这个http共享服务器来获取资源。

第1步.环境准备

#关闭SELinux 
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
#关闭防火墙
systemctl disable --now firewalld 

第2步.把系统自带的.repo的源移走,自己做yum源

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

第3步.yum配置文件 在/etc/yum.repos.d目录下创建一个以.repo为后缀的文件

[BaseOS] :Yum软件仓库唯一标识符,避免与其他仓库冲突name=软件仓库的名称描述,易于识别仓库用处
baseurl=file:///mnt提供接口给mnt,本地yum源 ,弄自动挂载光盘需要安装autofs,将自动生成光盘的/misc/cd唯一目录;网络各ip的yum源
enabled:此容器是否生效,如果不写或写成 enabled 则表示此容器生效,写成 enable=0 则表示此容器不生效。
gpgcheck=0:设置此源是否校验RPM 的数字证书生效文件;1为校验,为 0 则表示 RPM 的数字证书不生效
gpgkey:数字证书的公钥key

#vim yum_scripts.repo

[BaseOS]
name=BaseOS
baseurl=file:///misc/cd/BaseOS
https://mirror.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/
https://mirrors.cloud.tencent.com/centos/8/BaseOS/x86_64/os/
https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
gpgcheck=0

[AppStream]
name=AppStream
baseurl=file:///misc/cd/AppStream
https://mirror.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/
https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/
https://mirrors.cloud.tencent.com/centos/8/AppStream/x86_64/os/
https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
gpgcheck=0

[epel]
name=EPEL
baseurl=https://mirror.tuna.tsinghua.edu.cn/epel/$releasever/Everything/$basearch
https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch
https://mirrors.huaweicloud.com/epel/$releasever/Everything/$basearch
https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch
gpgcheck=0
enabled=1

[extras]
name=extras
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/os
https://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/os
https://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch/os
https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os
gpgcheck=0
enabled=1

[PowerTools]
name=CentOS- - PowerTools - mirrors.aliyun.com
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/PowerTools/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/PowerTools/$basearch/os/
https://mirrors.huaweicloud.com/centos/$releasever/PowerTools/$basearch/os/
https://mirrors.aliyun.com/centos/$releasever/PowerTools/$basearch/os/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

 

第4步.重建缓存。安装http实现资源共享,可以搭建公司内部的http服务器 

#重建缓存 生效
yum clean all
yum makecache
 
yum -y install http                       #安装http服务
systemctl enable --now httpd     #启动http服务

第5步.在浏览器输入ip地址,测试http服务是否能正常被访问

 如果打不开 检查关闭防火墙
yum repolist        #查看epel仓库id,repolistid       

第7步.将客户端yum配置文件[epel]中baseurl地址指向刚刚配好内部的http服务器地

 

 第8步.客户端再使用yum源下载

 

2.画图 TCP协议和三次握手及四次挥手

 

 

3.静态配置网卡IP  centos实现

-----永久修改网卡IP  
 vim /etc/sysconfig/network-scripts/ifcfg-ens33   # ens33 是自己虚拟网卡名称

TYPE=Ethernet    #设置网卡类型,“Ethernet”表示以太网
DEVICE=ens33    #设置的网卡的名称
ONBOOT=yes      #设置网卡是否在 Linux 操作系统启动时激活
BOOTPROTO=static #设置网卡的配置方式,“static”表示使用静态IP地址,“dhcp”时表示动态获取地址
IPADDR=192.168.80.64    #手动设置IPv4网卡的 IP 地址
NETMASK=255.255.255.0  #或者PREFIX=24 还是 NETMASK=24 ? #设置网卡的子网掩码
GATEWAY=192.168.80.2   #设置网卡的默认网关地址
DNS1=192.168.80.2     #设置DNS服务器的 IP 地址

5. 实现免密登陆脚本, expect登陆远程主机,将生成的密钥写入到目标主机, expect测试远程登陆。

1)通过shift读取脚本参数
2)通过select来选择功能.例如功能有
- 安装mysql
- 安装apache
- 免密钥登陆主机
当前我们只实现免密钥登陆主机
3)通过函数封装每个功能
4)将免密钥登陆的过程可以重复进行, while 循环实现重复,需要有退出过程。当用户输入exit时,退出免密钥功能。
5)支持输入一批主机免密钥,使用数组 实现

#!/bin/bash
color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo 
}

#ssh自动登录
shh_host() {
	USER=root
	PASSWORD=1
while true;do
	read -p '请输入ip(q退出):' IP
		[[ $IP =~ ^(q|Q)$ ]] && exit;
		[[ $IP =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]] || { echo "IP不合法,请重新输入";continue; }
		break;
done
expect <<EOF
set timeout 20
spawn ssh $IP
expect {
	"yes/no" { send "yes\n";exp_continue }
	"password" {send "$PASSWORD\n" }
}
expect eof
EOF
#继续登录
while true;do
	read -p "是否继续登录$IP(y/q)": Y
		[[ $Y =~ y|Y ]] && ssh $IP || continue;
	    [[ $Y =~ q|Q ]] && break;
done
expect <<EOF
set timeout 20
spawn ssh $IP
expect {
       "root@$IPs password" { send "1\n" }
}
expect eof
EOF
}
#下载mysql
install_mysql(){
	yum -y install mysql
	
}
#下载apache
install_apache(){
	yum -y install httpd > /dev/null && yum install -y rpm || rpm -ql httpd |grep -E 'bin'
}
#菜单
menu () {
while true;do
	PS3="请输入指令(1-4):"
	select MENU in 安装mysql 安装apache 免密登录远程主机 退出脚本;do
		case $REPLY in
			1)
				echo $MENU "正在下载"
				install_mysql
				break
				;;
			2)
				echo $MENU 正在下载
				install_apache
				break
				;;
			3)
				shh_host
				break
				;;
			4)
				echo 退出!
				exit
				;;
			*)
				echo "输入错误"
				;;
				
	esac
	done
done
}
menu

 

 

posted on 2023-06-29 19:16  老账单  阅读(36)  评论(0)    收藏  举报

导航