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