用途说明
目的
充分利用小型开发板的算力,实现个人服务器
适用系统、硬件
debian10及更高版本(lsb_release -a
或 cat /etc/redhat-release
、uname -a
)
文章所使用硬件:Tinker Board 2s
操作速览
- 基础配置篇
- 开启SSH服务并设置开机自启动
- 修改密码
- (可选)关闭图形化界面、禁用自动休眠
- (可选)挂载硬盘
- 系统重装与备份最佳实践
- 持续集成篇
- 安装Docker与(可选)图形化管理界面Portainer
- Jekins最佳实践
- (可选)搭建自己的gitlab代码库
- NAS篇
- 内网穿透最佳实践
- 进阶篇
- 安装Kubernetes
- 安装k3s(开发板或单节点云服务器推荐)
1. 基础配置篇
1.1 开启SSH服务并设置开机自启动
Debian从8.0开始,默认关闭了SSH
1、修改sshd_config
文件,命令为:nano /etc/ssh/sshd_config
2、将#PasswordAuthentication no的注释去掉,并且将NO修改为YES
3、将#PermitRootLogin yes的注释去掉,允许Root账号登录
4、启动SSH服务,命令为:/etc/init.d/ssh start
或者service ssh start
5、验证SSH服务状态,命令为:/etc/init.d/ssh status
- 添加开机自启动,推荐使用systemd,参考阮一峰的文章
可能出现的问题:https://blog.csdn.net/Peter_JJH/article/details/108446380
1.2 修改密码
Tinker Board 2s默认的初始账号密码是账号:linaro
密码:linaro
修改root密码sudo passwd root
输入新密码
修改linaro密码sudo passwd linaro
1.3 (可选)关闭图形化界面、禁用自动休眠
目的:降低功耗,服务器无需图形化界面
关闭图形化界面:systemctl set-default multi-user.target
切换回图形化界面 sudo systemctl set-default graphical.target
检查当前的target unit,确认已关闭 systemctl get-default
重启机器:sudo systemctl reboot
systemctl status sleep.target
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
systemctl status sleep.target
1.4 (可选)挂载硬盘
挂载硬盘与永久挂载
目的:挂载硬盘后可将重要数据都放置到硬盘中,开发板需要系统升级时,硬盘数据不受影响
挂载硬盘:
查看硬盘信息 fdisk -l
(可选)分区操作 fdisk /dev/sdb1
挂载硬盘到/mnt目录 mkfs -t ext4 /dev/sdb1
查看硬盘信息 mkfs -t ext4 /dev/sdb1
永久挂载代表机器重启后仍能自动挂载到系统
Debian 使用 UUID 来实现硬盘自动挂载。
- 通过 blkid 查找所有硬盘的 UUID:
sudo blkid
可以看到挂载的硬盘 /dev/sdb1 的 UUID 为:ad5f412a-0a0c-42af-afd3-eecec6fd96d2 ,TYPE 为:ext4 。 - 添加自动挂载点
sudo vim /etc/fstab
在最后一行添加:UUID=ad5f412a-0a0c-42af-afd3-eecec6fd96d2 /mnt ext4 defaults 0 0
- 执行挂载
sudo mount -a
查看挂载点:df -h
这时,sudo reboot 重启后挂载点依然存在。
1.5 系统重装与备份最佳实践
重装后无论是ssh配置或挂载都消失了,最佳方式为记录一个脚本,每次重装后执行脚本将之前做过的操作都重来一遍
#
rootpwd=abcd
2. 持续集成篇
2.1 安装Docker与(可选)图形化管理界面Portainer
2.2 Jekins最佳实践
https://juejin.cn/post/6991303151051603999
docker run -u root --rm -d -p 8181:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/lib/jenkins/secrets:/var/lib/jenkins/secrets -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean:1.25.7-bcc31d32159f
查看初始密码cat /var/lib/jenkins/secrets/initialAdminPassword