openSUSE MicroOS不可变Linux

openSUSE MicroOS不可Linux

    • 1、openSUSE MicroOS简介
      • 安装时可能遇到的问题
    • 2、ssh登录
    • 3、openSUSE MicroOS配置国内软件源
    • 4、系统变更
      • openSUSE MicroOS安装软件包
        • 方法1:进入事务性更新模式安装软件包
        • 方法2:继续`快照id`基于这个快照进行增量安装
        • 方法3:transactional-update pkg ins
      • 第一次变更
      • 第二次变更
    • 5、openSUSE MicroOS配置静态ip
    • 系统优化和美化
      • 关闭SELinux
      • sudo配置
      • 启动tuned服务
      • 美化vim
      • ps1变量美化
      • 配置git命令自动补全
      • 配置`/etc/motd.d/00-welcome`系统欢迎语
      • 设置中文语言显示
        • 使`locale.conf`配置`生效`
    • 安全防护
      • 使用fail2ban防止ssh穷举爆破 :
      • 配置ipset
      • rm删除到回收站
      • 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 快照编号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建站SEO优化之站点地图sitemap

文章目录 编写规范小型网站站点地图小型网站规范示例站点地图说明 大型网站站点地图大型网站规范示例以豆瓣站点地图为例 近期文章&#xff1a; 个人建站做SEO网站外链这一点需要注意&#xff0c;做错了可能受到Google惩罚一文搞懂SEO优化之站点robots.txt网页常见水印实现方式…

Java分层开发必知:PO、BO、DTO、VO、POJO概念详解

目录 引言一、核心概念与定义1、PO&#xff08;Persistent Object&#xff0c;持久化对象&#xff09;2、BO&#xff08;Business Object&#xff0c;业务对象&#xff09;3、DTO&#xff08;Data Transfer Object&#xff0c;数据传输对象&#xff09;4、VO&#xff08;View O…

Linux下OLLAMA安装卡住怎么办?

网络环境不理想&#xff0c;经常在官方的linux安装脚本执行时卡住&#xff0c;其实主要是下载文件卡住&#xff0c;于是我想到了是否可以把其中下载的过程显化、分步&#xff0c;这样更可控&#xff0c;于是修改了官方的install.sh #!/bin/sh # This script installs Ollama o…

C++面试(5)-----删除链表中指定值的节点

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 给定一个单向链表的头节点 head 和一个特定值 val&#xff0c;要求编写一个函数来删除链表中所有值等于 val 的节点&#xff0c;并返回修改后的链表头节点。 示例&#xff1a; 输…

如何用AI赋能学习

由于博主是大学生&#xff0c;今天花费了大量的时间去进行期末的复习&#xff0c;不过从复习中得到了一些学习的灵感&#xff0c;即&#xff1a;如何用AI赋能学习 当我们需要掌握一门新的技能的时候&#xff0c;我们很容易的想到三种办法&#xff1a;买书自己学&#xff0c;报…

【threejs】每天一个小案例讲解:常见材质

代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone&#xff0c;无需安装依赖&#xff0c;直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 1. MeshBasicMaterial&#xff08;基础网格材质&#xff09; • 特…

springboot后端与鸿蒙的结合

软件&#xff1a;鸿蒙devceo3.1&#xff0c;springboot项目采用IDEA 目的&#xff1a; 1、结合springboot后端与鸿蒙的结合运用。 2、Log日志查看console语句的信息。 3、引入 import http from ohos.net.http。 4、调用springboot后端提供的链接发送post 5、TextInput的…

minio集群通过mc mirror命令进行定时备份,支持X86和arm两种架构

文章目录 前言一、思路二、使用步骤1.下载mc二进制文件2.手动测试备份命令3.配置定时任务4.成功截图 总结 前言 通过mc mirror命令对minio集群进行定时备份。 一、思路 通过mc mirror命令配合crond定时任务进行周期性的备份 二、使用步骤 1.下载mc二进制文件 wget https:…

三大能力升级,为老项目重构开辟新路径

在软件技术飞速迭代的今天&#xff0c;老项目重构是开发者们绕不开的难题。接口实现缺失、业务逻辑矛盾、架构规划偏离等问题如同拦路虎&#xff0c;让重构工作举步维艰。而传统的 AI 辅助方式&#xff0c;因未充分关联项目实际情况&#xff0c;犹如 “空中造楼”&#xff0c;难…

