运维自动化时代,手动升级太徒劳了,为了提高效率及准确率,自动化安装是必备的。

下面是通过shell写的脚本。也可以将其应用到ansible上.

准备好安装文件:

openssh-8.0p1.tar.gz

openssl-1.1.0k.tar.gz

zlib-1.2.11.tar.gz

openssl-fips-2.0.16.tar.gz

perl-5.10.0.tar.gz(redhat5以下需要,由于编辑openssl,perl版本最底为5.10.0)

脚本内容如下:

#!/bin/bash
#
#setup && update openssh8.0p1 #Action state
mstate(){
    if [ $? -eq 0 ];then
        echo "--------------------------By installing--------------------------"
    else
    echo "--------------------------Installation failed--------------------"
        exit 1
    fi
} MDIR=`pwd` #zlib1.2.11
mzlib(){
if [ -d /usr/local/zlib-1.2.11 ];then
    echo "------------------------zlib-1.2.11 installation complete------------"
else
    echo "-----------------------Start setup zlib------------------------------"
    cd $MDIR
    tar -xzvf zlib-1.2.11.tar.gz >> /dev/null
    cd zlib-1.2.11
    ./configure --prefix=/usr/local/zlib-1.2.11 && make && make install
    mstate
fi
} #openssl-fips
mopenssl_fips(){
if [ -d /usr/local/ssl/fips-2.0 ];then
    echo "-------------openssl-fips-2.0 installation complete-----------------"
else
    cd $MDIR
    tar -xzvf openssl-fips-2.0.16.tar.gz >> /dev/null
    cd openssl-fips-2.0.16
    ./config && make && make install
    mstate
fi
} mperl(){
if [ -d /usr/local/perl-5.10.0 ];then
    echo "-------------perl-5.10.0 installation complete----------------------"
else
    cd $MDIR
    tar -xzvf perl-5.10.0.tar.gz >> /dev/null
    cd perl-5.10.0
    ./configure.gnu -des -Dprefix=/usr/local/perl-5.10.0 && make && make install
    mstate
    export PATH=/usr/local/perl-5.10.0/bin:$PATH
fi
}
   
