是也乎,( ̄▽ ̄)
就是要折腾…所以,来一台 miniPC 吧
背景
海外主机解决了科学上网的问题,
- 但是, 带宽/CPU/内存/硬盘IP/… 什么都要銭,
- 而且远程登录控制响应也很难受
所以, 想临时测试, 或是部署一些周期性的自动化私人任务总是要有个
home server
家庭服务器
来长期运行, 内网使用
硬件
~ 根据预算暂时选定
工控机形式, 可以长期在家运行,节能…最后决定采购的是类似以下的配置:
系统
~ 必须是稳健的 Linux 了
只是以往长期用过 Ubuntu 系统, 而且从用户群看, Ubuntu 支持的硬件范围也最广, 果然和店家商量, 人家预装的就是 LST 版本的 Ubuntu…
bash
拿到手, 用初始管理员帐号进入后, 习惯性的配置顺序是:
- 创建自己习惯的帐号
:
$ sudo su
# useradd -s /bin/bash -G sudo,root zoomq
# chown -R zoomq:zoomq /home/zoomq
# passwd zoomq
<-- 新的强力临时口令
- 更换/关闭原先的帐号
:
$ sudo su
# passwd admin
<-- 新的强力口令
-
配置 /etc/sudoers
# Allow members of group sudo to execute any command #%sudo ALL=(ALL:ALL) ALL %sudo ALL=(ALL) NOPASSWD:ALL
- 接入网络 ~ 使用图形化工具即可
- 升级系统软件 ~ 得先用图形工具, 选择合适的软件源仓库
:
$ sudo apt update
$ sudo apt upgrade
安装常用工具:
$ sudo apt install htop vim
- 配置 SSH
先安装 SSH 服务:
$ sudo apt install openssh-server
再配置允许 SSH 登录:
$ sudo vim /etc/ssh/sshd_config
...
#Port 22
Port 9122
...
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
...
#PasswordAuthentication yes
$ sudo service ssh restart
- 部署私匙, 进行远程登录
最后部署私人公匙:
$ mkdir -p /home/zoomq/.ssh
$ touch /home/spawnris/.ssh/authorized_keys
$ chmod 600 /home/spawnris/.ssh/authorized_keys
从本地 ~/.ssh/id_rsa.pub 复制公匙到 authorized_keys 中
从本地 macOS 桌面中,配置 ~/.ssh/config
追加:
Host aoi
User zoomq
port 9122
ForwardAgent yes
HostName 192.168.1.17
然后, 就可以从本地终端中使用如下指令随时登录主机了:
$ ssh aoi
screen
~ 但是, 想真正自在的随时进入工作组终端, 还得继续…
$ sudo apt install screen
$ screen -S zoomq # 创建名为 zoomq 的终端组
screen….常用操作
Ctrl+a+c 新终端
Ctrl+a+w 列出所有终端
Ctrl+a+a 回到前一个终端
Ctrl+a+d 挂起并后台保持 screen
Ctrl+a+0 进入 id 为 0 的终端
Ctrl+a+1 进入 id 为 1 的终端
现在就可以一键从本地进入远程的终端组了:
$ ssh -t aoi screen -r zoomq
而且, 随时使用 ctrl+a+d
断开连接, 回到本地,
却对远程主机中的终端组,以及各个终端中的状态都完成了自动保存,
任何时候回来都可以继续上次的嗯哼…
远程配置
~ 在远程使用 vim 来编辑各种脚本/配置, 还是没有在 mac 中用 sublime text 3 来的嗯哼
- 所以, 要有机制可以在本地编辑, 自动部署到远程主机中
- 自然的, 想到了版本管理系统
- 以往折腾过稳定的自动化部署
- 基于 hg (Mercurial)
整体文件提交/部署的关系是:
+- .hg -> hooks -+
| |
+ /opt <-------------+ (自动化同步更新工作复本)
| ^
V |
[home server]
| |
| |
[macOS local]
| ^ $ hg push
| |
+- path/2/local/work/path
+- .hg <- 本地仓库
创建主机上的仓库:
$ cd /opt
$ hg init .
$ vim .hg/hgrc
[web]
push_ssl=False
[hooks]
changegroup=/opt/cfg/hg/hooks/autoup-opt-up.sh
部署自动更新 hook -> autoup-opt-up.sh:
- 创建对应目录
/opt/cfg/hg/hooks
- 放置对应脚本
- 并设置为可执行
chmod +x autoup-opt-up.sh
回到 macOS 本地, 创建合理的本地复本环境:
- 配置 ~/.hgrc
- 注意其中有关配置的来源:
效果:
- 至此, 在本地对应工作目录中创建/修订/增补有关配置/脚本, 通过 hg 命令完成版本记录后
- 嘦简单的进行
hg pu
- 在远程主机, 就自动化的完成了相同的版本收录, 并更新到对应目录中的文件
- 节省大量重复性操作
用时
- .5h 开机配置
- 1.h 系统升级
- .5h bash 常用配置
- 1.h 回忆并部署 hg
FAQ:
自怼圈 -> 营造被动节奏外韵律
每年 4.1/8.1/12.1 定时开放报名进入
PS:
任何问题, 随时邮件提问可也:
大妈的多重宇宙 - YouTube
全新自媒体系列...科学幻想,读书,说故事...点击注册~> 获得 100$ 体验券:
订阅 substack 体验古早写作:
Zoom.Quiet’s Chaos42 | Substack
关注公众号, 持续获得相关各种嗯哼:
蟒营®编程思维提高班Python版
**2021.01.11** 因大妈再次创业暂停定期开设, 转换为预约触发:-
+ 任何问题, 随时邮件提问可也:
[email protected]