ansible批量自动化清理服务器日志+远程管理!cpolar 内网穿透实验室第 710 个成功挑战

软件名称

ansible(自动化运维工具)+ cpolar(内网穿透工具)

操作系统支持

ansible 完美兼容 CentOS、Ubuntu、Debian 等主流 Linux 发行版,也能通过插件适配 Windows 服务器;

cpolar 覆盖 Linux、Windows、macOS 全系统,甚至支持 Docker 容器部署,不管你的服务器是啥系统,都能无缝适配。

软件介绍

ansible 是一款 "懒人友好型" 自动化运维神器,不用在目标服务器装任何代理,靠 SSH 就能批量管理成百上千台机器,用简单的 YAML 语法写脚本,就能实现日志清理、配置修改、软件安装等重复性操作,还能保证 "执行一万次和执行一次结果一样"(幂等性),不怕误操作;

cpolar 是一款零配置内网穿透工具,不用申请公网 IP、不用改路由器设置,一条命令就能把内网的服务器、SSH、Web 服务映射到公网,生成可访问的公网地址,还能保留固定 TCP 地址,解决内网服务 "出不去、进不来" 的难题。

ansible&cpolar 的出色功能

  • ansible 的核心杀招:

    ① 无代理部署:不用在目标服务器装客户端,SSH 通了就能管,减少系统开销;

    ② 批量自动化:一次编写 YAML 脚本,一键下发到所有服务器,告别 "一台台敲命令";

    ③ 幂等性保障:哪怕重复执行脚本,也不会删错文件、改乱配置,运维安全感拉满;

    ④ 定时联动:和 crontab 搭配,日志清理、服务器巡检等任务定时自动跑,彻底解放双手。

  • cpolar 的点睛之笔:

    ① 零配置穿透:不用懂网络知识,小白也能 1 分钟把内网服务器映射到公网;

    ② 固定公网地址:避免随机端口频繁变动,远程运维时地址永久可用;

    ③ 安全加密:所有数据传输加密,比手动搭隧道更安全,企业级合规。

实用场景

场景 1:中小企业服务器日志清理
  • 痛点:运维人员少,要管 10-50 台内网服务器,每天手动删日志耗时 1-2 小时,偶尔漏删导致磁盘爆满;内网服务器无公网 IP,出差时没法应急清理。
  • 爽点:用 ansible 写好日志清理脚本,配置 crontab 每天自动执行,批量清理所有服务器日志;通过 cpolar 把 ansible 控制端的运维服务映射到公网,出差时在酒店用笔记本就能远程触发清理,1 分钟搞定原本 2 小时的活。
场景 2:创业公司远程批量部署应用
  • 痛点:创业公司服务器都在内网,技术团队居家办公时,没法远程给多台服务器部署新应用,只能到公司操作,效率低还耽误进度;
  • 爽点:用 ansible 编写应用部署脚本,通过 cpolar 穿透后的公网地址,在家就能一键把脚本下发到所有内网服务器,批量完成环境配置、软件安装,原本半天的部署工作压缩到 10 分钟。

cpolar 内网穿透技术带来的便利

如果说 ansible 是运维的 "自动化武器",那 cpolar 就是打通内网和公网的 "任意门",不用再为 "内网服务出不去" 发愁:

  1. 摆脱公网 IP 依赖:不用找运营商申请昂贵的固定公网 IP,也不用折腾路由器端口映射,cpolar 一条命令就能生成公网地址,直接访问内网的 ansible 控制端、服务器 SSH、甚至内网应用;
  2. 异地运维无阻碍:不管是在家、出差还是客户现场,只要有网络,就能通过 cpolar 的公网地址,用 ansible 批量管理内网的所有服务器,再也不用跑机房、蹲在公司加班;
  3. 固定地址更省心:cpolar 支持保留固定 TCP 公网地址,不用每次穿透都改 ansible 的 hosts 配置,地址永久可用,定时任务、远程访问都能稳如老狗;
  4. 安全又简单:cpolar 的传输全程加密,比手动搭 SSH 隧道更安全;操作全可视化,在 web 管理界面点几下就能配置隧道,运维小白也能上手,不用背复杂的命令参数;
  5. 多场景适配:除了运维,还能把内网的数据库、测试环境、办公系统都映射到公网,团队成员远程访问不用连 VPN,打开浏览器就能用,协作效率翻倍。

