Ansible管理飞牛OS实践:从重复操作到远程自动化执行

📅 2026/6/26 15:16:54
Ansible管理飞牛OS实践:从重复操作到远程自动化执行
文章目录前言1.在Centos7上安装ansible2.使用ansible操作飞牛os3.在飞牛os上安装cpolar4.配置公网地址5.保留固定TCP公网地址总结前言飞牛OS的图形界面可以完成文件管理、应用安装和基础系统设置对于日常使用已经足够方便。但在服务更新、目录创建、配置修改和状态检查等运维场景中图形界面的效率并不高。同一项操作只做一次时影响不大设备数量增加或任务需要反复执行后逐台登录、重复输入命令和人工确认结果很容易占用大量时间。Ansible适合解决这类重复性操作。它通过主机清单定义需要管理的设备再将具体任务写入Playbook统一完成文件创建、软件安装、配置修改和服务控制。原来需要手动登录飞牛OS后逐条执行的命令可以整理成一份YAML文件保存下来。后续再次执行相同任务时只需要运行对应的Playbook既减少重复输入也便于检查每一步执行结果。本文使用CentOS 7作为Ansible控制端将飞牛OS添加到主机清单并通过创建目录和文件验证远程执行能力。局域网环境中完成连接测试后Ansible已经可以通过SSH管理飞牛OS但这种配置仍然依赖两台设备处于同一网络。控制端放在公司、云服务器或其他网络环境时飞牛OS的内网地址无法直接连接已有的自动化脚本也就失去了远程执行条件。cpolar在这套方案中承担的是网络连接部分。它将飞牛OS的SSH端口映射为公网TCP地址Ansible主机清单不再填写局域网IP而是改用cpolar生成的公网域名和端口。完成修改后原有Playbook不需要重新编写Ansible依然按照相同方式执行任务只是连接路径从局域网SSH变成了公网隧道。对于需要异地维护NAS、远程检查服务或批量更新配置的场景这种方式比每次先远程桌面登录再手动执行命令更加直接。不过远程自动化管理涉及较高的系统权限配置时不能只考虑是否能够连接。原文示例使用了root账号、密码登录以及开启PermitRootLogin的方式适合用于说明流程但长期使用时更稳妥的做法是改用SSH密钥、单独创建运维账号并通过sudo限制可执行权限。主机清单中的密码也不宜以明文长期保存可以使用Ansible Vault管理敏感信息。本文将在保留原有操作流程的基础上完成Ansible安装、飞牛OS连接测试、Playbook执行、cpolar TCP隧道配置以及固定公网地址设置。1.在Centos7上安装ansible更新所有系统软件包yum update-y安装EPEL仓库提供 Ansible 包yuminstall-yepel-release安装ansbile验证是否安装成功ansible--version2.使用ansible操作飞牛os未安装飞牛的小伙伴可以参考这篇文章https://www.bilibili.com/video/BV1o3sheAEwB/?spm_id_from333.1387.search.video_card.click进入到ansible安装目录cd/etc/ansible进入到hosts文件夹用于定义Ansible将要管理的目标主机及其相关属性。这个文件告诉Ansible哪些机器需要被操作以及如何连接到这些机器。我这里添加的是[dbservers]192.168.42.140ansible_userrootansible_port22ansible_password******[dbservers]便于引用192.168.42.140飞牛IPansible_user用户名ansible_port端口ansible_password密码验证一下所写目标是否可以ping通ansible dbservers-mping若出现下面的报错去需要远程的主机检查sudovi/etc/ssh/sshd_config确保以下行未被注释并设置为 yesPasswordAuthenticationyesPermitRootLoginyes保存文件后重启 SSH 服务以应用更改systemctl restart sshd这样就可以啦接下来我们写一个文件写上我们想对飞牛操控的命令例如我这里想在/tmp下创建一个haha文件vi/etc/ansible1.yml--- - name: 创建文件 hosts: dbservers become:yestasks: - name: 创建/tmp/haha文件 file: path: /tmp/haha state:touch运行1.ymlansible-playbook1.yml --ask-pass连接飞牛上查看ls/tmp我们可以看到haha文件已经创建好啦这样我们就成功的操控飞牛啦3.在飞牛os上安装cpolar现在我们已经可以用ansible操控飞牛啦但是还有个问题——如果不在一个局域网怎么办呢别担心这时候就需要我们的内网穿透神器Cpolar它能帮你把本地的服务发布到公网上让它帮你把本地的服务发布到公网从而实现随时随地都能操控飞牛云首先打开飞牛云NAS设置界面,开启ssh 连接,端口默认为22即可,开启后,我们就可以ssh 连接飞牛云NAS执行命令然后我们通过输入飞牛云NAS的IP地址ssh远程连接进去,因为fnOS是基于Linux 内核开发的,所以我们可以按照cpolar的Linux安装方法进行安装:连接后执行下面cpolar Linux 安装命令sudocurlhttps://get.cpolar.sh|sh再次输入飞牛云nas的密码确认后即可自动安装安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入飞牛云主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面使用官网注册的账号登录,登录后即可看到配置界面,接下来在web界面配置即可4.配置公网地址通过配置你可以在本地 WSL 或 Linux 系统上运行 SSH 服务并通过 Cpolar 将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:ssh注意不要与已有的隧道名称重复协议tcp本地地址192.168.42.137:22端口类型随机临时TCP端口地区China Vip创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型2.tcp.cpolar.top是 Cpolar 提供的域名13126是随机分配的公网端口号通过 Cpolar 提供的公网地址和端口使用 SSH 协议从任意一台主机操控飞牛啦接下来我们操作一下。修改hosts配置文件[dbservers]2.tcp.cpolar.topansible_userrootansible_port13126ansible_password***添加一个文件写入下列内容vi/etc/ansible/2.yml--- - name: 创建文件 hosts: dbservers become:yestasks: - name: 创建/vol2/1000/shan 目录 file: path: /vol2/1000/shan state: directory运行ansible-playbook2.yml --ask-pass创建成功打开飞牛我们也可以看见创建的文件夹shan。5.保留固定TCP公网地址使用cpolar为其配置TCP地址该地址为固定地址不会随机变化。选择区域和描述有一个下拉菜单当前选择的是“China VIP”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。地区显示为“China VIP”。地址显示为“6.tcp.vip.cpolar.cn:12648”。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道ssh点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。最后测试一下固定的地址是否好用测试命令ssh-p12648root6.tcp.vip.cpolar.cn这样我们就可以利用ansible随时随地操控飞牛啦总结本文完成了从Ansible本地管理飞牛OS到通过cpolar进行异地自动化运维的完整配置。Ansible负责把重复操作整理成可复用的Playbookcpolar负责建立公网TCP连接两者分工明确。局域网和公网连接方式发生变化后任务内容不需要随之重写只需要调整主机清单中的地址和端口即可继续执行。相比逐次登录飞牛OS手动操作这套方案更适合重复部署、批量修改和定期维护场景。目录创建只是最基础的验证任务后续还可以继续扩展到Docker容器管理、软件更新、配置分发、服务重启和日志收集。不过自动化程度越高对权限和安全配置的要求也越高。实际使用时应优先采用SSH密钥、普通运维账号和Ansible Vault并避免直接将root密码写入hosts文件。随机TCP地址适合临时测试固定TCP地址更适合长期运行的Playbook和定时任务。完成固定地址配置后即使控制端和飞牛OS不在同一局域网也能保持相对稳定的连接入口。对于已经开始在飞牛OS上部署多个服务并且需要经常远程维护的用户Ansible与cpolar的组合能够明显减少重复操作但仍应在权限最小化和访问凭证保护的前提下使用。