自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在成百上千臺(tái)服務(wù)器上輕松部署時(shí)間同步服務(wù)?只需這份 Playbook!

數(shù)據(jù)庫 服務(wù)器
通過這份Ansible Playbook,你可以輕松地在公司的所有生產(chǎn)服務(wù)器上部署和配置Chrony時(shí)間同步服務(wù),實(shí)現(xiàn)跨服務(wù)器的準(zhǔn)確時(shí)間同步,無需手動(dòng)配置每臺(tái)服務(wù)器。?

在大規(guī)模的生產(chǎn)環(huán)境中,時(shí)間同步一直是一個(gè)看似簡單卻至關(guān)重要的任務(wù)。想象一下,當(dāng)你的服務(wù)器群中有上百臺(tái)機(jī)器,每臺(tái)機(jī)器的時(shí)間可能因不同的原因略微偏離,最終影響到日志記錄、數(shù)據(jù)庫同步、甚至自動(dòng)化任務(wù)的執(zhí)行,結(jié)果可能導(dǎo)致數(shù)據(jù)丟失或嚴(yán)重的業(yè)務(wù)中斷。

問題來了?

你是否曾遇到過,某個(gè)服務(wù)因?yàn)闀r(shí)間不一致而出現(xiàn)無法預(yù)料的錯(cuò)誤?或許你的日志文件日期混亂,數(shù)據(jù)庫同步時(shí)出現(xiàn)時(shí)間戳不一致的問題?這些都可能是因?yàn)榉?wù)器時(shí)間沒有得到精確同步,或者同步配置出現(xiàn)了問題。

那么,如何確保所有服務(wù)器的時(shí)間精確一致?

如何在一個(gè)龐大的集群中,快速、可靠地部署時(shí)間同步服務(wù)?

繼續(xù)往下看吧,你將會(huì)發(fā)現(xiàn)如何通過Ansible來輕松實(shí)現(xiàn)Chrony時(shí)間同步服務(wù)器的自動(dòng)化部署哦!

時(shí)間同步的重要性

在企業(yè)級(jí)IT環(huán)境中,時(shí)間同步看似是個(gè)不起眼的問題,但其實(shí)它對(duì)整個(gè)系統(tǒng)的穩(wěn)定性、數(shù)據(jù)一致性和故障排除至關(guān)重要。無論是應(yīng)用程序、日志文件,還是數(shù)據(jù)庫事務(wù),都依賴于時(shí)間的準(zhǔn)確性。

常見的時(shí)間同步工具包括NTP和Chrony,而在現(xiàn)代虛擬化環(huán)境中,Chrony通常是更優(yōu)的選擇,因?yàn)樗芴峁└斓耐剿俣群透偷馁Y源占用,尤其在網(wǎng)絡(luò)不穩(wěn)定或虛擬化環(huán)境中表現(xiàn)尤為出色。

面臨的挑戰(zhàn)

假設(shè)你是IT運(yùn)維主管,負(fù)責(zé)管理公司數(shù)百臺(tái)服務(wù)器,這些服務(wù)器可能分布在不同的數(shù)據(jù)中心。隨著業(yè)務(wù)的不斷擴(kuò)大,管理每臺(tái)機(jī)器的時(shí)間同步變得越來越復(fù)雜。此時(shí),手動(dòng)去逐臺(tái)設(shè)置時(shí)間同步源,顯然不現(xiàn)實(shí),且容易出錯(cuò)。

如何讓所有服務(wù)器的時(shí)間同步變得簡單、自動(dòng)且高效?

為什么選擇 Chrony?

Chrony在一些場景下優(yōu)于傳統(tǒng)的 NTP:

  • 更精確的同步:Chrony可以在服務(wù)器啟動(dòng)時(shí)迅速同步時(shí)間,而NTP可能需要更長時(shí)間。
  • 適應(yīng)不穩(wěn)定的網(wǎng)絡(luò):Chrony在不穩(wěn)定的網(wǎng)絡(luò)環(huán)境下表現(xiàn)更好,能夠處理丟包和延遲。
  • 高效的資源占用:Chrony的資源消耗相對(duì)較低,更適合大規(guī)模集群。