总结

ansible 就像运维人员的 "全能助理",把重复、机械的日志清理、批量运维工作自动化,让你从 "人肉删日志""挨个敲命令" 的苦差事里解放出来;而 cpolar 则是这个助理的 "远程通行证",打破内网的物理限制,哪怕服务器藏在公司机房的角落,也能随时随地通过公网操控。

两者组合,既解决了 "运维自动化" 的核心需求,又搞定了 "内网服务远程访问" 的痛点,不用复杂配置、不用高成本投入,中小厂、创业公司甚至个人开发者,都能轻松搭建起 "无人值守、全域覆盖" 的运维体系,把时间花在更有价值的事情上,而不是重复劳动。

节省时间、提升价值看下面,按照教程来就好喽!

本文将带你构建一套 基于Ansible+Cron的日志自动清理方案:

一次编写,批量部署到成百上千台服务器;

精准控制清理规则(按时间、大小、文件类型);

自动化调度,无需人工干预;

安全可审计,避免误删风险。

从此,告别手动删日志的"人肉运维",让机器高效、安静地为你守护系统健康。

1.在Centos7上安装ansible

更新所有系统软件包:

shell 复制代码
 yum update -y 

安装EPEL仓库(提供 Ansible 包):

shell 复制代码
 yum install -y epel-release

安装ansbile:

验证是否安装成功:

shell 复制代码
ansible --version

2.模拟大量日志输入

在另一台机器创造/ceshi/1.log文件,用于案例清空日志:

shell 复制代码
mkdir /ceshi
cd /ceshi
touch 1.log

写一个简单、高效的 Shell 脚本,用于持续向 1.log 文件追加内容:

shell 复制代码
vi write_log.sh
shell 复制代码
#!/bin/bash

LOG_FILE="1.log"
INTERVAL=1  # 每隔多少秒写入一次(可修改)

# 捕获 Ctrl+C 信号,优雅退出
trap 'echo -e "\n停止写入日志..."; exit 0' SIGINT

echo "开始向 $LOG_FILE 持续写入日志(按 Ctrl+C 停止)..."

while true; do
    # 写入当前时间 + 自定义信息
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 这是一条自动写入的日志消息" >> "$LOG_FILE"

    # 可选:写入随机数、进程ID等(取消注释即可)
    # echo "$(date): Random=$(shuf -i 1-100 -n 1), PID=$$" >> "$LOG_FILE"

    sleep "$INTERVAL"
done

给脚本执行权限:

shell 复制代码
 chmod +x write_log.sh

运行脚本:

shell 复制代码
./write_log.sh

停止:按Ctrl + C

日志模拟成功啦,通过它的不断插入,我们可以看出来日志占比容量也是不断增加的,时间久了就会有很大的负担,对此,别急ansible来帮助你!

3.配置ansible自动化脚本

确保你在playbook所在目录(假设是 /etc/ansible):

shell 复制代码
cd /etc/ansible

编辑hosts文件,加入你所要监控的ip和他的用户名及密码:

复制代码
[test]
ip ansible_ssh_user=用户名 ansible_ssh_pass=密码

使用Ansible编写一个YAML文件,用于自动清理指定服务器上的/ceshi/1.log文件。以下是完整 cleanup.yml示例:

shell 复制代码
---
- name: 清空 /ceshi/1.log 文件内容
  hosts: dbservers
  become: yes
  tasks:
    - name: 清空 /ceshi/1.log 文件
      copy:
        content: ""
        dest: /ceshi/1.log
        mode: '0644'
      register: result

    - name: 输出操作结果
      debug:
        msg: "/ceshi/1.log 文件内容已被清空"
      when: result.changed

然后使用ansible-playbook执行就好啦:

shell 复制代码
ansible-playbook -i hosts 4.yml

接下来我们去目标主机查看一下/ceshi/1.log是否清理成功(我这里是192.168.42.146):

我们可以看到,该目录已经清除成功~

手动反复执行未免繁琐,不如为4.yml配置定时任务,实现定时执行,自动清理。

4.结合cron定时清理

添加定时任务(crontab)

查看ansible-playbook路径:

shell 复制代码
which ansible-playbook

编辑root用户的定时任务:

shell 复制代码
crontab -e

添加一行(每天02:00执行):

