实战SOP:让CodeArts替我搭NAS
背景:搭NAS这活儿,能不能动嘴不动手
家里有台旧VPS闲着,想改成NAS存文件、做时间机器备份。以前干这事儿得查一堆教程:装Samba、配共享目录、设权限、开防火墙端口、挂载测试……每步都要手动敲命令,漏一个参数就访问不了。
这次换了个思路:把需求用自然语言告诉码道CodeArts,让它替我执行。结果从发指令到NAS可用,全程没碰键盘敲配置命令,CodeArts把安装、配置、权限、防火墙全包了。这篇文章记录整个过程,给想用AI Agent搭基础设施的人一个可复制的路径。
方案:五步从零到可用NAS
整体流程
| 步骤 | 人工做的事 | CodeArts做的事 |
|---|---|---|
| 1.说需求 | 用一句话描述要什么 | 解析需求,规划执行步骤 |
| 2.装服务 | 确认执行 | 安装Samba和依赖包 |
| 3.配共享 | 无 | 创建共享目录、写配置文件 |
| 4.设权限 | 无 | 设置用户、目录权限、防火墙 |
| 5.验证 | 无 | 用测试命令验证共享可访问 |
第一步:用自然语言下指令
打开码道CLI,输入需求:
帮我在这台VPS上搭建NAS,要求:
1. 安装Samba服务
2. 创建共享目录 /data/nas,局域网内可读写
3. 创建访问用户 nasuser,密码设为Nas@2026
4. 配置防火墙放行Samba端口
5. 最后用smbclient测试共享是否可访问
CodeArts收到后先做了个执行计划,列出5个阶段,每个阶段标注要跑的命令和预期结果。这一步相当于它自己做了个checklist,后面逐步执行。
第二步:安装Samba
CodeArts自动执行:
# 更新包索引
sudo apt update
# 安装Samba
sudo apt install samba samba-common-bin -y
# 验证安装
smbd --version
输出显示Version 4.6.x,安装成功。这步如果手动做,得先查当前系统版本再选对应的包管理器命令,CodeArts自己判断了是Debian系用apt。
第三步:配置共享目录和用户
这步命令最多,也是最容易手动出错的地方:
# 创建共享目录
sudo mkdir -p /data/nas
sudo chmod 775 /data/nas
# 创建系统用户
sudo useradd -M -s /usr/sbin/nologin nasuser
# 设置Samba密码
echo -e 'Nas@2026\nNas@2026' | sudo smbpasswd -a nasuser -s
# 写Samba配置
sudo tee -a /etc/samba/smb.conf << 'EOF'
[nas]
path = /data/nas
valid users = nasuser
read only = no
browsable = yes
create mask = 0664
directory mask = 0775
EOF
# 重启服务使配置生效
sudo systemctl restart smbd
sudo systemctl enable smbd
手动做这步时常见两个错:一是smbpasswd交互式输入密码时两次不一致,二是配置文件缩进用空格还是Tab搞混。CodeArts用-s参数走非交互模式绕过了第一个坑,配置文件用标准缩进避免了第二个。
第四步:防火墙放行
# 放行Samba端口
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw allow 137/udp
sudo ufw allow 138/udp
# 确认规则
sudo ufw status | grep -E '139|445|137|138'
这步不难但容易漏——很多人只放445端口,139和137/138忘了开,导致Windows客户端能连但列不出共享目录。CodeArts一次性把四个端口都加了。
第五步:验证共享可用
# 用smbclient测试
smbclient //localhost/nas -U nasuser%Nas@2026 -c "ls"
# 预期输出:能看到 . 和 .. 目录,无报错
CodeArts跑完这条命令,输出里看到目录列表,确认共享可用。它还额外跑了systemctl status smbd确认服务是active状态,比手动做多了个交叉验证。
实践要点
-
需求描述要具体:说"帮我搭NAS"太笼统,CodeArts会反问一堆问题。把目录路径、用户名、密码、网络范围一次性给全,它就能一条龙跑完不回头。好的需求描述等于成功的一半。
-
让它先出计划再执行:CodeArts默认会先列执行计划。别急着让它跑,先看一遍计划,确认没有危险操作(比如误删已有目录、覆盖已有配置文件)。这次我让它先出计划,发现它打算
mkdir -p /data/nas——如果/data下已有其他数据这没问题,但如果路径写错就麻烦。确认无误再让它执行。 -
密码别明文写在指令里:上面示例为了演示写了明文密码,实际使用时让CodeArts生成随机密码或从环境变量读取,避免密码留在命令历史和Agent日志里。
-
配置文件修改要备份:CodeArts往smb.conf追加配置时,让它先
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak。万一配置有问题,一条cp就能回滚。这次没出问题,但养成习惯没坏处。 -
测试不只看本地:CodeArts在VPS上用smbclient测了localhost,但真正验证要从另一台局域网机器访问。建议让它再跑一条
testparm -s检查配置语法,然后人工从Windows或Mac试连一次。
小结
用CodeArts搭NAS,本质是把"查教程→敲命令→排错"这个循环交给AI Agent。它跑命令不会打错字,配文件不会漏缩进,防火墙不会忘开端口。但前提是你得把需求说清楚——它不会猜你想要什么目录结构、什么访问权限。
从效率看,手动搭NAS至少40分钟(含查教程和排错),用CodeArts从发指令到验证通过不到10分钟。省下来的时间不是省在敲命令上,而是省在"不用反复查文档确认参数"上。对于不常做运维的人,这个价值更大——不用为一次性任务学一套技能,说清楚要什么就行。
- 点赞
- 收藏
- 关注作者
评论(0)