服务器Ubuntu Server 18.04,从安装到配置到管理
记录:实验室来了一台新的服务器,需要为该服务器安装Ubuntu Server。安装完系统后,为了实验室每个人在上面跑实验能做到环境不冲突,并且为了数据的安全,故在服务器上面搭建docker,并通过一些自动化脚本管理docker的使用。最后为了让校外的人员可以访问到该服务器,通过frp工具来对服务器进行内网穿透。步骤配置Ubuntu ServerUbuntu Server的安装镜像下载下载地址:官网
记录:
- 实验室来了一台新的服务器,需要为该服务器安装Ubuntu Server。
- 安装完系统后,为了实验室每个人在上面跑实验能做到环境不冲突,并且为了数据的安全,故在服务器上面搭建docker,并通过一些自动化脚本管理docker的使用。
- 最后为了让校外的人员可以访问到该服务器,通过frp工具来对服务器进行内网穿透。
步骤
配置Ubuntu Server
Ubuntu Server的安装
-
镜像下载
下载地址:
官网 -
制作启动盘
这里我用的软碟
软碟通
下载后直接将下载好的镜像拷进准备好的U盘即可即可,这里不做详细介绍,具体参考:
制作启动盘 -
安装系统
1、将U盘插进服务器,按F11进入BIOS MENU,用进入U盘启动程序。
2、接下来的操作都是比较固定化的,可以参考下面博客,有详细介绍系统的安装
安装系统步骤
这里主要介绍下安装过程中遇到的一些问题
问题:安装的这个步骤一直卡在0%,且页面一直闪烁。
解决:安装的镜像有问题或者启动盘的制作有问题,下载了新的镜像后解决.
问题:安装完成后系统重启,进入rescue模式。grub是linux的引导文件,证明该文件出问题了,导致服务器进入不了系统。
解决:折腾了好一阵子才解决,重装了两次系统。后面发现是U盘拔的太快了。安装的时候不要被下面的指示误导,这里不需要拔U盘,等系统装好重启后进入Ubuntu后再拔U盘。
进入系统后配置网络
1、注意验证自己用的网线是否可以上网,若可以上网,一般的网口处是会亮绿灯的。
也可以通过下面的命令查看网口处是否正常通网:
ifconfig # 查看自己的网络设备名称
ip -a # 查看该网络设备是否工作,若正常工作,该设备会有UP的状态,如下图红色框处。
2、配置DHCP动态获取ip地址
cd /etc/netplan
# 这个目录下面有.yaml文件,这个是网络的配置文件
vim xx.yaml
将yaml文件的内容改成如下:ethernets是你的网卡名称,不同机器不一样。
可以通过ifconfig查看。dhcp6是为了动态获取v6地址,如果没有v6地址的可以不填。
3、配置完成后,执行下面语句更新网络服务:
sudo netplan apply
若想配置静态的地址,可以参考:
配置静态ip
磁盘分区
一般在安装系统的步骤中,只挂载了固态硬盘sda,将其挂载在/boot启动文件目录和/跟目录。下面讲一下挂载机械硬盘的步骤和需要用到的命令:
查看服务器磁盘分区情况
lsblk # 查看服务器的硬盘情况
NAME是设备名,根据type可以分为disk(磁盘)和part(分区)
MOUNTPOINT是挂载点
查看已挂载好的分区
df -h
df- h与命令lsblk的区别在于df -h只能查看已经挂载好的分区
将空分区挂载到某文件目录下,并设置开机启动自动挂载(这里用/dev/sdb作为例子):
1、先配置好开机定时挂载的文件:
vim /etc/fstab
在命令行模式获取想要挂载分区的uuid。uuid是每个分区的唯一标识符,利用uuid来配置而不是设备名,可以避免一些原因例如开机重启导致设备名更改。
r! blkid /dev/sdb # r是写入缓冲区,!是执行bash命令
生成uuid后,写好fstab文件的剩余配置即可,ext4是文件类型,剩余的配置可以按照默认的来填,这里的挂载点文件需要提前创建。具体的参数含义可以参考:
fstab参数含义
2、进行挂载
mount -a # -a意思是把文件配置文件中所有分区都挂载
3、查看挂载情况。若执行命令后看到自己的分支已经挂载在指定的目录,则挂载成功。
df -h
补充命令:
若遇到已经在用的磁盘,想重新分区,则需要把这些分区先格式化,在重新分区,然后再挂载,涉及到的一些命令如下:
parted /dev/sdb # 对磁盘sdb进行分区,这个命令可以对分区进行删除、重新分区等操作
mkfs -t ext4 /dev/sdb # 对分区进行格式化
mount /dev/sdb /data # 对分区进行挂载,但这个命令在重启服务器会挂载失效
umount # 卸载分区,若要对一个分区改挂载点,要先卸载之前的分区,再重新分区啊
至此,一个Ubuntu Server已经配置完成。
安装docker
为了让每个人可以在自己的环境中跑实验,这里利用了docker来进行环境的隔离和数据文件的隔离。
安装docker
安装过程参考菜鸟教程
菜鸟教程安装docker
注意:
在进行docker版本的选择时候,进行选择高版本的docker,避免后面造成不能识别nvidia驱动等问题。这里我的系统是ubuntu 18.04,但是安装的docker版本按照ubuntu 20.10来选择。
安装docker-compose
docker compose 是docker的运行管理工具,通过配置yaml文件,就可以做到配置docker运行的环境,很方便。
安装过程参考菜鸟教程:
docker compose 安装教程
注意:安装过程中的 docker compose同样要注意,选择版本高一点的docker compose,否则后面会造成在docker compose的配置文件上面的一些问题,我这里安装的是1.29.2
安装Nvidia驱动
1、 更新服务器内核
sudo vim /etc/modprobe.d/blacklist.conf
在该文件最后添加
blacklist nouveau
然后执行
sudo update-initramfs -u
2、下载安装
在官网选择好自己的显卡型号,可通过在windows下载特定的.run文件,再将该文件传到ubuntu server中。
安装官网
执行安装命令:
bash xxxx.run --no-x-check --no-opengl-files
3、验证安装成功
nvida-smi
4、开启显卡持久化(使显卡一直保持着初始化)
sudo nvidia-smi -pm 1
使用docker-compose起docker
1、配置好自己的镜像
可以自己创建或者从docker 仓库拉取,具体参考菜鸟教程
制作镜像
2、 编写yml文件
这里展示的是我配好的一个yml文件,需要其他的环境可以对照教程来添加
3、利用docker-compose起docker服务
# 在yml文件目录下:
docker-compose up -d
4、查看docker情况
docker ps
其它的docker命令可以查看菜鸟教程
编写docker和GPU使用监控脚本
为了避免某个人长时间使用服务器GPU或者开着docker 占着GPU而不使用,这里配置了两个shell脚本来监测docker和GPU的使用情况。
脚本我放在github上面了,若需要获取请打开下面链接。
脚本github链接
使用frp来进行内网穿透
此服务器是在学校内网里面,没有公网的地址,为了便于校外的同学也可以访问该服务器,可利用frp进行内网穿透。
frp是可以开源的内网穿透工具,具体可以参考以下链接
frp
这里的frps我用的是实验室买的阿里云。
目前只是把frp搭起来了,还没有很深入的了解frp的实现原理,这部分后面打算了解更深入一点,再用另外一篇博文来介绍。
更多推荐
所有评论(0)