Ubuntu服务器初始化

HPE ProLiant DL360 Gen9服务器 上部署Ubuntu 20.04.3 LTS Server之后,可以看到有以下特征:

  • Ubuntu Server 默认安装了LXC容器,而不是我们常用于Kubernetes的 Docker Atlas 容器,如果你期望采用最常用的容器技术,需要做一个切换

  • Ubuntu默认部署了snapd用于部署沙箱环境运行服务,这可能是你不需要用于底层OS

我的目标是尽可能简化物理服务器上运行的操作系统,而把所有资源都用于 KVM Atlas 实现 nested virtualization ,以便部署大规模的云计算虚拟化。所以我在本文实践中,对Ubuntu Server进行精简初始化。

sudo配置

安装过程已经设置了一个可以sudo的账号,为了方便使用,增加免密码设置。例如, huatai 账号:

id huatai

可以看到:

uid=1000(huatai) gid=1000(huatai) groups=1000(huatai),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lxd)

我修订 /etc/groupgid 20 修订成 staff ,以及将 huatai 用户修订成 502 ,以便统一不同系统的 uid/gid

  • 配置 /etc/sudoers 添加:

    huatai ALL=(ALL) NOPASSWD:ALL
    

lxd卸载

Ubuntu默认启用基于LXC的lxd服务,对于我的运行环境实在多余

不过,当尝试 apt remove lxc 或者 apt remove lxd 都会提示并没有安装,原来,这些都是通过 snap软件包管理 部署的,所以通过卸载snap来完成清理

snap卸载

既然在底层os不使用 snap软件包管理 ,所以 在Ubuntu 20.04中禁用Snaps

  • 检查默认安装的snaps:

    snap list
    

显示输出:

Name    Version   Rev    Tracking       Publisher   Notes
core18  20210722  2128   latest/stable  canonical✓  base
lxd     4.0.7     21029  4.0/stable/…   canonical✓  -
snapd   2.51.3    12704  latest/stable  canonical✓  snapd
  • 使用 sudo snap remove <package> 命令移除:

    sudo snap remove lxd
    sudo snap remove core18
    sudo snap remove snapd
    
  • 最后删除和清理snapd软件包:

    sudo apt purge snapd
    
  • 执行 apt autoremove 清理所有无用软件包:

    sudo apt autoremove
    
  • 删除snap目录:

    rm -rf ~/snap
    sudo rm -rf /snap
    sudo rm -rf /var/snap
    sudo rm -rf /var/lib/snapd
    

参考