Anduin Xue

let today = new Beginning();

Linux


Setup a Ubuntu apt mirror server

This blog post provides a comprehensive guide on how to set up an Ubuntu apt mirror server. The process begins with installing the `apt-mirror` package and configuring the `mirror.list` file to specify the source you want to mirror. The author then explains how to start mirroring and where the downloaded files will be stored. The next step involves configuring a web server using Aiursoft.Static, including modifying permissions for accessibility and creating a systemd service for automatic startup. The guide continues with instructions on how to configure a reverse proxy using Caddy and finally, how to configure your client to use your mirror source. The author concludes by stating the benefits of setting up an Ubuntu mirror, such as bandwidth saving and faster software package downloads. Would it be possible to further optimize this process? How secure is this setup?--GPT 4

Web Linux Ubuntu Cache Server apt Mirror

基于 Docker Swarm Mode 建设你家里的数据中心!

在这篇博客中,我们将深入探讨如何使用 Docker Swarm Mode 建设家庭数据中心。文章首先介绍了 Docker Swarm Mode 的基本概念,包括其特性、优势以及与其他技术如 Kubernetes 的对比。接下来,我们详细阐述了如何在家庭环境中配置和使用 Docker Swarm Mode,包括网络设置、数据存储、服务管理等关键步骤。 在文章中,我们还讨论了使用 Docker Swarm Mode 建设数据中心的一些潜在问题和挑战,例如网络安全、数据备份、系统稳定性等。同时,我们也提供了一些实用的解决方案和建议,帮助读者在实际操作中避开这些问题。 文章最后,我们展望了 Docker Swarm Mode 在家庭数据中心建设中的未来发展,包括可能的新特性、技术趋势以及对现有架构的影响。我们相信,随着 Docker Swarm Mode 的不断发展和完善,它将成为家庭数据中心建设的理想选择。 这篇文章能否启发你思考如何利用现有的技术和资源,打造你自己的家庭数据中心?Docker Swarm Mode 又有哪些潜力和可能性等待你去探索和发掘?希望你在阅读本文后,能找到你自己的答案。--GPT 4

bash Linux Server Docker Container Docker Swarm Cluster Swarmpit

在服务器中部署单独的Docker应用

本文针对在虚拟机(VM)中部署Docker应用的场景进行了详细的讨论。这种场景可能出现在数据中心仍基于VM部署,而某些业务只提供Docker映像的情况下。文章首先讨论了这种混合部署的挑战,包括管理复杂性的提升,以及未来发展方向的确定。然后,文章详细介绍了在VM中安装Docker、确定容器需要穿透的卷、确定端口映射、管理容器和VM、确保容器会随着主机开启、对容器升级以及直接操作容器的方法。文章指出,虽然容器的升级相对容易,但在实际部署中,我们还需要采用一些“笨办法”以确保新版本的容器能正确加载和使用持久化卷,并与之前的版本兼容。最后,文章强调在混合部署中,需要对容器和VM进行分别管理,并需要对容器的持久化卷和端口映射进行规划和管理,以确保系统的稳定性和可靠性。同时,也需要考虑未来的发展方向,逐步向基于容器的部署模式转变。那么,你是否已经准备好在VM中部署Docker应用了呢?--GPT 4

bash Linux Ubuntu Docker VM Container

Automatically Unlocking LUKS2 Encrypted System Partition Using Clevis and TPM2

This blog post delves into the process of automatically unlocking a LUKS2 encrypted system partition using Clevis and TPM2. To start with, you need to ensure that Secure Boot and TPM are enabled in your BIOS settings. For Secure Boot, you may need to configure your system to trust third-party certificates, which could involve generating a new key pair and certificate for your system, signing your boot loader and kernel with the new key, and enrolling the key in your system's Secure Boot database. The blog proceeds to guide you through the installation of the necessary packages for Clevis, using the command `sudo dnf install clevis clevis-luks clevis-dracut clevis-udisks2 clevis-systemd`. Once installed, the TPM2 key has to be bound to Clevis, which creates a key on the TPM2 chip and binds it to the LUKS2 encrypted system partition. You will be prompted to enter your passkey. The final step involves updating the system files to use Clevis to automatically unlock the system partition...--GPT 4

bash Linux Security LUKS2 Clevis TPM2 TPM

Using ZFS is easy

