美文网首页
为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