将我的旧Chromebook改装成低功耗的家庭服务器

2020-09-29 05:01:17

大约4年前,我从一个朋友那里以50 GB的价格买了一台华硕(Asus)C300 Chromebook,当时我用的是二手的,稍微有点旧的华硕C300 Chromebook。它对我的服务很好,我在上面安装了Linux,并在通勤时用它来做一些副业。然而,随着时间的流逝,我慢慢地忘记了它,它最终被装进了一个盒子里,被收起来了。我一直觉得让它呆在那里很可惜,但我不想把它卖个便士,我也不想把它扔掉,因为它对于一些轻量级任务来说是一台非常好的机器。我一直有将其转换为家庭服务器的想法(是的,使用7W的TDP赛扬N2830 CPU),但在网上找不到真正的指南来解释如何做到这一点,直到现在,我也没有冲动自己去做实验。

为了运行一个通用的家庭服务器,我知道ChromeOS不会削减它,它必须是合适的Linux。发行版实际上并不重要,因为我无论如何都要使用Docker(和docker-compose)来运行容器中的所有服务器应用程序。幸运的是,我已经有了安装GalliumOS的经验,因此它成为我选择的发行版。GalliumOS是一个基于Ubuntu的发行版,专门为在ChromeOS设备上运行而创建。我必须更新我Chromebook上的固件(这是一个非常简单的过程,不到10步),然后使用名为chrx的工具安装操作系统(另外2-3步)。一旦完成,我就可以双引导我的Chromebook,得到了一台完全可以运行的Linux笔记本电脑。

一旦我启动并运行了操作系统,我就想对它进行配置,这样我就可以在关闭显示(翻盖)模式下使用它,因为让它在打开显示的情况下运行并不太现实。我知道MacBooks有这些选项,但我也知道你必须连接一个外部显示器和键盘/鼠标,才能让它正常工作。幸运的是,对于Linux,唯一的限制是您的想象力(以及您的编码/Google-ing技能)!正如前面提到的,由于GalliumOS是基于Ubuntu的,我确信有些使用Ubuntu的人希望他们的系统即使在关闭显示器后也能保持清醒。我没有错。只需通过GUI编辑logind.conf并关闭所有节能和自动休眠功能即可。

接下来我必须安装sshd,但多亏了Reddit的这篇帖子,我发现它就像安装一样简单(同样,它基本上是一个精简版本的Ubuntu)。将所有设置保留为默认值,然后我从另一个框中SSH。一切都很顺利,我从远程机器登录,启动HTOP,然后合上盖子,看看配置是否真的起作用了!我让连接打开了大约一个小时,只是为了百分之百确定不会进入睡眠模式,然后我认为这个项目是成功的。比我预想的要顺畅得多。

虽然我不建议在Chromebook上通过Wifi连接运行任何生产工作负载,但作为我的家庭cron/CI服务器,它将完全可以提供服务,特别是知道它可以在没有UPS的情况下使用电池运行10个小时(据称)。按照文档,我毫无问题地安装了Docker,也安装了docker-compose。我还插上了我在办公桌上发现的一个128 GB的USB小U盘,因为内置的eMMC不是有史以来最大的存储空间。我将驱动器重新格式化为ext4,然后挂载并最后更新了Docker,以便使用USB设备上的分区进行数据存储,其中包括所有容器、卷等。如果您感兴趣,请查看我使用的容器服务器列表,并在下面对原因进行一些解释。

Portainer提供了一种非常用户友好的方式来管理远程箱子上的容器。通过Web界面,它为每个容器提供有关资源利用率、日志等的信息。

我使用这个组合来监控平均丢包、ping、DNS查询时间、CPU温度和CPU/内存/磁盘利用率。

我将Jenkins用于我拥有的所有cron/CI作业,在我的一些副项目上构建/部署和运行自动化测试。

为了减少网络使用率,我设置了Nexus和一个本地docker/npm/pypi缓存。

当我达到这个项目的目标时(一如既往,旅程比结果本身更重要),我就到此为止,这个小设备有2x个USB端口,一个全尺寸的HDMI端口,甚至还有一个音频插孔,有很大的潜力。归根结底,我觉得最好是将这项精巧的小技术投入使用,并说服自己,我不需要为一个永远不会到来的未来项目再买一台raspbercrypi。