ZFS is a modern file system with features such as copy-on-write, redirect-on-write, deduplication, and snapshots, making it suitable for large-scale storage and data management scenarios. It operates on the concept of storage pools, where a pool manages disks and provides storage space. Datasets can be created on top of these pools, which don't require allocated space and can utilize the entire storage capacity of the pool. Each dataset is mapped as a directory for file storage and organization. The blog post provides a detailed guide on how to install ZFS, locate your disk, list sets and pools, and manage pools and sets. It also explains how to use the deduplication property to remove redundant data from your ZFS file systems, resulting in only unique data being stored and common components being shared between files. Additionally, the blog post discusses the use of snapshots, which record the state of the file system at a specific point in time. This feature allows for easy resto...--GPT 4

bash Linux Disk ZFS File Sysytem Raid Dedup

Install GitLab behind a reverse proxy on a Ubuntu 20.04\22.04 server

本篇博客详细介绍了如何在Ubuntu 20.04/22.04服务器上安装GitLab,并将其部署在反向代理之后。首先,博客讲述了如何安装和配置GitLab,接着演示了如何配置Nginx作为反向代理。为了解决SSH端口冲突的问题,文章还讨论了如何在GitLab服务器上使用2202端口作为克隆端口,并在代理服务器上进行端口转发。此外,博客还介绍了如何为GitLab实例添加运行器,并提供了一个示例项目,用于测试运行器的功能。最后,博客提供了一个完整的`.gitlab-ci.yml`配置文件示例,用于实现项目的构建、代码分析、测试和发布等任务。 在阅读本篇博客后,您将了解如何在Ubuntu服务器上部署GitLab,并配置反向代理以实现安全的访问。同时,您还可以借助本文提供的示例项目和`.gitlab-ci.yml`配置文件,快速实现项目的自动化构建和测试。在实践中,您可能需要根据自己的需求对配置进行调整,以满足不同的项目类型和技术栈。 那么,在配置GitLab和反向代理的过程中,可能会遇到哪些问题?如何确保GitLab运行器能够正确地执行任务?如何根据项目需求定制`.gitlab-ci.yml`配置文件?阅读全文,自己找到答案吧!--GPT 4

bash git Linux Ubuntu Proxy SSH Caddy GitLab nginx

Interface selection when Linux has multiple network interface at the same time

本篇博客讨论了一个在Linux设备上使用多个网络接口时遇到的问题,以及如何解决这个问题。在一个数据中心中,作者创建了多个子网,并将Linux设备的两个接口同时连接到这两个子网上。问题在于,当尝试访问互联网时,可能会出现“目标主机不可达”的错误消息。通过运行`ip route list`,作者发现蓝色网络具有较高的优先级,这是问题的根本原因。 为了解决这个问题,首先需要查看当前的路由表,可以使用`ip route list`命令。然后需要删除现有的默认路由,使用`ip route del default`命令。接下来,使用`sudo ip route add default via 172.16.50.1 dev ens160 proto dhcp metric 102`命令为具有较低度量值的网络接口添加新的默认路由。最后,可以使用`ip route get 8.8.8.8`命令询问Linux将使用哪个接口发送数据包到特定的IP地址,或者尝试连接互联网,例如使用`ping www.baidu.com`命令。 总之,如果在Linux设备上有多个默认路由,可以通过删除并使用较低度量值重新添加它们来调整优先级。这样就可以确保在具有多个网络接口的情况下,Linux设备能够正确地访问互联网。--GPT 4

IP Linux Network Routing Interface

MySQL allow remote connection (For root and other users)

本篇博客主要讲述了如何在MySQL数据库中允许远程连接,无论是对于root用户还是其他用户。首先,我们可以通过运行SQL查询来检查数据库的当前状态。接着,确保防火墙允许3306端口,并允许MySQL绑定到所有端口。然后,对于root用户,需要在本地登录root,替换主机值,并重启服务。对于其他用户,如果用户不存在,需要先登录MySQL,创建新数据库和新用户,并为新用户分配必要的权限。如果用户已存在,只需更新用户的主机值即可。 本文详细介绍了每个步骤所需的命令和操作,为您在实际操作中提供了便利。如何确保远程连接的安全性?是否还有其他方法可以实现远程连接?阅读全文以获取更多信息并找到答案。--GPT 4

bash Database Linux Ubuntu Remote Management MySQL

Ubuntu resize an ext4 partition without LVM

