所以我想创建一个 ansible playbook,在公司的所有服务器上安装 logrotate。还将它们配置为将日志设置为每周备份,然后在一周后删除。所以每周它都会创建一个新日志,备份上周的日志,并在第三周删除第一个并重复。
到目前为止,我已经找到了这个,但我们不使用 nginx。它并不完全符合我的要求。我在剧本方面的知识非常有限,所以如果有人可以提供帮助,那就太棒了。我还需要它来检查服务器是否有 tomcat、apache 或 wildfly,然后获取这些日志。
logrotate_scripts:
- name: nginx-options
path: /var/log/nginx/options.log
options:
- daily
- weekly
- size 25M
- rotate 7
- missingok
- compress
- delaycompress
- copytruncate
Run Code Online (Sandbox Code Playgroud)
Vla*_*tka 13
让我们使用blockinfile。例如任务
- blockinfile:
path: "/etc/logrotate.d/{{ item.path }}"
block: "{{ item.conf }}"
create: true
loop: "{{ lp_logrotate_confd }}"
Run Code Online (Sandbox Code Playgroud)
与变量
lp_logrotate_confd:
- path: ansible
conf: |
/var/log/ansible.log {
weekly
rotate 3
size 10M
compress
delaycompress
}
Run Code Online (Sandbox Code Playgroud)
创造
shell> cat /etc/logrotate.d/ansible
# BEGIN ANSIBLE MANAGED BLOCK
/var/log/ansible.log {
weekly
rotate 3
size 10M
compress
delaycompress
}
# END ANSIBLE MANAGED BLOCK
Run Code Online (Sandbox Code Playgroud)
将项目添加到列表并根据您的需要调整配置数据。为方便起见,代码可在GitHub 上获得。
| 归档时间: |
|
| 查看次数: |
7674 次 |
| 最近记录: |