#openssl-1.1.0k
mopenssl(){
if [ -d /usr/local/openssl-1.1.0k ];then
    echo "---------------openssl-1.1.0k installation complete----------------"
else
    echo "-------------------Start setup openssl-----------------------------"
    cd $MDIR
    tar -xzvf openssl-1.1.0k.tar.gz >> /dev/null
    cd openssl-1.1.0k
    ./config --prefix=/usr/local/openssl-1.1.0k --with-fipslibdir=/usr/local/ssl/fips-2.0/lib/ && make && make install
    mstate
    grep /usr/local/openssl-1.1.0k/lib/ /etc/ld.so.conf
    if [ $? -ne 0 ];then
        echo "/usr/local/openssl-1.1.0k/lib/" >> /etc/ld.so.conf
    fi
    ldconfig
fi
} #openssh-8.0p1
mopenssh(){
if [ -d /usr/local/openssh-8.0p1 ];then
    echo "---------------------openshh-8.0p1 installation complete----------"
else
    echo "----------------------Start setup openssh-------------------------"
    mopenssh_bak
    cd $MDIR
    tar -xzvf openssh-8.0p1.tar.gz >> /dev/null
    cd openssh-8.0p1
    ./configure --prefix=/usr/local/openssh-8.0p1 --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl-1.1.0k --with-zlib=/usr/local/zlib-1.2.11 --with-md5-passwords && make && make install
    mstate
fi
} #openssh bak
mopenssh_bak(){
echo "--------bak old openssh config files---------------------------------"
if [ -d /etc/ssh ];then
    mv /etc/ssh /etc/ssh_`date +%Y%m%d`
    echo "-----------------------/etc/ssh mv complete------------------------"
else
    echo "---------------------/etc/ssh no exist-----------------------------"
fi
} #openssh config (redhat 5 6)
mopenssh_config(){
\cp -a $MDIR/openssh-8.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
sed -i 's/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh-8.0p1\/sbin\/sshd/g' /etc/init.d/sshd
sed -i 's/\/usr\/bin\/ssh-keygen -A/\/usr\/local\/openssh-8.0p1\/bin\/ssh-keygen -A/g' /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
} mopenssh_config7(){
\cp -a $MDIR/openssh-8.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
sed -i 's/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh-8.0p1\/sbin\/sshd/g' /etc/init.d/sshd
sed -i 's/\/usr\/bin\/ssh-keygen -A/\/usr\/local\/openssh-8.0p1\/bin\/ssh-keygen -A/g' /etc/init.d/sshd
if [ -f /usr/lib/systemd/system/ssh* ];then
    mv -f /usr/lib/systemd/system/ssh* $MDIR
    echo "-------------------move redhat7 systemctl sshd.service-----------"
else
    echo "-------------------redhat7 systemctl sshd.service no file--------"
fi
chkconfig --add sshd
chkconfig sshd on
} #openssh path
mopenssh_path(){
grep "export PATH=/usr/local/openssh-8.0p1/bin:$PATH" /etc/profile
if [ $? -ne 0 ];then
    echo "export PATH=/usr/local/openssh-8.0p1/bin:$PATH" >> /etc/profile
    source /etc/profile
fi
} magain(){
read -p "Please try again(y/Y) :" mresult
if [ $mresult == 'y' ] || [ $mresult == 'Y' ];then
    echo "***************************************************************"
else
    echo "**********************Question*********************************"
    exit 1
fi
} mrestart(){
echo "---------------------------sshd service restart--------------------"
service sshd restart } m5(){
echo "-------------------------------------------------------------------"
sleep 3
mzlib
echo "-------------------------------------------------------------------"
sleep 3
mopenssl_fips
echo "-------------------------------------------------------------------"
sleep 3
mperl
echo "-------------------------------------------------------------------"
sleep 3
mopenssl
echo "-------------------------------------------------------------------"
sleep 3
mopenssh
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_config
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_path
echo "-------------------------------------------------------------------"
} m6(){
echo "-------------------------------------------------------------------"
sleep 3
mzlib
echo "-------------------------------------------------------------------"
sleep 3
mopenssl_fips
echo "-------------------------------------------------------------------"
sleep 3
mopenssl
echo "-------------------------------------------------------------------"
sleep 3
mopenssh
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_config
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_path
echo "-------------------------------------------------------------------"
} m7(){
echo "-------------------------------------------------------------------"
sleep 3
mzlib
echo "-------------------------------------------------------------------"
sleep 3
mopenssl_fips
echo "-------------------------------------------------------------------"
sleep 3
mopenssl
echo "-------------------------------------------------------------------"
sleep 3
mopenssh
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_config7
mopenssh_config
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_path
echo "-------------------------------------------------------------------"
mrestart
}
#system_release
echo "-------------------------system release----------------------------"
cat /etc/redhat-release
echo "---------------------------select release--------------------------"
PS3="Please select a number(1,2,3,4) :"
select mrelease in redhat5 redhat6 redhat7 Quit
do
    case $mrelease in
    redhat5)
    echo "Start $mrelease Setup openssh"
    echo "---------------------you select redhat5----------------------"
    magain
    echo "--------------------------------------------------------------"
    m5
    echo "--------------------------------------------------------------"
    ;;
    redhat6)
    echo "Start $mrelease Setup openssh"
    echo "---------------------you select redhat6-----------------------"
    magain
    echo "--------------------------------------------------------------"
    m6
    echo "--------------------------------------------------------------"
    ;;
    redhat7)
    echo "Start $mrelease Setup openssh"
    echo "---------------------you select redhat7-----------------------"
    magain
    echo "--------------------------------------------------------------"
    m7
    echo "--------------------------------------------------------------"
    ;;
    Quit)
    echo "---------------------Goodble----------------------------------"
    exit 0
    ;;
    *)
    echo "---------------------Sorry, No release------------------------"
    ;;
    esac
done