Ansible自動(dòng)化部署Chrony時(shí)間同步

通過Ansible,你可以輕松解決這個(gè)問題,快速部署并配置Chrony時(shí)間同步服務(wù)。Ansible是一個(gè)強(qiáng)大的自動(dòng)化運(yùn)維工具,可以讓你在幾分鐘內(nèi)完成跨大規(guī)模集群的配置和管理任務(wù)。通過一個(gè)簡單的Playbook,你就能完成以下任務(wù):

  • 批量安裝 Chrony 軟件包;
  • 配置時(shí)間同步源,確保每臺(tái)服務(wù)器的時(shí)間與標(biāo)準(zhǔn)時(shí)間同步;
  • 自動(dòng)啟動(dòng)并啟用 Chrony 服務(wù),確保服務(wù)在服務(wù)器啟動(dòng)時(shí)自動(dòng)啟動(dòng);
  • 通過一個(gè)命令查看同步狀態(tài),確保系統(tǒng)時(shí)間精準(zhǔn)。

首先,讓我們?cè)贏nsible的主機(jī)清單里添加我們的目標(biāo)服務(wù)器。假如我們現(xiàn)在專注于設(shè)置Chrony客戶端,并且決定使用國內(nèi)的互聯(lián)網(wǎng)時(shí)間服務(wù)器來進(jìn)行時(shí)間同步的話,那么接下來就是具體的步驟了。

1. 配置主機(jī)清單文件

hosts.ini 文件如下:

[chrony_clients]
ansible ansible_host=192.168.31.100
ansible ansible_host=192.168.31.101
ansible ansible_host=192.168.31.102

2. 配置客戶端同步服務(wù)器時(shí)間

對(duì)于Chrony客戶端,我們配置它們從指定的時(shí)間同步服務(wù)器同步時(shí)間:

---
-name:部署Chrony時(shí)間同步服務(wù)
hosts:chrony_servers
become:yes
vars:
    ntp_server1:"ntp1.aliyun.com"
    ntp_server2:"ntp2.aliyun.com"
    ntp_server3:"ntp3.aliyun.com"
    ntp_server4:"ntp4.aliyun.com"
    network_range:"192.168.31.0/24"
tasks:
    -name:安裝Chrony軟件包
      apt:
        name:chrony
        state:present

    -name:配置Chrony配置文件內(nèi)容
      template:
        src:chrony.conf.j2
        dest:/etc/chrony.conf
        mode:'0644'

    -name:啟動(dòng)chrony服務(wù)并配置開機(jī)啟動(dòng)
      systemd:
        name:chronyd
        state:started
        enabled:yes

    -name:驗(yàn)證Chrony是否同步成功
      command:
        cmd:chronyctracking
      register:chrony_tracking
      changed_when:false

    -name:打印時(shí)間同步結(jié)果
      ansible.builtin.debug:
        msg:"{{ chrony_tracking.stdout }}"

chrony.conf.j2文件詳解:

chrony.conf.j2是一個(gè)Jinja2模板文件,用于在Playbook執(zhí)行時(shí)動(dòng)態(tài)生成 Chrony配置文件。Jinja2是一個(gè)強(qiáng)大的模板引擎,它可以讓你在配置文件中插入變量和條件邏輯,在Ansible Playbook中廣泛使用。

在這個(gè)文件中,我們通常會(huì)設(shè)置Chrony服務(wù)器的時(shí)間源、允許的客戶端、日志文件路徑等配置。

# This is a basic Chrony configuration file generated by Ansible.
# Modify it as per your requirements.

# Use public NTP servers for time synchronization
server{{ntp_server1}}iburst
server{{ntp_server2}}iburst
server{{ntp_server3}}iburst
server{{ntp_server4}}iburst

# Allow clients from the local network to sync with this server
allow{{network_range}}

# Set the driftfile location to record the offset in time
driftfile/var/lib/chrony/drift

# Log synchronization details and statistics
logtrackingmeasurementsstatistics

# Allow clients to query for the server's time
localstratum10

