久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Saltstack如何批量管理文件和計劃任務

202次閱讀
沒有評論

共計 3725 個字符,預計需要花費 10 分鐘才能閱讀完成。

這篇文章給大家介紹 Saltstack 如何批量管理文件和計劃任務,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

  簡介

saltstack 是由 thomas  Hatch 于創建的一個開源項目,設計初衷是為了實現一個快速的遠程執行系統。用來管理你的基礎架構,可輕松管理成千上萬臺服務器。

關于 saltstack 更多功能本文不多介紹了,本文主要演示使用 saltstack 來管理服務器的文件 (例如 /etc/hosts,/etc/resolv.conf) 和計劃任務。

使用場景

在維護大量服務器的時候,系統一般初始化并上線以后,我們希望所有的服務器系統的某些配置文件一樣,這時候我們需要一種工具來批量管理這些文件,保證配置文件的一致性,比如:/etc/resolv.conf 這個文件。我們會希望這個文件不管在任何時候都是統一的。接下來我們就通過 saltstack 來演示這個功能

環境準備

你需自行安裝好 salt-master salt-minion, 并且在 master 上能夠使用 test.ping 模塊檢查到 minion,如下所示

[root@saltmaster001 salt] salt  qd01-stop-free002*  test.ping qd01-stop-free002: True

配置 master

修改 /etc/salt/master, 添加如下

file_roots: base: - /srv/salt pillar_roots: base: - /srv/pillar pillar_opts: True

編寫 sls 文件

1、切換到 /srv/salt 目錄,我們新建一個 sysinit 的目錄,主要用來管理系統的一些配置文件

2、cd sysinit, 創建 conf、scripts 目錄,并創建 sysinit.sls 文件

[root@saltmaster001 sysinit]# ll total 4 drwxr-xr-x 2 root root 191 Dec 31 11:48 conf drwxr-xr-x 2 root root 198 Dec 14 12:41 scripts -rw-r--r-- 1 root root 3107 Dec 31 11:49 sysinit.sls

說明:

conf 目錄主要存放配置文件,例如 hosts,resolv.conf 等配置文件。

scripts 目錄主要存放腳本文件,比如您自己寫的系統環境監測腳本 check_server_env.sh 等腳本

3、編寫 sysinit.sls

/opt/resolv.conf: file.managed: - source: salt://sysinit/conf/resolv.conf - user: root - group: root - mode: 644 - replaceTrue: True

如上所示,這里說明下,這里主要使用了 salt 的 file 模塊

/opt/resolv.conf:表示需要管理的配置文件所在的目錄(minion 端)這里表示把 master 的 salt://sysinit/conf/resolv.conf 同步到 minion 端的 /opt/resolv.conf source:文件的源路徑  user:文件所屬用戶  group:文件所屬組  mode:文件權限  replaceTrue :強制文件和 master 一致

4、在 /srv/salt 創建 top.sls

base:  * : - sysinit.sysinit

上面這段代碼表示:sysinit 目錄下的 sysinit.sls 文件會被 salt 執行,并且目標是所有的 minion 端

以上需要的配置文件及 sls 文件都寫好了,接下來我們來執行看看效果

5、執行同步

我這里 minion 只有一臺服務器 qd01-stop-free002,先看下 opt 目錄, 現在并沒有 resolv.conf 這個文件

[root@qd01-stop-free002 opt]# ll total 8 drwxr-xr-x 4 root root 4096 Jul 13 2017 dell drwxr-xr-x 10 root root 4096 Mar 26 2019 gitlab

手動同步

[root@saltmaster001 salt]# salt  qd01-stop-free002  state.apply sysinit.sysinit qd01-stop-free002: ---------- ID: /opt/resolv.conf Function: file.managed Result: True Comment: File /opt/resolv.conf updated Started: 15:31:17.355667 Duration: 52.986 ms Changes: ---------- diff: New file mode: 0644

現在看下 qd01-stop-free002 的 /opt 目錄,已經有 resolv.conf 文件了

[root@qd01-stop-free002 opt]# ll total 12 drwxr-xr-x 4 root root 4096 Jul 13 2017 dell drwxr-xr-x 10 root root 4096 Mar 26 2019 gitlab -rw-r--r-- 1 root root 103 Jan 6 15:34 resolv.conf

現在可以看到,雖然 minion 端已經同步了 master 端的文件,但是這是我們手動執行的同步。如果我們需要定期檢查這個,就需要用到 salt  schedule

6、配置 schedule

schedule 可以配置到 master 或者 minion 端,本文配置到 master 端

修改 /etc/salt/master 文件,添加如下

##### schedule ##### schedule: sysinit: function: state.orchestrate seconds: 0 minutes: 5 hours: 0 args: - orchestration.sysinit.sysinit

說明:

使用 salt 的 state.orchestrate 函數,minutes: 5 表示每五分鐘檢查一次  args 表示需要執行的 sls,這里為 sysinit.sysinit, 從結構可以看出是 /srv/salt/sysinit/sysinit.sls 文件。注意觀察您就知道這個結構了。

配置我以后,需要重啟 salt-master

[root@altmaster001 salt]# systemctl restart salt-master

再次刪除 qd01-stop-free002 的 /opt/resolv.conf,5 分鐘后觀察,/opt/resolv.conf 又回來了。

以上就是演示了怎么使用 salt 來自動管理遠程服務器的配置文件。如果你們需要管理多個配置文件,只需要修改 sysinit.sls 文件即可,例如

/opt/resolv.conf: file.managed: - source: salt://sysinit/conf/resolv.conf - user: root - group: root - mode: 644 - replaceTrue: True /root/.ssh/authorized_keys: file.managed: - source: salt://sysinit/conf/authorized_keys - user: root - group: root - mode: 0600 - replaceTrue: True

管理 cron 任務

1、和管理配置文件一樣,我們同樣修改 sysinit.sls 文件,但是這里使用 salt 的 cron 模塊

root_crontab_job1: cron.present: - name: sh /home/ntp.sh   /tmp/ntp.log - minute:  00  - hour:  */2  - identifier: NTP

說明:

cron.present: salt 模塊

name: 任務語句,和系統的 cron 任務一致

分、時、日、月、周 參考 crontab

identifier: 任務標識

修改完 sysinit.sls,我們保存退出,因為我們前面已經配置了自動執行同步 sls 任務。五分鐘后在 qd01-stop-free002 機器上查看 crontab  -l

# Lines below here are managed by Salt, do not edit # SALT_CRON_IDENTIFIER:NTP 00 */2 * * * sh /home/ntp.sh   /tmp/ntp.log

關于 Saltstack 如何批量管理文件和計劃任務就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計3725字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 共和县| 常州市| 秦安县| 忻城县| 保靖县| 常德市| 逊克县| 台南市| 贺兰县| 蒲城县| 旌德县| 中阳县| 长顺县| 瓦房店市| 城步| 龙口市| 宣威市| 武安市| 海阳市| 赤壁市| 谢通门县| 海伦市| 高碑店市| 黄浦区| 溧水县| 锡林浩特市| 中宁县| 陇南市| 柯坪县| 当雄县| 华蓥市| 修文县| 眉山市| 和平县| 井冈山市| 永修县| 东光县| 镇安县| 辽宁省| 曲松县| 玉环县|