openSUSE MicroOS不可Linux
1、openSUSE MicroOS简介
OpenSUSE MicroOS
适用于单一用途
的服务器应用
。
https://get.opensuse.org/microos/?type=server
OpenSUSE MicroOS
是一个不可变
的 Linux 发行版。
MicroOS
则利用 Btrfs
的快照等特性来实现事务性
和原子性
。
https://imbearchild.cyou/archives/2022/09/fedora-kinoite-and-opensuse-microos/
大白话
就是:
不要在这个服务器
上装了mysql
又在上面nginx
,最好
只跑一个服务
,不然这个Linux的变更方式
会让你摸不着头脑
。
如果只跑一个服务
,变更和回滚
非常好用,强烈安利
。
简单来讲,不可变
的Linux
发行版会有一个大体只读
的根分区
。
/etc
、 /var
、/home
等路径依然可写
,
但是 /usr
、/lib
是只读
挂载。
openSUSE MicroOS
基于tumbleweed(风滚草)
版本,是一个滚动更新版
。
这个版本的不可变
及回滚
特性,非常适合服务器。
安装时可能遇到的问题
安装时,先按下F4
,选择DVD
,才能正常安装.
文章中演示的版本
为
2、ssh登录
SLE
默认不能
以root
登录,没有/etc/ssh/sshd_config
文件;
需要新建一个普通账户
登录SLE服务器,然后提权
到root
# 创建ops用户
useradd ops
# 为ops设置密码
passwd ops
# 使用ops用户登录sle服务器
ssh ops@sle服务器ip
# 提权到ops
sudo -i
3、openSUSE MicroOS配置国内软件源
官方软件源地址:https://zh.opensuse.org
openSUSE MicroOS
的源
是基于tumbleweed
的
# 创建备份软件源 目录
mkdir -p /etc/zypp/repos.d/bak
# 备份软件源
mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/bak
# OSS 更新仓库,用于获取开源软件的安全更新和补丁
sudo zypper ar -cf https://mirrors.ustc.edu.cn/opensuse/tumbleweed/repo/oss/ repo-oss
# 添加非开源仓库(Non-OSS)
sudo zypper ar -cf https://mirrors.ustc.edu.cn/opensuse/tumbleweed/repo/non-oss/ repo-non-oss
# 添加 SUSE Linux Enterprise (SLE) 的更新仓库
## 阿里只保存了sle的5.5
# sudo zypper ar -fc https://mirrors.aliyun.com/opensuse/update/leap-micro/5.5/sle leap-micro
# sudo zypper ar -fc https://mirrors.aliyun.com/opensuse/update/leap-micro/$releasever/sle `leap-micro SUSE Linux Enterprise`
# 查看源文件
ls /etc/zypp/repos.d/
#刷新软件包源
zypper ref
#查看软件源
zypper ls
4、系统变更
文档参考地址: SUSE Documentation
openSUSE MicroOS
是不可变服务器
,每安装
一次软件都是一次变更
,变更完成后, /usr
、/lib
登录目录都会变成只读
。保证了系统的原子性
。
openSUSE MicroOS安装软件包
SLE Micro
引入了事务性更新
,允许您对根文件系统应用一项
或多
项更改
;
使用transactional-update shell
安装多个软件包,对文件系统的更改并使用该exit命令离开shell后,需要重新启动主机以应用更改
.
简单来讲:
就是在每次安装软件
时,会自动
给系统做快照
;
重启操作系统
后才能运行
新安装
的软件.
# 搜索软件
zypper se 包名
方法1:进入事务性更新模式安装软件包
注意:
要一次性把需要的所有软件安装上
。
不进入事务性更新模式是不能安装软件包的。
# 进入事务性更新 shell(用于在不影响当前系统的情况下进行软件包修改)
transactional-update shell
# 安装软件包
zypper in -y pkg1
# 退出事务性更新 shell,提交更改
exit
# 重启系统以应用更改
reboot
方法2:继续快照id
基于这个快照进行增量安装
transactional-update --continue
可以进行多项更改
而无需重新启动
,每次运行时都会创建一个单独的快照,其中包含上一个快照的所有更改以及您的新更改
,需要重新启动主机
以应用更改
# 查询快照id
snapper list
# 继续上一个事务 ID 为 12 的操作,并安装 package_2
# --continue <ID> 表示继续之前快照的上下文环境,创建一个新的快照
transactional-update --continue 12 pkg ins package_2
# 重启系统以应用所有通过 transactional-update 安装或更新的内容
reboot
# 启动服务
systemctl enable --now cockpit.socket
方法3:transactional-update pkg ins
# 使用 transactional-update 安装 package_1 软件包
# 这会创建一个新的系统快照,并在其中安装该软件包
transactional-update pkg ins patterns-microos-cockpit cockpit-ws cockpit-tukit
第一次变更
一次性
把需要的软件安装齐全
;每次安装的软件不一样,就是不同
的镜像
# 进入事务性更新 shell(用于在不影响当前系统的情况下进行软件包修改)
transactional-update shell
# 安装网络工具
zypper in -y mosh telnet net-tools wget rsync tcpdump iperf bind-utils
# 退出事务性更新 shell,提交更改
exit
# 重启系统以应用更改
reboot
第二次变更
第二次
安装软件包时,第一次
的所有软件包就会失效
,又变回未安装软件包
状态。
所以,如果要增加软件包,要在第一次软件包
的基础上追加软件包
。
# 进入事务性更新 shell(用于在不影响当前系统的情况下进行软件包修改)
transactional-update shell
# 更新系统到最新
zypper dup
# 安装网络工具
zypper in -y mosh telnet net-tools wget rsync tcpdump iperf bind-utils
########### 追加的软件部分###############
# 安装常用工具
zypper in -y htop mlocate bash-completion git vim lrzsz tree screen socat lsof qrencode proxychains-ng traceroute jq sysstat
# 性能自动优化
zypper in -y tuned tuned-utils tuned-utils-systemtap
# openSUSE使用zypper来管理软件包--非虚拟机不装
zypper in -y open-vm-tools
# ssh防护
zypper in -y fail2ban ipset trash-cli
# 选装
zypper in -y wireguard-tools lsb-release
# 安装glibc-i18ndata包
## glibc-i18ndata 国际化语言数据库
zypper in -y glibc-i18ndata glibc-locale glibc-locale-base
## wqy-zenhei-fonts wqy-bitmap-fonts wqy-microhei-fonts 安装文泉驿正黑字体
zypper in -y wqy-zenhei-fonts wqy-bitmap-fonts wqy-microhei-fonts
# 退出事务性更新 shell,提交更改
exit
# 重启系统以应用更改
reboot
5、openSUSE MicroOS配置静态ip
SLE Micrio通过NetworkManager
配置网络,使用nmcli
命令行进行网络配置
https://blog.csdn.net/omaidb/article/details/120028501
系统优化和美化
关闭SELinux
# 关闭selinux
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
# 临时关闭SELinux
setenforce 0
sudo配置
# 配置admin用户的权限
echo "admin ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/admin
# 配置admin的sudo配置文件权限
sudo chmod 0440 /etc/sudoers.d/admin
启动tuned服务
# 开机自启服务并现在就启动服务
systemctl enable --now tuned
## 启用虚拟机方案和低时延方案
tuned-adm profile virtual-guest network-latency
美化vim
# 下载vim配置文件
wget -cP $HOME/ https://raw.gitcode.com/liqiaofei/vim-config/raw/main/.vimrc
ps1变量美化
# 下载ps1美化配置
curl -o /etc/profile.d/ps1.sh https://raw.gitcode.com/liqiaofei/profile.d/raw/main/ps1.sh
配置git命令自动补全
# 下载git-completion.sh
wget -cP /etc/profile.d/ https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
配置/etc/motd.d/00-welcome
系统欢迎语
tee /etc/motd.d/00-welcome <<-'EOF'
【法律警告】
本系统仅供授权人员访问。所有登录尝试和系统内的操作行为都将被实时监控、记录和审计。未经授权的访问、使用、修改或传播系统信息属于非法行为,将承担严厉的法律责任,包括但不限于民事赔偿、行政处罚乃至刑事起诉。继续登录表示您已阅读、理解并同意接受上述条款和相关信息安全策略的约束。
EOF
设置中文语言显示
# 查询 LANG 可以设置的值
localectl list-locales |grep -i zh
# 查询 LC_ALL 可以设置的值
locale -a |grep -i zh
配置/etc/locale.conf
vim /etc/locale.conf
# 设置默认语言
LANG=zh_CN.UTF-8
# 覆盖系统所有语言设置
LC_ALL=zh_CN.utf8
使locale.conf
配置生效
# 立即生效
source /etc/locale.conf
# 开机自动生效
echo "source /etc/locale.conf" >/etc/profile.d/locale.sh
安全防护
使用fail2ban防止ssh穷举爆破 :
https://blog.csdn.net/omaidb/article/details/120231345
配置ipset
配置IP白名单
和IP黑名单
https://blog.csdn.net/omaidb/article/details/120405741
rm删除到回收站
https://blog.csdn.net/omaidb/article/details/148346377
Linux服务器防止误关机
https://blog.csdn.net/omaidb/article/details/148352044
系统快照管理
https://documentation.suse.com/zh-cn/sle-micro/6.0/html/Micro-transactional-updates/index.html
创建快照
每安装一次
软件包后重启
,就会生成一个快照
snapper create
查看快照列表
# 查看快照列表
snapper list
修改快照描述
# 修改快照12的 描述
snapper modify -d "安装了mosh" 12
回滚快照
# 回滚快照
snapper rollback 快照编号
对比快照
snapper status 15..16 |less # 查看文件变化
snapper diff 15..16 |less # 内容差异对比
删除快照
# 删除快照
snapper delete 快照编号