# Make sure that time is synchronized at boot
initstepslew5{{ntp_server1}}{{ntp_server2}}

# Use an external time source (if applicable)
# server ntp.example.com iburst

關(guān)鍵字段詳解:

  • {{ network_range }}:指定允許連接到Chrony服務(wù)器進(jìn)行時(shí)間同步的IP地址范圍。
  • driftfile /var/lib/chrony/drift:Chrony會(huì)在文件中記錄時(shí)間漂移,以便未來同步。
  • log tracking measurements statistics:記錄詳細(xì)的同步信息、測量數(shù)據(jù)和統(tǒng)計(jì)信息,以便后續(xù)審計(jì)與分析。
  • initstepslew 5:這個(gè)配置能讓Chrony啟動(dòng)時(shí)更精確地同步時(shí)間,通過參考前5個(gè)NTP服務(wù)器來校準(zhǔn)系統(tǒng)時(shí)間。
  • local stratum 10:設(shè)置本地Chrony服務(wù)器的層級(jí),使其在沒有更高優(yōu)先級(jí)時(shí)間源時(shí)作為本地時(shí)間源。

執(zhí)行Playbook

只需要執(zhí)行以下命令,Playbook會(huì)自動(dòng)完成所有操作:

ansible-playbook  chrony_playbook.yml

成功執(zhí)行上述命令后,如下圖輸出結(jié)果:

快速驗(yàn)證

Playbook執(zhí)行完成,你可以通過以下命令快速驗(yàn)證Chrony服務(wù)是否正常運(yùn)行并同步時(shí)間:

chronyc tracking

如果配置正確,應(yīng)該看到類似以下的輸出,表示 Chrony 正在同步時(shí)間:

root@node1:~# chronyc tracking
Reference ID    : 74CB974A (a.chl.la)
Stratum         : 3
Ref time (UTC)  : Wed Feb 19 14:52:49 2025
System time     : 0.001176818 seconds fast of NTP time
Last offset     : -0.000331252 seconds
RMS offset      : 0.007539239 seconds
Frequency       : 1.403 ppm fast
Residual freq   : +0.184 ppm
Skew            : 8.313 ppm
Root delay      : 0.173159912 seconds
Root dispersion : 0.004186447 seconds
Update interval : 65.3 seconds
Leap status     : Normal

總結(jié)

通過這份Ansible Playbook,你可以輕松地在公司的所有生產(chǎn)服務(wù)器上部署和配置Chrony時(shí)間同步服務(wù),實(shí)現(xiàn)跨服務(wù)器的準(zhǔn)確時(shí)間同步,無需手動(dòng)配置每臺(tái)服務(wù)器。

責(zé)任編輯:趙寧寧 來源: 攻城獅成長日記
相關(guān)推薦

2018-12-06 09:07:59

Ansible服務(wù)器運(yùn)維

2009-11-20 18:56:18

Citrix思杰虛擬桌面

2016-06-20 15:36:01

OpenManage大

2014-07-23 09:30:25

CoreOSLinux

2009-04-03 09:19:04

谷歌服務(wù)器數(shù)據(jù)中心

2018-12-28 08:46:54

2013-08-27 10:55:25

數(shù)據(jù)中心建設(shè)支出服務(wù)器

2023-09-05 09:32:07

服務(wù)器Redis

2022-12-29 13:32:24

2009-02-13 11:06:00

時(shí)間同步服務(wù)器服務(wù)器

2017-03-21 11:12:22

LinuxAmazon AWS服務(wù)器

2020-07-28 09:45:29

LinuxCaddyHTTPS

2016-07-12 10:40:35

服務(wù)器

2018-05-14 10:50:13

SQL查詢語句神經(jīng)網(wǎng)絡(luò)

2012-07-31 17:24:50

Java管理Linux服務(wù)器

2009-07-15 09:42:46

2020-03-02 18:16:12

FedoraLinuxMongoDB

2017-10-23 10:34:36

服務(wù)器數(shù)據(jù)同步

2022-07-18 10:15:14

文件傳輸協(xié)議TFTPLinux

2016-08-16 15:21:19

服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)