Ansible远程管理飞牛OS实操:Playbook执行、SSH穿透与固定TCP地址配置
前言NAS用久了以后最烦人的往往不是功能不够而是重复操作太多。更新服务、创建目录、检查文件、改配置、看日志每次都要先登录系统再一条条命令执行时间长了就会觉得很低效。飞牛OS本身已经很适合家庭和个人数据管理但如果想把它当成一台更像服务器的设备来维护单靠网页后台和临时SSH登录就不够顺手了。尤其是有些操作明明可以标准化却还要每次手动敲命令。Ansible适合解决这类问题。它可以把常见维护动作写成Playbook比如创建目录、分发配置、执行命令、安装服务等。后续不需要反复登录飞牛OS手动操作只要在控制端执行一条命令就能让目标设备按预设流程完成任务。本文会先在CentOS 7上安装Ansible并通过hosts文件添加飞牛OS作为被管理主机再使用ansible ping测试连接随后通过一个简单Playbook在飞牛OS上创建文件或目录验证自动化控制链路是否跑通。在局域网内跑通以后还会继续处理外网管理问题。通过 cpolar 在飞牛OS上创建SSH TCP隧道并配置固定TCP公网地址让Ansible即使不在同一个局域网内也能通过稳定地址远程管理飞牛OS。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的远程自动化管理工具使用。原本需要手动登录后逐条执行的操作可以整理成Playbook让维护动作变得更标准也更容易复用。这套方案适合经常折腾NAS服务、需要远程维护家庭服务器或者想把一些重复操作自动化的人。它不只是“能远程连上飞牛OS”而是把远程连接和自动化执行结合起来让NAS更像一台可以被集中调度的服务器。配置 cpolar 后飞牛OS的SSH服务可以通过TCP公网地址访问。随机TCP地址适合临时测试固定TCP地址更适合长期使用避免每次修改Ansible主机清单里的连接地址和端口。需要注意的是SSH公网访问一定要谨慎配置。建议优先使用密钥登录尽量避免长期使用root密码直连固定TCP地址、端口、账号和Playbook内容都不要公开暴露必要时配合强密码、防火墙策略和最小权限账号一起使用。Ansible负责把操作流程自动化飞牛OS负责承载实际服务和数据cpolar负责补上跨网络SSH访问入口。当这几部分组合起来以后NAS运维就不再只是“人在电脑前手动维护”而是可以通过一套命令和剧本完成远程、稳定、可复用的管理。