Linux openssh8.0p1升级步骤(shell版本)的更多相关文章

  1. Linux openssh8.0p1升级步骤

    前期准备开启本机telnet服务,以防openssh升级失败无法连接服务器.注:redhat 5 6 和 redhat7 开机启动配置相关文件不同,请注意 1.安装zlibtar -xzvf zlib ...

  2. Linux下python升级步骤

    先安装openssl,openssl-devel yum install openssl yum install openssl-devel 1切换到指定的目录下: cd /usr/local 2下载 ...

  3. linux python2.x 升级python3.x

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  4. centos7 升级openssh到openssh-8.0p1版本

    环境介绍 centos7.3和centos7.6升级完毕测试登录ssh以及重启后登录ssh均无问题. 前期请自行配置好yum源(如果不会请百度) 整个过程不需要卸载原先的openssl包和openss ...

  5. Linux系统下升级Python版本步骤(suse系统)

    Linux系统下升级Python版本步骤(suse系统) http://blog.csdn.net/lifengling1234/article/details/53536493

  6. Linux下python版本的升级步骤

    1.先下载,你要升级的python版本(我升级的是python3.3.0) 可使用系统自带下载工具wget下载: wget http://www.python.org/ftp/python/3.3.0 ...

  7. 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)

    版本:v1.2   Crifan Li 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通 ...

  8. mongo - 升级步骤

    升级步骤1. 关闭balancer登陆mongos,执行sh.stopBalancer(),或者 连接到mongos>use config>db.settings.update( { _i ...

  9. mysql在linux下的安装(5.7版本以后)

    1.添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组. ①groupadd mysql ②useradd -r -g mysql mysql 2.将二进制文件解压到指定的 ...

随机推荐

  1. 深入浅出mysql笔记---1、mysql下载安装

    深入浅出mysql笔记---1.mysql下载安装 一.总结 一句话总结: linux下rpm安装即可 1.linux的wget命令作用? 下载文件的工具:比如wget http://cn.wordp ...

  2. SpringMvc配置自定义视图

    1.在dispatcherServlet-servlet.xml配置自定义视图 <!-- 配置视图 BeanNameViewResolver 解析器: 使用视图的名字来解析视图 --> & ...

  3. eclipse + MinGW搭建C/C++环境

    Eclipse+CDT+MinGW 配置 C/C++ 开发环境 开场白:谨以此文献给所有喜欢探索和热爱开源软件的朋友们. 1:首先你得有 JAVA 运行环境,这样你才可以运行eclipse ,你可以到 ...

  4. Advanced Message Queuing Protocol ( 1 ) 概述

    The Advanced Message Queuing Protocol (AMQP)是一个标准开放的应用层的消息中间件(Message Oriented Middleware)协议.AMQP定义了 ...

  5. WCF 配置说明

    关于WCF中的地址和绑定,需要补充一下. WCF中支持的传输协议包括HTTP.TCP.Peer network(对等网).IPC(基于命名管道的内部进程通信)以及MSMQ(微软消息队列),每个协议对应 ...

  6. 阶段3 1.Mybatis_03.自定义Mybatis框架_7.自定义Mybatis的编码-实现基于注解配置的查询所有

    注解的方式,这里进行修改.上面注释的是原来xml的方式. 在dao类里面加上注解 创建注解类 声明注解的生命周期为Runntime 改变注解出现的位置,在Mehtod方法上 写完之后这里就不报错了. ...

  7. Oracle11g数据文件DBF迁移

    最近接手了一个以前同事遗留下来的项目,时机比较敏感,因为要召开11届全国少数名族运动会.建国70周年,以及香港暴乱,其中网站上挂载有十几个系统的入口链接,不巧的是其中一个系统存在若口令,被公安部安全局 ...

  8. 整理一下go的ci工具

    代码格式化 go fmt fileName.go goimports 自动格式化import goimports -w fileName.go mod 自动更新/删除包 go mod tidy 检查注 ...

  9. 文件类型 | 命令ln | 软链接硬链接

    1.9文件类型 1.9.1常见文件类型 d:目录 -:普通文件 l:链接文件 b:设备 1.9.2文件后缀名 sh:shell脚本 tar.gz:压缩包 my.cnf:配置文件 test.zip:压缩 ...

  10. 第六周课程总结&实验报告

    一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...