6 9月, 2024

Ubuntu22.04开箱手册

内容纲要

Ubuntu22.04开箱手册

版本验证

操作系统分发版本

cat /etc/issue
Ubuntu 22.04.3 LTS \n \l

版本代号

每一代ubuntu的操作系统,都有一个版本代号,这个代号通常和后面的APT软件源的获取路径是相关的,这里给出获取的命令

lsb_release -cs
jammy

内核版本

uname -a
Linux ubt2204t 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

架构

arch
x86_64

用户初步管理

启用root

ubuntu安装时,强制让用户创建了一个普通用户,但却没有让配置root用户。

ubuntu默认不建议用户直接使用root,这里可以通过设置root口令让root可用。

sudo passwd root
su - root

这时root可以在控制台登录,或su到root,但不能使用root通过sshd直接登录。

配置sshd

vim /etc/ssh/sshd_config
找到:
#PermitRootLogin prohibit-password
改为:
PermitRootLogin yes
重启sshd服务:
systemctl restart sshd

创建其他用户

可以酌情,通过groupadd、useradd、passwd创建其他用户。

网络配置

修改主机名

安装ubentu时已经指定了主机名,可以用以下命令随时修改并永久生效

sudo hostnamectl --static set-hostname MY_NEW_HOSTNAME

值得注意的是,除了使用hostnamectl修改,ubuntu的hosts表中还用127.0.1.1绑了初始的主机名,这里一并修改

vim /etc/hosts
将
127.0.1.1 ORI_HOSTNAME
改为
127.0.1.1 MY_NEW_HOSTNAME

注意不要修改127.0.0.1那一行。

配置静态IP地址

作为服务器使用的linux server,一定要绑死固定IP地址,而非使用DHCP。

ubuntu的22版本,对网络配置文件做了大幅度更改,配置使用yaml格式,且换成netplan管理网络

默认情况下,安装完的ubuntu,使用DHCP获取网络

sudo cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      dhcp4: true
  version: 2

将其修改为:

network:
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.172.141/24
      nameservers:
        addresses: [223.5.5.5, 8.8.8.8]
      routes:
        - to: default
          via: 192.168.172.2
  version: 2

上面设置了:
节点IP为192.168.172.141,子网掩码为255.255.255.0即24,默认网关为192.168.172.2,主DNS为阿里云的223.5.5.5,备DNS为8.8.8.8。

修改时一定注意各级缩进。

使网络修改生效:

sudo netplan apply

验证互联网可达

ping www.baidu.com
curl https://www.baidu.com

curl命令如果暂时没有,则等待APT源配置完成后,再来验证。也可以使用sudo apt install curl先行安装

时钟配置

设置时区

默认安装完的ubuntu,使用的是通用时区UTC,和北京时间差8小时,除非是有全球化应用的需要,否则该默认配置一定要改。

这里需要改为本地时区CST模式,并设置为东八区时间(Asia/Shanghai, CST, +0800)

sudo timedatectl set-timezone Asia/Shanghai

修改后,可以通过下面的命令查看当前时区和时间格式

timedatectl status
               Local time: Sun 2023-12-17 11:25:08 CST
           Universal time: Sun 2023-12-17 03:25:08 UTC
                 RTC time: Sun 2023-12-17 03:25:08
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

设为24小时格式

ubuntu默认使用12小时格式,这里可以按照习惯,选择改为24小时模式。

echo "LC_TIME=en_DK.UTF-8" >> /etc/default/locale

注意这个修改,无法通过sudo实现,必须使用root用户进行修改。

修改后,通过date命令查看

date
Sun Dec 17 11:31:45 CST 2023

设置时钟同步

对于任意的集群环境,节点间的时间必须精确一致,因此时钟同步必须设置。

这里使用腾讯的时钟同步服务器。

sudo vim /etc/systemd/timesyncd.conf
将这5行放开,并配置为腾讯的时钟同步
改前:
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
改后:
NTP=ntp.tencent.com
FallbackNTP=ntp1.tencent.com,ntp2.tencent.com,ntp3.tencent.com
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

保存退出,重启时钟同步服务

systemctl restart systemd-timesyncd
systemctl status systemd-timesyncd

当systemd-timesyncd的状态里,显示了时钟同步的服务器,则表明时钟同步服务器调用成功

Status: "Initial synchronization to time server 106.55.184.199:123 (ntp.tencent.com)."

用timedatectl可以查看时钟同步状态

timedatectl
......
System clock synchronized: yes
              NTP service: active
......

这里的yes,表示时钟同步已经成功。

其他可选配置

关闭防火墙

ubuntu中的防火墙使用的是ufw,即uncomplicated fallwall,是一个较轻量化防火墙,默认开启。

除非有要求,否则在操作系统一级,一般会考虑关闭该防火墙。

systemctl stop ufw
systemctl disable ufw

ubuntu中没有CentOS/RHEL分发版本中的selinux,因此无需考虑关闭selinux。

关闭swap

今天的很多集群应用,不允许swap的存在,因此给出彻底关闭swap的方法

swapoff -a
sudo vim /etc/fstab
注释掉swap这一行,比如:
/dev/disk/by-id/dm-uuid-LVM-wzlrd5x8E5DgQtIU4F7bNcmegEzD3xNaQB9tfilF8D30w1mqbIt2nr76c8wHs3xy none swap sw 0 0
保存退出/etc/fstab

验证swap关闭

free -h
               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       819Mi       5.9Gi       2.0Mi       1.0Gi       6.7Gi
Swap:             0B          0B          0B

APT配置和使用

APT是ubuntu生态的软件管理工具,也是和centos生态最大的不同点。

主源

安装ubuntu时,已经指定了APT的主源,主源一般使用国内的APT源,不建议使用国际源。

主源放置在/etc/apt/sources.list这一配置文件中

cat /etc/apt/sources.list
可以看到,主源的配置已经生效,指向
http://cn.archive.ubuntu.com/ubuntu

主源可用后,首先更新apt,刷新源配置

sudo apt update

可以尝试安装nettools,验证apt可用

sudo apt install nettools
或
sudo apt-get install nettools

基础软件补齐

安装ubuntu时,采用了server模式安装,多数基础软件已经安装上了,这里做一些server模式没有安装的安装的补齐。

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common gnupg2 nettools

配置其他源

可以通过add-apt-repostory命令,添加其他源,其他源会放置在/etc/apt/sources.list.d目录中。

ubuntu不允许在主源中添加其他源。

这里以添加docker源、k8s源举例,给出配置其他源的命令。

添加国内阿里云的docker组件源

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

添加国内阿里云的k8s组件源

sudo curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo add-apt-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"

可以尝试安装docker组件和k8s组件,验证添加的源的正确性

sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo apt-get install kubelet kubeadm kubectl

还可以通过锁定方式,固定软件版本

sudo apt-mark hold kubelet kubeadm kubectl

这样在使用下面的apt命令进行更新或查看可更新的软件列表时,会跳过锁定的软件

软件更新

查看可更新软件

apt list --upgradable

该命令会查看所有源,和本地的软件版本做对比,如果源的版本高于本地,则列为可更新。

更新全部可更新软件(慎重),升级前会确认

sudo apt upgrade

更新某一软件(推荐)

sudo apt --only-upgrade install package1 package2

整个操作系统升级

操作系统一般不做直接升级,因此这步只给出作为参考。

sudo apt dist-upgrade

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注