shell 复制代码
0 2 * * * /usr/bin/ansible-playbook -i /etc/ansible/hosts /etc/ansible/4.yml >> /etc/ansible/ansible_cleanup.log 2>&1

如图可以看出,本来目标地址的1.log文件是有内容的,经过定时执行ansible的配置文件4.yml文件后,目标地址的1.log文件被清空:

在传统运维中,手动清理日志不仅繁琐,还容易遗漏。借助Ansible + Cron,我们已能实现本地服务器日志的全自动清空;而当你的服务部署在内网、无公网IP时,cpolar成了打通自动化"最后一公里"的关键------通过cpolar建立安全隧道,Ansible控制端可远程访问内网主机,即使身处异地,也能让定时清理任务精准执行。

从此,无论服务器藏得多深,日志清理都能准时、静默、可靠地完成。

5.安装cpolar实现随时随地开发

5.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

5.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

shell 复制代码
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

6.配置公网地址

通过配置,你可以在本地 WSL 或 Linux 系统上运行 SSH 服务,并通过 Cpolar 将其映射到公网,从而实现从任意设备远程连接开发环境的目的。

  • 隧道名称:可自定义,本例使用了:ssh,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:22
  • 端口类型:随机临时TCP端口
  • 地区:China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在终端中访问即可。

  • tcp 表示使用的协议类型

  • 2.tcp.cpolar.top是 Cpolar 提供的域名

  • 10807是随机分配的公网端口号

通过 Cpolar 提供的公网地址和端口,就可以使用ansible进行远程部署啦!

接下来我们操作一下。

修改hosts配置文件:

shell 复制代码
[dbservers]
2.tcp.cpolar.top ansible_user=root ansible_port=10807 ansible_password=***

接下来我们执行配置文件:

shell 复制代码
ansible-playbook -i hosts 4.yml

执行成功,我们去对应主机查看/ceshi/1.log是否清除成功:

7.保留固定TCP公网地址

使用cpolar为其配置TCP地址,该地址为固定地址,不会随机变化。

选择区域和描述:有一个下拉菜单,当前选择的是"China VIP"。

右侧输入框,用于填写描述信息。

保留按钮:在右侧有一个橙色的"保留"按钮,点击该按钮可以保留所选的TCP地址。

列表中显示了一条已保留的TCP地址记录。

  • 地区:显示为"China Top"。

  • 地址:显示为"5.tcp.cpolar.top:13501"。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道ssh,点击右侧的编辑

修改隧道信息,将保留成功的TCP端口配置到隧道中。

  • 端口类型:选择固定TCP端口
  • 预留的TCP地址:填写保留成功的TCP地址

点击更新

创建完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的TCP地址。

这样我们的ansible操作就没有任何的阻碍啦!

总结

通过Ansible编写幂等的清理任务,由Cron每日定时驱动,并借助cpolar实现对内网服务器的安全远程访问,真正实现"无人值守、自动清空、全域覆盖"的日志运维闭环。

相关推荐
孟章豪4 小时前
《SQL拼接 vs 参数化,为什么公司禁止拼接SQL?(附真实案例)》
服务器·数据库·sql
没有梦想的咸鱼185-1037-16636 小时前
北斗高精度数据解算:破解城市峡谷/长基线/无网区难题,从毫米级定位到自动化交付——(GAMIT/GLOBK底层核心解算技术方法)
运维·arcgis·数据分析·自动化
不怕犯错,就怕不做6 小时前
linux 如何查看自己的帐号密码及samba的帐号和密码
linux·运维·服务器
实在智能RPA6 小时前
Agent 在物流行业能实现哪些自动化?——深度拆解 AI Agent 驱动的智慧物流新范式
运维·人工智能·ai·自动化
李彦亮老师(本人)7 小时前
Rocky Linux 9.x 新特性详解
linux·运维·服务器·centos·rocky linux
NiKick7 小时前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络
zt1985q8 小时前
本地部署开源元搜索引擎 SearXNG 并实现外部访问
服务器·网络协议·开源
猩猩—点灯9 小时前
部署远程利器-RustDesk
运维·服务器·网络
biubiubiu070610 小时前
Linux 中 `source` 和 `systemctl daemon-reload` 的区别与踩坑点
linux·运维·服务器
ringking12310 小时前
Linux 主机通过 Wi-Fi 上网,并将网络通过网口共享给交换机下游设备
linux·服务器·网络