Inevitable

文字所表现出来的美丽、恐惧。。还有率真之类的东西,我觉得在其他事物中还是很难寻得的。

0%

我拿 VPS 来干什么

从一开始不知道在 VPS 上跑什么服务,到现在 VPS 上跑满服务。

随着容器技术的成熟,部署软件和维护 VPS 不再像以前那么复杂。以前的软件大多是直接跑在 VPS 上,我们要为其设置反向代理,安装 Nginx。在软件安装的时候也很容易出错。现在很多软件都支持用 Docker 安装。稍微修改一下配置文件,我们就可以一键启动容器了。服务相互之间隔离,管理 Docker 可比之前折腾直接装在本机上的软件方便多了。那么我们具体应该怎么管理 VPS,VPS 上又有什么有用的软件可以安装呢?

VPS 管理

首先介绍几个提升 VPS 使用体验的软件。他们分别是 VSCode,Ansible,Htop,Portainer,Nginx-Proxy,Netdata。

Vscode

自从 VSCode 推出了远程 SSH 功能,在 VPS 编辑文件一下子变得方便了起来。编辑文件的同时还有 Terminal,还有文件树。如果安装了 Docker 插件,我们还可以轻松的管理容器。不过需要注意的是在 1G1C 的 VPS 上可能跑不动 VSCode。

Ansible

我曾在第 35 周提到过 Ansible,一个自动运维工具。我们可以将常用的操作写成 Ansible Playbook 以重复使用。比较好的习惯便是执行一个操作遍将其写成 Ansible Playbook,保证它的可重复性。

Ansible playbook 某种意义上与docker-compose.yml 有重叠。例如我们在docker-compose.yml中有两个 service,Nginx 和 Portainer。我们既可以在 Ansible playbook 中直接调用这个docker-compose.yml,也可以将 Nginx 和 Portainer 分别写进 Ansible playbook,不再用到 docker-compose.yml。这么做各有利弊,docker-compose.yml更方便进行分享。写进 Ansible playbook 中则更加灵活,方便后续修改和使用。

目前唯一的缺点是 Ansible 不支持 Windows,我们需要在 WSL 或 Docker 中运行 Ansible。

Htop

一个来查看系统资源的 Linux 命令。可以展示 CPU,RAM,进程占用系统资源的信息。它也支持过滤和搜索,可以展示特定的某些进程的系统资源使用。

Portainer

Portainer 是一个容器管理软件。它有一个 WebUI,让我们可以在 Web 界面管理 VPS 上的容器。以前删除一个容器,我们需要先找到容器的 ID,然后停止它,最后删除它。在 Portainer 上我们可以一键移除容器,并且可以方便的删除现有容器不在使用的 Volume。除了管理容器,Portainer 也可以用来部署容器,给容器分组等等。

Nginx-Proxy

为了可以用域名访问到这些在不同端口的服务,我们需要一个反向代理。反向代理会帮助我们将进入的流量转发到对应的服务中去。

Nginx-Proxy 就是这样一个软件可以帮助我们将流量自动转发到运行在 Docker 中的服务去。这算是配置非常简单的网络服务软件。如果需要额外的 SSL,可以使用配套的 docker-letsencrypt-nginx-proxy-companion。照着教程走就可以完美完成设置。需要注意的是如果你用 Cloudflare 做 DNS,记得关闭 Proxy 模式,用 DNS Only 模式。

Netdata

一开始认识到的资源监控软件是 Grafana。Grafana 的灵活度更高但是做不到开箱即用,而且还需要安装额外数据库。因此最后我使用过的是轻巧的 Netdata。Netdata 可以做到开箱即用并且展示了大量的系统资源数据。由于展示的数据过多,会显得有些杂乱。

我在用的软件

TinyTinyRss

大家都在用的 RSS 服务。其缺点还是很明显的,很多 UI 设计比较过时,软件较为臃肿占用较多的资源。

Huginn

Huginn 是一个自动化软件。用起来有点类似 IFTTT。

如果要使用 Huginn 的邮箱服务,我们需要为其 Docker 添加跟 SFTP 有关的环境变量。具体例子 在这

Netease music

UnblockNeteaseMusic 用来在海外解锁灰掉的网易云音乐。

暂时就这些,仔细一整理发现 Devop 的软件比真正干活的软件要多。最后附上我的docker-compose.yml

欢迎关注我的其它发布渠道