云计算SRE运维-第三周

1. yum私有仓库的实现及博客输出
2. 阅读《图解TCP/IP》一书,地址:https://leon-wtf.github.io/doc/%E5%9B%BE%E8%A7%A3TCPIP.pdf,有时间的可以写下读书笔记(选做)
3。画图 TCP协议和三次握手及四次挥手,可以参考别人的,但是需要自己画一次
4. 静态配置网卡IP,centos/ubuntu实现
脚本题
5. 实现免密登陆脚本, expect登陆远程主机,将生成的密钥写入到目标主机, expect测试远程登陆。
1)通过shift读取脚本参数
2)通过select来选择功能.例如功能有
- 安装mysql
- 安装apache
- 免密钥登陆主机
当前我们只实现免密钥登陆主机
3)通过函数封装每个功能
4)将免密钥登陆的过程可以重复进行, while 循环实现重复,需要有退出过程。当用户输入exit时,退出免密钥功能。
5)支持输入一批主机免密钥,使用数组 实现


目录

1. yum私有库

1.1下载工具包

1.2制作私有yum源

2.图解TCP

三次握手

四次挥手

3.配置静态IP

4.expect登录远程主机



1. yum私有库


1.1下载工具包

[root@localhost luo]# yum install -y createrepo yum-utils

1.2制作私有yum源

[root@localhost luo]# yum install -y httpd  #安装httpd

#列出当前yum源列表
[root@localhost luo]# yum repolist
repo id                                                   repo name
appstream                                                 Rocky Linux 8 - AppStream
baseos                                                    Rocky Linux 8 - BaseOS
epel                                                      epel 
extras                                                    Rocky Linux 8 - Extras


#下载镜像到本地
[root@localhost luo]# yum reposync --repoid=extras --download-metadata -p /var/www/html/mirros/
[root@localhost luo]# yum reposync --repoid=baseos --download-metadata -p /var/www/html/mirros/
[root@localhost luo]# yum reposync --repoid=epel --download-metadata -p /var/www/html/mirros/


#移除其他yum源文件
[root@localhost luo]# mkdir /opt/repo; mv /etc/yum.repos.d/* /opt/repo/


#创建yum源文件
[root@localhost luo]# cat > /etc/yum.repos.d/test.repo << EOF
> [test]
> name=test
> baseurl=http://10.0.0.0/mirros/extras
> gpgcheck=0
> enable=1
> EOF


#启动httpd服务
[root@localhost luo]# systemctl enable --now httpd


#列出当前yum源列表
[root@localhost luo]# yum repolist
repo id                                             repo name
test                                                test

2.图解TCP


三次握手

 TCP 建立连接

1.客户端向服务器发送同步请求报文

2.服务器收到报文,发送同步确认报文

3.客户客户端收到报文,发送确认报文

四次挥手

 TCP释放连接

  1. 客户端发送释放连接请求报文

  2. 服务器收到报文,发送确认报文

  3. 服务器发送释放连接请求报文

  4. 客户端接收报文,发送确认报文


3.配置静态IP


[root@localhost network-scripts]# cat ifcfg-ens160 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static            #静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160
DEVICE=ens160
ONBOOT=yes                  #开机自启
IPADDR=10.0.0.22            #静态IP
PREFIX=24                   #子网掩码长度
GATEWAY=10.0.0.2            #网关
DNS1=10.0.0.2               #DNS

#生效
[root@localhost network-scripts]# nmcli connection reload 
[root@localhost network-scripts]# nmcli connection up ens160


4.expect登录远程主机


#!/bin/bash

MYIP=`ip address show eth0 | sed -n 3p | awk -F '[ /]+' '{print $3}'`
PASS=000000


. /etc/os-release


function 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
}


function ssh_login {
    if [ $ID = "centos" -o $ID = "rocky" ]; then
        yum install -y sshpass
    else
        apt update
        apt install -y sshpass
    fi

    if [ $? -eq 0 ]; then
        color "sshpass安装成功" 0
    else
        color "sshpass安装失败,请检查网络配置" 1
        exit
    fi


    rm -rf /root/.ssh/* &> /dev/null
    ssh-keygen -P "" -f /root/.ssh/id_rsa -t rsa
    sshpass -p $PASS ssh-copy-id -o StrictHostKeyChecking=no root@$MYIP

    while (true); do
        read -p "请输入接收秘钥的主机IP(输入exit退出): " IP1
        if [ $IP1 = "exit" ]; then
            break
        else
            sshpass -p $PASS scp -o StrictHostKeyChecking=no -r /root/.ssh/* root@$IP1:/root/.ssh/
        fi
    done

    echo -e "\n"

    read -p "请输入需要远程登录的IP(输入exit退出): " IP2
        if [ $IP2 = "exit" ]; then
            exit
        else
            ssh root@$IP2
        fi
}


function install_httpd {
    if [ $ID = "centos" -o $ID = "rocky" ]; then
        rpm -q httpd || yum install -y httpd
    else
        apt update
        dpkg -s httpd || apt install -y httpd
    fi

    if [ $? -eq 0 ]; then
        color "apache安装成功" 0
    else
        color "apache安装失败,请检查网络配置" 1
        exit
    fi
}

function install_mysql {
    if [ $ID = "centos" -o $ID = "rocky" ]; then
        yum install -y mysql-server mysql
    else
        apt update
        apt install -y mysql-server mysql
    fi

    if [ $? -eq 0 ]; then
        color "MySQL安装成功" 0
    else
        color "MySQL安装失败,请检查网络配置" 1
        exit
    fi
}


PS3="请选择要执行的操作: "

select MENU in 免秘钥登录主机 安装apache 安装MySQL 退出; do
    case $REPLY in
        1)
            ssh_login
            ;;
        2)
            install_apache
            ;;
        3)
            install_mysql
            ;;
        4)
            echo "程序退出!"
            break
            ;;
        *)
            echo "小心别乱来!"
            ;;
    esac
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛咯络

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值