AES加密

AES加密算法详解 AES&#xff08;Advanced Encryption Standard&#xff09;是一种对称密钥分组加密算法&#xff0c;用于保护电子数据的安全性。其核心特点是通过相同的密钥进行加密和解密&#xff0c;属于对称加密体系。。以下从核心特性、加密流程及安全性三方面展开说明&a…

关于联咏(Novatek )自动曝光中Lv值的计算方式实现猜想

目录 一、常见Lv对应的实际场景 二、常见光圈值 三、最小二乘法计算SV中的系数K

[docker]镜像操作:关于docker pull、save、load一些疑惑解答

在使用 Docker 的过程中&#xff0c;镜像管理是极其重要的一环。无论是拉取、保存还是加载镜像&#xff0c;每一个步骤都可能遇到一些疑问或者误区。 本文将结合实际案例&#xff0c;对常见的 Docker 镜像操作问题进行系统性总结&#xff0c;帮你更好地理解 Docker 镜像的工作机…

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈

【导读】 本文针对无人机&#xff08;UAV&#xff09;视频中目标尺寸小、运动快导致的多目标跟踪难题&#xff0c;提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪&#xff08;贴合无人机场景特性&#xff09;&#xff0c;并改进传统外观匹配算法以关联此类检测…

什么是渗透测试,对网站安全有哪些帮助?

在网络安全的战场中&#xff0c;网站如同暴露在数字世界的堡垒&#xff0c;时刻面临着黑客攻击的威胁。而渗透测试&#xff0c;就像是为网站进行一场 “模拟攻防演练”&#xff0c;它以黑客的思维和手段&#xff0c;主动出击&#xff0c;探寻网站潜在的安全漏洞。究竟什么是渗透…

KU115LPE-V10型FPGA加速卡

KU115LPE-V10是一款基于PCI Express总线通信的FPGA加速类产品。 该产品基于Xilinx公司的的高性能Kintex Ultra-Scale FPGA设计&#xff0c;配置最大两组DDR4缓存单元&#xff0c;每组最大支持4GB容量&#xff0c;72bit&#xff08;包含ECC&#xff0c;8bit&#xff09;&#x…

【笔记】Blockchain

区块链Blockchain是一种分布式数据库技术&#xff0c;其核心特点在于去中心化、不可篡改和透明性。它通过一系列按照时间顺序排列的数据块&#xff08;即“区块”&#xff09;组成&#xff0c;每个数据块都包含了一定时间内的一系列信息交易&#xff0c;并通过密码学方法确保这…

GitHub Desktop Failure when receiving data from the peer

目录 安装Github Desktop简易省流助手 解决 Git 克隆时出现的 "Failure when receiving data from the peer" 错误1. 网络连接问题原因&#xff1a;解决办法&#xff1a; 2. Git 配置问题原因&#xff1a;解决办法&#xff1a; 3. GitHub 服务故障原因&#xff1a;解…

疏锦行Python打卡 DAY 27 函数专题2:装饰器

def logger(func):def wrapper(*args, **kwargs):print(f"开始执行函数 {func.__name__}&#xff0c;参数: {args}, {kwargs}")result func(*args, **kwargs)print(f"函数 {func.__name__} 执行完毕&#xff0c;返回值: {result}")return resultreturn wr…

大模型布署如何选择GPU资源?

当前主流GPU型号及其显存大小&#xff08;显存“大小”&#xff09;的详细分类汇总&#xff0c;结合消费级、专业工作站级及数据中心级三大应用场景&#xff0c;数据综合自行业常用型号及最新产品信息&#xff08;截至2025年6月&#xff09;&#xff1a; &#x1f3ae; 一、消费…

目标检测——YOLOv12算法解读

论文&#xff1a;YOLOv12: Attention-Centric Real-Time Object Detectors (2025.2.18) 作者&#xff1a;Yunjie Tian, Qixiang Ye, David Doermann 链接&#xff1a;https://arxiv.org/abs/2502.12524 代码&#xff1a;https://github.com/sunsmarterjie/yolov12 YOLO系列算法…