文章目錄
- 一、核心功能描述
- 二、roles內容
- 2.1 文件結構
- 2.2 tasks文件內容
- 2.3 files文件內容
免費個人運維知識庫,歡迎您的訂閱:literator_ray.flowus.cn
一、核心功能描述
這個 Ansible Role 的核心功能是:?實現自動化日志歸檔系統,通過 NFS 掛載遠程存儲,配置定時任務自動壓縮歸檔歷史日志
-
?定時任務配置? (
crontab.yml
)-
每月19日凌晨2點自動執行歸檔任務
-
作業命令:
/home/archivelog.sh
-
定時任務名:
archivelog
(便于后續管理)
-
-
?歸檔腳本部署? (
copy_sh.yml
)-
將腳本
archivelog.sh
部署到/home/
目錄 -
設置可執行權限(755)
-
-
?存儲架構配置?
-
?本地準備? (
directory.yml
):- 創建掛載點目錄:
/data/archive
- 創建掛載點目錄:
-
?依賴安裝? (
yum.yml
):- 安裝 NFS 客戶端工具:
nfs-utils
- 安裝 NFS 客戶端工具:
-
?遠程掛載? (
mount.yml
):-
掛載 NFS 共享:
192.141.106.6:/data/{{ ansible_facts.hostname }}
-
使用動態主機名作為掛載路徑
-
-
可以根據自己的實際需求修改腳本
二、roles內容
2.1 文件結構
archive-log/
|-- files
| `-- archivelog.sh
`-- tasks|-- copy_sh.yml|-- crontab.yml|-- directory.yml|-- main.yml|-- mount.yml`-- yum.yml2 directories, 7 files
2.2 tasks文件內容
- main.yml
- include: crontab.yml
- include: copy_sh.yml
- include: directory.yml
- include: yum.yml
- include: mount.yml
- include: crontab.yml
- name: create crontabcron: minute=0 hour=2 day=19 job='/home/archivelog.sh' name=archivelog disabled=no
- include: copy_sh.yml
- name: copy archivelog.shcopy: src=archivelog.sh dest=/home/ mode=755
- include: directory.yml
- name: mkdir directoryfile: path=/data/archive state=directory
- include: yum.yml
- name: yum nfsyum: name=nfs-utils state=present
- include: mount.yml
- name: mount archivemount: src=192.141.106.6:/data/{{ ansible_facts.hostname }} path=/data/archive fstype=nfs state=mounted
2.3 files文件內容
archivelog.sh
#!/bin/sh
webservername=`hostname`
lastmonth=`date -d "last month" "+%Y%m"`
cd /opt/IBM/HTTPServer/logs
mkdir $lastmonth
mv access_log.$lastmonth* $lastmonth
tar -zcvf /data/archive/$webservername-$lastmonth.tgz $lastmonth
rm -rf $lastmonth
如果你不請什么是ansible中的角色,動動你的小手,跳轉過去看看唄“roles角色”
請不要以此視為定論,這只是我的個人經驗