美文网首页
为Centos7制作ntp离线安装包

为Centos7制作ntp离线安装包

作者: 野生DBNull | 来源:发表于2022-12-19 14:35 被阅读0次

    前言

    由于我司产品的特殊性,每次都需要针对客户的离线服务器进行应用部署,但是使用二进制文件部署的话后期的升级与维护会很麻烦,所以我司选择了使用rpm包进行离线安装部署

    制作yum安装包

    找一台和现场一模一样版本的Centos机器,最好是最小安装
    找一台和现场一模一样版本的Centos机器,最好是最小安装
    找一台和现场一模一样版本的Centos机器,最好是最小安装

    这里最好是找一台最小安装的Centos,否则安装后会出现意想不到的BUG

     yum install yum-utils -y # 下载安装工具
    

    接下来我们使用ntp这个包来进行讲解

    使用 yumdownloader 进行下载

    这种方式我不推荐,只会下载你需要的包,但是不会下载你需要包的依赖,这种方式会导致你安装的包不完整,会出现一些奇奇怪怪的BUG。

    yumdownloader --resolve --destdir ./ntp  ntp ntpdate
    
    (1/2): ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm                                                                                                                                                            | 549 kB  00:00:02     
    (2/2): ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
    

    这样下载下来的包只会有两个,你安装的时候就会缺少一个依赖包,不推荐

    使用 downloadonly 进行下载

    推荐使用这个
    使用这个的前提就是你从来没有用这台机器安装过这个组件,这样下载下来的包才是最全的。
    这个东西就会根据你当前的环境下载所需要的包,还有所需包的缺少依赖(所以最好使用最小安装的服务器)

    这玩意的缺点也很明显

    • 需要从未安装过这个组件(所以最好使用最小安装的服务器),小技巧你可以使用Docker直接启动一个Centos
    • 只会下载本机所需的依赖包,如果曾经安装过这个组件了,下载的时候就没有包了
    • 中标麒麟与Centos7下载的包不通用(无法解决)
    yum install --downloadonly ntp ntpdate --downloaddir=./ntp
    
    (1/3): ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm                                                                                                                                                            | 549 kB  00:00:02     
    (2/3): ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
    (3/3): autogen-libopts-5.18-5.el7.x86_64.rpm
    
    使用 repotrack 进行下载

    这玩意是一把双刃剑,不推荐
    不推荐的原因是一旦你不懂,就会玩瞎服务器,导致整个服务器需要重装

    这玩意是三种中最牛逼的,他会将所有的组件的所有依赖全部下载下来

    repotrack --download_path=./ntp ntp ntpdate
    

    慎用,慎用,这玩意会将所依赖的gcc包也下下来,你一旦用这个提供的包去新服务器上装就很可能搞崩服务器,具体表现就是运行一段时候后服务器卡出翔来,然后CPU起飞,命令执行卡的要死,基本服务器就废了

    制作安装包

    压缩安装包

    记得这玩意在linux下进行打包压缩,除非你很熟悉你在干嘛,不然可能会出现你想不到的问题。

    先将刚刚下载的包压缩为.tar.gz

    tar -czvf ntp.tar.gz ./ntp #压缩
    tar -zxvf docker.tar.gz #解压
    
    构建配置文件
    vi install.sh 
    
    # For more information about this file, see the man pages
    # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
    
    driftfile /var/lib/ntp/drift
    
    # Permit time synchronization with our time source, but do not
    # permit the source to query or modify the service on this system.
    restrict default nomodify notrap nopeer noquery
    
    # Permit all access over the loopback interface.  This could
    # be tightened as well, but to do so would effect some of
    # the administrative functions.
    restrict 127.0.0.1
    restrict ::1
    
    # Hosts on local network are less restricted.
    #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    
    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    # server 0.centos.pool.ntp.org iburst
    # server 1.centos.pool.ntp.org iburst
    # server 2.centos.pool.ntp.org iburst
    # server 3.centos.pool.ntp.org iburst
    
    server ${NTP_SERVER} iburst
    
    #broadcast 192.168.1.255 autokey    # broadcast server
    #broadcastclient            # broadcast client
    #broadcast 224.0.1.1 autokey        # multicast server
    #multicastclient 224.0.1.1      # multicast client
    #manycastserver 239.255.254.254     # manycast server
    #manycastclient 239.255.254.254 autokey # manycast client
    
    # Enable public key cryptography.
    #crypto
    includefile /etc/ntp/crypto/pw
    
    # Key file containing the keys and key identifiers used when operating
    # with symmetric key cryptography.
    keys /etc/ntp/keys
    
    # Specify the key identifiers which are trusted.
    #trustedkey 4 8 42
    
    # Specify the key identifier to use with the ntpdc utility.
    #requestkey 8
    # Specify the key identifier to use with the ntpq utility.
    #controlkey 8
    # Enable writing of statistics records.
    #statistics clockstats cryptostats loopstats peerstats
    # Disable the monitoring facility to prevent amplification attacks using ntpdc
    # monlist command when default restrict does not include the noquery flag. See
    # CVE-2013-5211 for more details.
    # Note: Monitoring will not be disabled with the limited restriction flag.
    disable monitor
    
    
    编写安装脚本
    vi ntp.conf 
    
    #! /bin/bash
    
    conf_path="/etc/ntp.conf"
    
    type=$1
    server=$2
    
    install() {
        cat /proc/version | grep NeoKylin >/dev/null 2>&1
        if [ $? -eq 0 ]; then
            tar xzvf ntp-ns7.tar.gz
            rpm -ivh ./ntp-ns7/*.rpm --force --nodeps
        else
            tar xzvf ntp.tar.gz
            rpm -ivh ./ntp/*.rpm --force --nodeps
        fi
    }
    
    conf_server() {
        echo "$(sed "s/\${NTP_SERVER}/127.127.1.0/" ./ntp.conf)" >${conf_path}
    
        systemctl start ntpd
        systemctl enable ntpd
    }
    
    conf_client() {
        echo "$(sed "s/\${NTP_SERVER}/${server}/" ./ntp.conf)" >${conf_path}
    
        ntpdate -u ${server} # 首先同步时间
    
        systemctl start ntpd
        systemctl enable ntpd
    }
    
    main() {
        ntpd --help >/dev/null 2>&1
        if [ $? -eq 0 ]; then
            echo "ntpd 已经安装无须再次安装"
        else
            install
            if [ ${type} == "server" ]; then
                conf_server
            elif [ ${type} == "client" ]; then
                if [ -z ${server} ]; then
                    echo '请输入NTP服务地址,如果没有NTP服务请执行如下命令进行安装!'
                    echo 'sh ./install.sh server'
                    exit 1
                fi
                conf_client
            fi
        fi
    }
    
    main
    
    安装NtpServer与NtpClient

    安装包制作完成后应该如下图所示拥有这些东西


    image.png
    sh ./install.sh server # 安装ntp服务端
    sh ./open-firewall.sh open # 开放防火墙端口
    sh ./install.sh client 192.168.1.1 # 安装ntp客户端
    
    yum remove -y ntp ntpdate # 卸载
    

    相关文章

      网友评论

          本文标题:为Centos7制作ntp离线安装包

          本文链接:https://www.haomeiwen.com/subject/fzneirtx.html