文章目录
- 一、核心功能描述
- 二、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角色”
请不要以此视为定论,这只是我的个人经验