惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
M
MIT News - Artificial intelligence
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
NISL@THU
NISL@THU
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
G
GRAHAM CLULEY
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
I
Intezer
Know Your Adversary
Know Your Adversary
T
Threatpost
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
Security Latest
Security Latest
量子位
S
Securelist
Recorded Future
Recorded Future
V2EX - 技术
V2EX - 技术
Application and Cybersecurity Blog
Application and Cybersecurity Blog
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
P
Privacy International News Feed
AI
AI
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
博客园_首页
IT之家
IT之家
S
Security @ Cisco Blogs
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
C
CERT Recently Published Vulnerability Notes
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The GitHub Blog
The GitHub Blog
美团技术团队
L
LangChain Blog
F
Fortinet All Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Security Affairs
Cloudbric
Cloudbric
O
OpenAI News
PCI Perspectives
PCI Perspectives
J
Java Code Geeks
P
Privacy & Cybersecurity Law Blog
B
Blog RSS Feed
MyScale Blog
MyScale Blog

Yee's Blog

腾讯云/轻量云 安装ArchLinux的个人记录 记录我的联想M720Q Arch Sway窗口管理器的安装和配置过程 Jenkins Linux安装 腾讯课堂、钉钉在线网课视频直播回放下载离线播放 Ceph块设备对RBD块设备操作LVM创建PV时报错 Ceph映射RBD块设备 2020年9月26日前端部门Vue考核 2020年9月26日后端部门Python考核 Nginx反向代理下载传输超过1G大文件时断开问题 Windows Server 2019 Datacenter M720q 安装记录 Ceph块设备基础及快照、克隆操作 从Ceph集群中删除OSD节点 搭建Ceph集群 Ceph硬件准备 OSD与Pool池的常见操作及管理 Ceph用户管理 MacOS睡眠管理——让你的Mac睡的更香 初中古诗文必背篇目 Ansible 技巧之场 Ansible 包含和导入文件 Ansible 学习文档 Ansible 主机模式 Ansible 角色 Ansible 调整连接数 Splunk数据搜索和报表 Ansible 常用模块 Ansible 变量和事实 Ansible 任务控制 Ansible Playbook Ansible 基础概念 42Team-Flask框架-HTTP协议快速了解 42Team-Flask框架-路由和视图 42Team-Flask框架-请求与响应 42Team-Flask框架 42Team-Flask框架-Flask介绍 42Team-Flask框架-使用Pycharm来构建一个全新的Flask项目 How to install RHEL8(Centos) on Dell R710/R610 server Centos8安装Docker报错解决方案 Centos8安装Docker后容器内无法访问网络 Docker或Podman容器内无法解析DNS问题多种解决方案 使用NetworkManager来管理树莓派Ubuntu系统网络以及个人的体验优化 Linux 存储设备的挂载及识别 Firewalld 防火墙常用指令教程-常用规则(禁止Ping | 放行端口) Linux 查找系统中的文件 Linux 守护进程和控制服务 Linux SSH远程访问 42Team小组_Linux基础培训课件 如何在AmazeUI中当改变select标签后触发Vue方法的问题 使用Docker部署安装WordPress博客平台 在Raspberry树莓派中搭建NFS存储服务器 在 树莓派 Linux 中搭建匿名 danted socks5 代理服务器 HTTP与HTTPS区别随笔 Bash/Shell学习笔记
Centos8配置 chrony NTP服务端及客户端
本文作者: YeeFire · 2020-07-28 · via Yee's Blog

现在有一台服务器想作为NTP服务器,3台客户端想作为NTP服务器的客户端,保证客户端机器上的时间与服务器端保持同步。清单如下:

类型 IP地址
server 192.168.1.30
client 192.168.1.[31:33]

部署服务端chrony

ssh登录到server机器后放行防火墙、安装chrony服务、配置chrony服务器端。

放行防火墙端口

Centos8使用firewalld服务对防火墙进行管理。放行ntp服务(123/udp)

firewall-cmd --add-service=ntp --permanent && firewall-cmd --reload

安装chrony服务

默认情况下Centos8中已经安装好chrony的软件包。如果发现没有安装,使用下面的命令安装即可:

sudo dnf install chrony -y

配置chrony服务端

sudo vim /etc/chrony.conf

不习惯vi/vim编辑器的小伙伴可以替换为自己喜爱的编辑器如nano

把原有自带的上游NTP服务器地址删除。之后手动配置国内阿里云的NTP服务器地址。

server time1.aliyun.com iburst     #添加上游NTP服务器
server time2.aliyun.com iburst
server time3.aliyun.com iburst

allow 192.168.1.0/24 #允许IP端内的客户端通过这台服务器获取时间

配置无误后,重启chrony服务,并配置开机自启动:

systemctl restart chronyd.service && systemctl enable chronyd.service --now

使用ss -tlunp | grep chrony命令检查,发现chrony服务已经在监听123/udp端口,服务端配置成功。

配置chrony客户端

配置chrony客户端需要将三台客户端都安装chrony并且配置好他们的配置文件。如果说客户端数量较少可以手动配置,当数量为成百上千台机器时使用Ansible自动化配置是一个不错的选择。所以在这里有两种配置方法供大家参考,一种是普通手动配置,一种是使用Ansible-Galaxy角色配置。

手动配置chrony客户端

配置客户端同样的需要放行防火墙、安装chrony软件包、配置chrony客户端。

安装chrony软件包

dnf install chrony -y

修改客户端chrony配置文件

sudo vim /etc/chrony.conf

不习惯vi/vim编辑器的小伙伴可以替换为自己喜爱的编辑器如nano






server 192.168.1.30 iburst

注释默认的NTP服务器地址,之后添加上我们自己刚刚搭建好的NTP服务器地址即可完成chrony客户端的手动配置。

重启chrony客户端服务

重启chrony服务,并配置开机自启动:

systemctl restart chronyd.service && systemctl enable chronyd.service --now

查看同步状态

chronyc sources -v

[root@vm1 ~]# chronyc sources -v
210 Number of sources = 1

.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.1.30 3 6 17 16 +3424ns[ +110us] +/- 31ms

可以看到,输出结果里已经有我们搭建好的NTP服务器了。并且在服务器地址前有^*标记,证明已经正确同步时间。

至此一台客户端的chrony已经搭建完毕。剩下的两台同理部署即可。

使用Ansible自动化配置chrony客户端

相关Ansible基础默认你已经了解,不再赘述。如果你不了解Ansible请从Ansible文档入门学习。

mkdir Chrony && cd Chrony

配置ansible.cfg

vim ansible.cfg

[defaults]
inventory = inventory
remote_user = root
roles_path=./roles:/usr/share/ansible/roles:/etc/ansible/roles

[privilege_escalation]
become=True
become_method=sudo
beome_user=root
become_ask_pass=False

配置主机清单

vim inventory

[client]
192.168.1.3[1:3]

配置ssh免密登陆客户端

配置SSH免密登录

下载chrony角色

ansible-galaxy install ericsysmin.chrony

编写Playbok

vim playbook.yml

---
- name: Config Chrony Client
hosts: client
roles:
- role: ericsysmin.chrony
chrony_config_server:
- 192.168.1.30
...

执行结果如下,全部OK即为成功:

PLAY RECAP **************************
192.168.1.31 : ok=7 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
192.168.1.32 : ok=7 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
192.168.1.33 : ok=7 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0

之后可以登录几台机器进行手动验证,查看是否已经以NTP服务器保持同步。