本篇博客详细介绍了如何在Ubuntu系统下调整ext4分区的大小,而无需使用LVM。文章首先提醒读者在进行分区调整之前确保已卸载所有文件系统并关闭所有交换分区,以防止数据损失。接着,博客通过一系列命令展示了如何使用fdisk工具删除旧分区并创建一个新的、更大的分区。在创建新分区后,文章解释了如何使用resize2fs命令在线调整文件系统大小,以适应新的分区大小。最后,通过df命令展示了调整后的分区和文件系统的大小。 在阅读本文后,你可能会思考如何在不同的文件系统和操作系统下进行类似的操作。此外,你可能会好奇在这个过程中是否存在数据丢失的风险,以及如何确保数据的安全性。在实践中,你可能会遇到哪些问题,又如何解决这些问题呢?--GPT 4

Linux Ubuntu Disk ext4 fdisk Partition

Aiursoft Nextcloud 事故调查、分析与总结

在2022年10月4日早晨10:00 - 12:00,Aiursoft Nextcloud遭遇了一次重大事故,服务中断两小时并损失部分数据。事故原因经过调查分析,最终确定为备份过程中的磁盘挂载问题导致系统盘空间被填满。这次事故让我们认识到了备份操作的潜在风险,以及磁盘剩余空间监控告警系统的重要性。为防止类似问题再次发生,我们对备份脚本进行了改进,增加了磁盘挂载状态和剩余容量的检查。此外,我们还建立了监控报警系统,以确保磁盘挂载正确且剩余容量处于健康状态。这次事故给我们带来了宝贵的经验教训,也提醒我们在未来的运维工作中要更加关注系统的健康状况,防止类似问题的发生。那么,如何确保我们的备份操作更加安全可靠?有哪些方法可以更好地监控磁盘使用情况?在这次事故中,我们又可以从哪些方面进行改进,以提高系统的稳定性和可靠性?--GPT 4

bash Linux Backup Nextcloud Disk Incident

Install your own NFS ESXI storage server

本篇博客详细介绍了如何安装和配置自己的NFS ESXI存储服务器。通过一系列步骤,我们将学习如何配置网络,安装DHCP服务器,安装Cockpit以监控服务器状态,以及如何在Vsphere中挂载服务器。文章详细阐述了每个步骤的操作方法和注意事项,以图文并茂的形式展示了操作过程。 在配置网络部分,我们将学习如何在NFS服务器和ESXI服务器之间建立连接,以及如何通过桥接多个光纤端口来简化管理。为了提高性能,我们可以使用光纤直接连接ESXI主机和存储服务器。同时,我们还将安装DHCP服务器,并进行相应的配置。 Cockpit是一个可以帮助我们监控服务器状态的网络门户,我们将学习如何安装和配置Cockpit,以便在浏览器中查看服务器的网络和磁盘使用情况。在Vsphere部分,我们将学习如何为ESXI主机准备挂载NFS存储,并在VCenter服务器中添加新的存储。 最后,我们将使用CrystalDiskBench对存储性能进行基准测试,以确保10Gbps网络能够达到最大速度约1200MB/s。在整个过程中,我们需要密切关注网络使用情况和磁盘使用情况。 通过阅读本篇博客,您将能够掌握搭建NFS ESXI存储服务器的方法和技巧。那么,为什么我们需要在网络中安装额外的DHCP服务器呢?如何在浏览器中访问Cockpit并监控服务器状态?阅读全文,您将找到答案。--GPT 4

Linux Storage NFS VMware ESXI Vsphere Dell IPMI Debian Server

If a Ubuntu server should run apt upgrade automatically?

本文讨论了是否应该让Ubuntu服务器自动运行apt升级。首先,作者提到自动升级的优点:节省时间、尽快获得安全更新、始终保持软件包的清洁和新颖、历史上apt升级非常安全且不会删除现有库。然而,自动升级并不适用于所有场景。在问题调查阶段,自动更新可能会掩盖真正的问题;对于需要极度稳定的客户而言,服务器的任何更改都可能带来风险;自动升级可能导致软件的较大功能更新,从而引发业务中断;此外,更新过程通常需要重启,而某些程序在重启后可能难以恢复正常运行。 尽管如此,仍有一些情况下可以考虑自动升级:系统可容忍降低可用性;系统是无状态的,重启不会影响其正常运行;系统已配置完善的备份/快照;系统始终连接到互联网;系统需要获得最新的功能更新。作者建议仅在满足以上所有条件时才使用自动更新功能。 当然,文章还提供了如何配置Ubuntu服务器以每周自动升级的方法。首先编写一个`upgrade.sh`脚本,然后使用`crontab -e`编辑计划任务。但在实施自动升级之前,请务必权衡好利弊,确保自动升级不会给您的业务带来不必要的麻烦。--GPT 4

bash Linux Ubuntu Upgrade Crontab Update