Linux

Chinese, Simplified
SEO Title
Linux

CentOS 7 在 Apache 服务器上安装 Let's Encrypt SSL

Chinese, Simplified

先决条件
以 sudo 身份访问服务器。
正确配置的域和虚拟主机。
如果您具备这些先决条件,那么让我们开始吧。

目录

  • 安装依赖
  • 安装 Certbot——让我们加密客户端
  • 生成 SSL 证书
  • 设置自动续订
  • 检查证书状态
  • 删除 Certbot 证书

第 1 步:安装依赖项


要安装 Certbot,我们需要安装 EPEL 存储库和 mod_ssl。 运行此命令以安装两者:

sudo  yum install -y epel-release mod_ssl


第 2 步:安装 Certbot——让我们加密客户端


从 EPEL 存储库,让我们安装 Certbot 客户端:

sudo yum install -y python-certbot-apache


第 3 步:生成 SSL 证书


我们有必要的模块来生成 Let's Encrypt SSL。 要为单个域生成证书,请运行以下命令:

sudo certbot --apache -d example.com


要为多个域或子域生成 SSL,请运行以下命令:

sudo certbot --apache -d example.com -d www.example.com


此处,example.com 是基本域。

您还可以通过选择域名来生成 SSL 证书。为此,请运行以下命令以显示所有托管域:

sudo certbot --apache


选择一个选项并根据需要运行该命令。安装成功后,您将看到类似于此消息的消息:

重要笔记:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-10-24. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le


第 4 步:设置自动续订


我们知道 Let's Encrypt 证书的有效期为 90 天。但是我们可以很容易地更新证书。只需在到期日期之前运行此命令:

sudo certbot renew


我们还可以设置一个 cronjob 来自动更新。打开定时任务:

crontab -e


然后添加这一行:

0 0 * * 1 /usr/bin/certbot renew >> /var/log/sslrenew.log


第 5 步:检查证书状态


我们已经成功安装了 Let's Encrypt SSL。现在让我们通过访问此 URL 来检查 SSL 证书的状态:

https://www.ssllabs.com/ssltest/analyze.html?d=example.com


第 6 步:删除 Certbot 证书


要删除证书,我们必须运行以下命令:

# 选择域名


sudo certbot delete

# 直接分配域名


sudo certbot delete --cert-name example.com


 文章结束了。谢谢阅读

原文:https://shouts.dev/centos-7-install-lets-encrypt-ssl-on-apache-server

本文:https://jiagoushi.pro/centos-7-install-lets-encrypt-ssl-apache-server

SEO Title
CentOS 7 Install Let’s Encrypt SSL on Apache Server

【Linux】CentOS Linux 8将于2021年结束,并将重点转移到CentOS Stream上

Chinese, Simplified

CentOS Linux 8 will end at 2021: Project shifts focus to CentOS Stream

 

CentOS是社区企业操作系统的首字母缩写,它是RHEL(红帽企业Linux)的100%重建。虽然RHEL需要花钱,但CentOS提供了一个免费的社区支持的企业Linux发行版。那些擅长Linux并且不想支付RHEL支持费用的开发人员和公司总是选择CentOS来节省资金并获得企业级的软件。然而,免费的旅程结束了。红帽公司宣布,作为RHEL 8的重建版本,CentOS Linux 8将于2021年结束。CentOS Stream在那之后继续,作为红帽企业Linux的上游(开发)分支。

CentOS项目历史

我们在2004年5月看到了CentOS的第一个版本,称为CentOS版本2,它是从RHEL 2.1AS (advance server)派生出来的。它在Linux爱好者、web托管公司、开发人员和HPC社区中迅速走红。CentOS免费提供企业级软件,提供自我支持,社区支持由电子邮件邮件列表或在线论坛驱动。当您不再需要支持或培训合同时,这是节省昂贵的RHEL合同费用的好方法。

什么是CentOS Stream?

CentOS Stream在Fedora和RHEL之间。换句话说,CentOS Stream是RHEL的滚动发行版。它充当Fedora和RHEL之间的网关:

Upstream ➡️ Downstream ➡️ RHEL

所以我们有:

Fedora Linux ➡️ CentOS Stream ➡️ RHEL

CentOS项目将重点转移到CentOS Stream,CentOS Linux 8将于2021年结束

从公告邮件中:

CentOS项目的未来是CentOS Stream,在接下来的一年里,我们将把重点从CentOS Linux,红帽企业Linux (RHEL)的重建,转移到CentOS Stream,它跟踪当前RHEL发行版之前的情况。作为RHEL 8的重建版本,CentOS Linux 8将于2021年底结束。CentOS Stream在那之后继续,作为红帽企业Linux的上游(开发)分支。当CentOS Linux 8 (RHEL8的重建)结束时,您最好的选择是迁移到CentOS Stream 8,它是CentOS Linux 8的一个小改进,并且有像传统CentOS Linux版本一样的定期更新。如果您在生产环境中使用CentOS Linux 8,并且担心CentOS Stream将不能满足您的需要,我们鼓励您联系红帽有关选项。

CVE在CentOS Stream中将如何处理?

安全问题在当前RHEL版本中解决后,将在CentOS Stream中更新。显然,在禁运解除之前,禁止发布的安全文件不能公开发布。虽然没有任何用于计时的SLA,但红帽工程师将根据这些版本构建和测试其他包。如果它们没有滚入更新,则它们构建的其他软件可能会受到影响,因此需要重做。因此,获得这些更新是他们的既得利益,这样就不会影响到他们的其他版本,获得安全更新也不会有任何问题。

换句话说,CentOS Streams的用户将在所有人之前测试RHEL并报告漏洞,但是在RHEL解决之前,他们不会得到安全更新。非常棘手的情况。

这是否意味着CentOS Stream现在是RHEL的BETA测试平台?

按照常见问题解答:

不。CentOS Stream将在RHEL之前得到修复和特性。一般来说,我们期望CentOS Stream比RHEL有更少的bug和更多的运行时特性,直到这些包进入RHEL的发行版。

如果您使用CentOS进行CI,则没有选择,因为您不能使用RHEL开发人员许可证。另外,请注意CentOS Stream有时会有不同的ABI/API,因此您不能在本地测试或构建EPEL包。

CentOS社区能继续开发/重建CentOS linux吗?

Red Hat说他们我们不会把硬件、资源,或要求志愿者努力努力,我们也不会允许CentOS品牌用于这样一个项目,因为他们觉得它稀释我们正在试图做的重新关注CentOS Stream。也就是说,代码是开源的,他们不会试图阻止任何人选择使用它或从代码构建自己的包。

对CentOS 7没有影响

CentoS 7将在RHEL 7剩余的生命周期内继续生产。所以对CentOS 7用户没有影响。

结论

我认为这是红帽子的错误举动。CentOS的主要优点是提供了与RHEL 100%的二进制兼容性。在工作中,我们主要使用CentOS进行测试,因为我们的目标是RHEL,但是这样可以节省很多钱。CentOS是我们针对MySQL、PHP、Nginx、Java和许多其他应用程序的“严肃的测试平台”。一旦应用程序准备就绪,我们将把它部署到RHEL 8集群上。当然,我们可以获得RHEL开发人员订阅,但只有一个免费的Red Hat开发人员订阅可以添加到用户帐户这样的目的。因此,如果你有七个开发者,另外六个开发者可以在developers.redhat.com上创建他们自己的用户账户。我们必须处理额外的账目。因此,如果开发人员想要一个免费的RHEL,下一个最好的选择可能是Oracle Linux。

许多用户将不会高兴。我们可能也会看到一个新的分叉,但只有时间会告诉我们答案。其他Linux发行版,如Ubuntu或Debian LTS也会有很多新用户。

红帽从大规模的CentOS社区中获益良多,这种改变是不必要的。这是我诚实的意见。你觉得怎么样?您是否受到了这个新变化的影响,如果是的话,哪个Linux发行版会选择取代CentOS 8?

 

本文:http://jiagoushi.pro/node/1375

讨论:请加入知识星球【首席架构师圈】或者小号【jiagoushi_pro】或者QQ群【1110777】

SEO Title
CentOS Linux 8 will end in 2021 and shifts focus to CentOS Stream

【Linux】这些是用于编程的最佳Linux发行版

QQ群

视频号

微信公众号

知识星球

Chinese, Simplified

您是程序员、工程师还是系统管理员,希望最大限度地利用您的计算机?然后,您需要最好的Linux发行版进行编程。我们选择Fedora是因为它突破了Linux的限制,拥有最新的开源软件。

我厌倦了解释Linux没有那么难。事实上,如果你在Android手机或Chromebook上阅读这篇文章,恭喜你!您使用的是Linux,您可能不太了解它。但还有一些Linux发行版需要专业知识才能充分利用

你为什么要找麻烦?因为你是一名程序员、工程师或系统管理员,希望从Linux中获得最大的收益。或者,你是一个超级用户,你想尽可能地推动你的电脑。如果是你,那么这些就是你的发行版

Fedora

适合编程/程序员的最佳Linux发行版

 

fedora
 

优点和缺点

赞成的意见

  • 易于安装和设置
  • 优秀的开发人员门户网站,提供专门的指南

缺点

  • 更新到新版本可能很困难

 

功能:

开发人员门户和工具|由最新的Linux内核支持|集成开发环境

你知道红帽的社区Linux发行版Fedora将是我名单上的第一个,也是我们的最佳总体选择。它是推动Linux极限的主流发行版。它由最新的Linux内核和最新的开源软件提供支持。

特别是,Fedora是程序员选择的Linux。Linus Torvalds在开发工作中使用Fedora,这一数字不亚于Linus Torvalds。我需要说更多吗?

然而,有时候,当你在运行一个前沿发行版时,你可以削减自己。Fedora也被称为“前沿Linux”,这是有原因的。

另一方面,Fedora易于安装和设置。你不需要成为Linux专家就可以开始使用它

对于程序员来说,Fedora还拥有一个优秀的开发者门户。它提供了开发命令行、桌面、移动和web应用程序的专用指南

Fedora开发者门户网站还提供了一个开发Arduino和Raspberry Pi等硬件设备的优秀指南。最后但并非最不重要的是,它附带了顶级集成开发环境(IDE)Eclipse for Java、C/C++和PHP以及Vagrant等开发工具,这是一种用于创建可复制、可移植容器或基于虚拟机(VM)的开发环境的工具。

除非您正在开发Debian/Uubuntu系列程序,否则Fedora应该是您开发操作系统的首选。对于该组的开发人员,我推荐最新版本的Ubuntu

 

Arch Linux/Manjaro Linux

用于编程的最佳Linux发行版,可对桌面进行绝对控制

 

arch-linux-manjaro-linux
 

优点和缺点

赞成的意见

  • 完全自定义桌面
  • 易于切换操作系统档位

缺点

  • 定制对某些人来说可能是压倒性的

 

功能:

同时支持多个内核|包括GNOME、KDE Plasma和XFCE

您是否希望设置一个Linux桌面,使其正常工作并看起来完全符合您的要求?如果是你,那么Arch Linux值得你关注。有了Arch,一切都在你的控制之下。这既是好消息也是坏消息

虽然Arch的口号是“保持简单”,但用户眼中的简单。对于第一个“桌面”是伯恩外壳的人来说,这并不难。但是,对于那些没有使用命令行长大的人来说,这是另一回事。

你看,Arch只有一个命令shell。这完全取决于您将使用哪种桌面环境,以及如何进行定制。通过汗水和辛劳,您可以获得满足您的确切要求和需求的产品。这不容易。即使有其优秀的ArchWiki文档网站的帮助,您也需要做很多工作。但是,当你完成后,你会有一个独特的桌面来调用你自己的桌面。

或者,如果这听起来工作量太大,您可以使用Manjaro Linux。这个发行版从安装和运行Arch中消耗了大量的心血、汗水和眼泪。它有三个主要的桌面版本:GNOME、KDE Plasma和XFCE。 

同时,如果你想切换Linux内核,Manjaro是少数几个可以轻松切换操作系统的发行版之一。它同时支持多个内核。您只需重新启动系统,在启动菜单中进行选择,然后返回桌面,并在下面运行一个新内核。 

这是大多数人都想做的吗?没有。但是,如果你真的想测试Linux内核,那么Manjaro是适合你的

 

Gentoo/Sabayon Linux

用于编程的最佳基于源代码的Linux发行版

 

gentoo-sabayon-linux
 

优点和缺点

赞成的意见

  • 完全控制桌面

缺点

  • 不易使用

 

功能:自定义|功能强大|使用源代码

你真的,真的想用Linux深入研究吗?如果是这样,那么基于源代码的发行版Gentoo适合您。对于初学者来说,Gentoo没有安装程序。正如其开发人员所说,“你是安装者。”这意味着,“你可以应用你想要的所有定制”——一旦完成,你就吸收了Gentoo手册。除非你是Gentoo的专家用户,否则我建议你在另一台电脑上保存一本手册。你将需要你所能得到的一切帮助来让Gentoo开始运转。

完成后,您还需要了解Portage软件包系统的详细信息。与几乎所有其他Linux发行版使用二进制软件打包系统(如Red Hat的RPM和Debian的APT)不同,Portage是基于源代码的。因此,例如,如果你想在Portage中安装一个程序,你实际上是在你的机器上编译应用程序的源代码。您还可以使用USE标志自定义来“编辑”源代码。

容易做吗?见鬼,不!但如果你想绝对控制桌面上的内容,Gentoo适合你。

但是,如果你想要很大的力量,但没有那么多的工作?然后,就像Arch和Manjaro一样,您可以将Sabayon Linux与Gentoo一起使用。该发行版的开发人员的目标是通过以优雅的格式提供最新的开源技术,提供最佳的“开箱即用”用户体验。在Sabayon,一切都应该正常工作。我们提供了一个稳定可靠的前沿操作系统

本质上,Sabayon为您做出大部分Gentoo设置决策。你仍然可以得到很多控制,但你不必转动每个旋钮和拨动每个开关就能得到一个工作系统。 

展望未来,Sabayon将更名为MoaccinoOS。这与Gentoo的主要区别在于它使用了新的基于容器的包装系统Luet。这仍然是测试版,我只能向有经验的开发人员和用户推荐这个版本。

 

Kali Linux

为安全专家及其黑客敌人编程的最佳Linux发行版

 

kali-linux
 

优点和缺点

优点

  • 由一家安全公司建造
  • 安装和设置很简单

缺点

  • 默认软件包不太好

 

功能:专为黑客设计|基于Debian构建|易于设置和安装

现在,换一种不同的方式。Kali Linux是一个为渗透测试或黑客攻击而设计的Linux发行版。感谢Mr。机器人,Kali Linux是最著名的黑客发行版

Kali Linux是安全公司Offensive security的开发人员的作品。它建立在Debian之上。历史上,它可以追溯到基于Knoppix的数字取证和渗透测试发行版BackTrack。

虽然安装和设置Kali与设置任何Debian发行版一样简单,但它的默认软件包却是另一回事。例如,默认情况下,没有为您的默认办公套件提供LibreOffice,也没有为电子邮件客户端提供Thunderbird。相反,它配备了OWASP ZAP等安全程序,用于针对安全问题攻击网站;SQLMAP,自动检测和利用SQL注入漏洞;以及THC Hydra,一种流行的密码破解器

现在Kali Linux不能把你变成黑客或安全专家。要做到这一点,你真的必须知道计算机、编码和安全是什么。它只是为您提供了入门所需的工具和专家需求

如果你只是想伪装成黑客,那就从黑客打字机开始吧。享受

 

系统救援

最好的Linux发行版,用于编程,让死亡的PC重获新生

 

systemrescue
 

优点和缺点

优点

  • 设计用于修复损坏的计算机
  • 附带有用的程序

缺点

  • 并非永久性操作系统
  • 不易使用

 

功能:从USB驱动器、DVD驱动器或CD驱动器启动|包括GNU Parted、ddrescue和rsync |重新启动旧的和过时的计算机

破坏系统,或者检查它们是否可以被破坏的另一面是修复已经损坏的系统。这些修复Linux发行版中最好的是SystemRescue。这个操作系统,也被称为SystemRescueCD,它可以让你了解它有多旧,是用来修复损坏的计算机的。

这是我和其他Linux专家在遇到Windows安装失败和硬盘损坏时需要帮助的发行版。它并不是一个永久的操作系统。相反,您可以从USB驱动器、DVD驱动器,或者,是的,甚至现在也可以从CD驱动器启动它。一旦启动,你就可以用它来探索一台半死不活的电脑,并尝试让它复活。

它不容易使用。就像Kali一样,它为你提供了完成工作所需的工具。在这种情况下,它附带了GNUParted等程序,用于操作磁盘分区和文件系统;ddrescue是一种数据恢复工具,通过从损坏的存储设备复制块级别的数据来工作;rsync是一个程序,用于通过本地网络将数据从故障驱动器克隆到另一台稳定的计算机。 

这些工具都不容易。我建议您在尝试救援故障系统之前,先阅读SystemRescue手册。也就是说,一旦你知道你在做什么,你就可以期待朋友和家人在他们的Windows电脑出现严重问题时能听到他们的消息

现在在System Rescue查看现在在SourceForge查看

最适合编程的Linux发行版是什么?

基于我们对功能、工具和可用性的专家分析,Fedora是最适合编程的Linux发行版。然而,您可能想要/需要一些不同的东西,因此以下是我们的首选比较:

Linux 发行版

设计用于

随附

Fedora

编程和程序员

Eclipse for Java, C/C++, PHP, and Vagrant

Arch Linux/Manjaro Linux

完整的桌面定制

GNOME, KDE Plasma, and XFCE

Gentoo/Sabayon Linux

控制桌面

N/A

Kali Linux

安全专业人员

OWASP ZAP, SQLMAP, and THC Hydra

SystemRescue

陈旧或过时的计算机 

GNU Parted, ddrescue, and rsync

哪个Linux发行版适合您?

嗯,这真的取决于你的技能水平、知识以及你想从桌面上得到什么。在选择这些选项时,请考虑这些因素。

选择此。。。

如果你想。。。

Fedora

最佳整体选项

Arch Linux, Manjaro Linux

控制桌面

Gentoo/Sabayon Linux

基于源代码的选项

Kali Linux

为黑客设计的东西

SystemRescue

让一台死去的电脑复活

我们是如何选择这些桌面Linux选项的?

我已经运行Linux 29年了。Linux已经有30年的历史了。我对这个操作系统了如指掌。在那之前,我已经对第7版Unix咬过牙了。换句话说,我对Linux有一点了解。我在这里给出的意见是基于所有这些经验以及我多年来认识的许多Linux内核开发人员和发行版程序员的经验。也就是说,如果有任何错误,都是我的

我怎样才能成为Linux专家?

有很多方法可以学习如何成为Linux用户。一个很好的入门方法是Linux基金会的免费在线课程Linux简介。成为Linux专家需要更多

如果你想以Linux为生,我建议你获得Linux基金会认证系统管理员(LFCA)认证。从以下课程开始:Linux系统管理基础(LFS201)和Linux网络和管理(LFS211)

或者,如果您确定您的未来在Red Hat Enterprise Linux(RHEL),请从Red Hat System Administration I(RH124)和Red Hat System Administration II(RH134)开始。您的目标是成为Red Hat认证系统管理员(RHCSA)

如果您已经熟悉Linux,也可以通过RHCSA快速通道课程(RH199)快速进入RHCSA

为什么这样做?当然,要靠Linux谋生。根据Payscale的数据,一个Linux系统管理员平均每年可以赚76880美元。那不是鸡饲料。认证可以帮助你从其他申请人中脱颖而出

Linux上最好的书是什么?

没有什么比使用Linux更好的了,但有一些书可以帮助您掌握它。

学习Linux的最好方法是使用它,并使用“man”命令,如RTF

也就是说,还有一些有用的书可以让你从对Linux了解一二的人变成真正的专业人士。我有一句话要提醒你:一定要阅读这些书中的最新版本。一本让你快速了解init如何运行Linux实例的书对你没有任何好处,因为它基本上已经被systemd取代了

以下是我的一些最爱:

  • Linux如何工作,第三版:每个超级用户都应该知道的第三版。布莱恩·沃德(Brian Ward)的这本书涵盖了历史基础知识及其现代等效知识。因此,例如,除了涵盖Linux磁盘分区之外,它还涵盖逻辑卷管理器(LVM)。 
  • 威廉·肖特斯(William Shotts)的《Linux命令行:完整介绍第1版》提供了它所承诺的一切。在您了解了这一点之后,您现在只知道如何绕过Bash shell(最流行的Linux shell),而是如何使用sed、grep和awk等强大的shell程序的基础知识。曾经有一段时间,我通过掌握最后三人组来谋生
  • Richard Blum和Christine Bresnahan编写的Linux命令行和Shell脚本圣经第四版。掌握了Shotts书中的一切?好了,那么,你准备好继续阅读这本巨著了。这一新版本于2021年初出版,将带您了解基础知识,并从基础知识转向更高级的主题。它通过简单易懂的教程和示例实现了这一点。
  • 《Linux食谱:Linux用户和系统与网络管理员的基本技能》,Carla Schroder第二版。卡拉知道她的Linux。她做这件事的时间几乎和我一样长。这一对她早期经典的新更新带来了商品。本质上,如果你是Linux超级用户或系统管理员,它的食谱是一些最常见的情况下的小诀窍。我强烈推荐这本书,风格有趣。

什么是基本的Linux网站?

如果你真的想了解Linux,你想读我写过的所有东西……嗯,也许不是。说真的,如果你是一个真正的Linux专业人士,以下是你必须保留书签的网站。

要真正了解Linux内核的情况,您必须关注Linux内核邮件列表(LKML)。注意,我没有说要读。我不确定任何人真的能读到列表中的所有内容。它的信息量太大了。但是,随着你积累了经验,你将能够把小麦和谷壳分开。例如,Linus Torvalds发布的任何内容都值得一看,这是一个安全的赌注

我建议通过阅读LKML的常见问题解答来了解LKML。这将使人们更容易理解正在发生的事情。

如果这对你来说太多了——比如,我不知道你是否有生活或其他什么——你可以订阅LWN.net。有很多Linux新闻网站,但只有一个LWN。LWN由Linux内核维护者JonCorbet运行,深入了解Linux内核、开源软件和编码的细节。例如,我可以告诉您最新的Fedora版本;LWN将告诉你Fedora社区关于是否应该在开发发行版时使用非免费Git伪造的争论

不过,让我们假设,您只想了解一般的Linux新闻,而不是核心技术和编程信息。如果你是这样的话,聚合网站LinuxToday在收集Linux新闻、功能和最新教程方面做得很好。在这里,我要补充一点,你还可以找到我的许多故事的链接。 

你想知道你的新处理器是如何与Linux一起工作的吗?那么Phoronix是给你的。本网站涵盖内核新闻,但最著名的是它对最新Linux发行版和硬件的详细报告和基准测试。因此,如果您想了解Linux对英特尔软件保护扩展(SGX)的当前支持状态,或者了解Linux和Mesa驱动程序在Intel Core i5 12600K/UHD Graphics 770上的比较,以及它们在原始性能方面的相互比较,这里就是您的网站

最后,对于那些想了解Linux发行版的人,您可以选择DistroWatch。它跟踪每一个——我指的是每一个Linux发行版。据我统计,目前大约有600个发行版,其中大部分仍在积极开发中。这是跟踪他们所有人的地方。

什么是最轻量级的Linux发行版?

如果您正在寻找在旧计算机上运行的Linux版本,那么您应该考虑Absolute Linux。它允许您创建一个简单而不显眼的桌面,同时仍然提供预加载的基本程序,如Firefox用于web浏览,LibreOffice用于文字处理和创建电子表格。

Kali Linux发行版是否带有预装程序?

Kali Linux没有Firefox或LibreOffice之类的程序来帮助您开始浏览网页或起草报告。然而,它确实配备了许多安全工具,如Aircrack ng,以实现更安全的网络浏览和尸检,从而使您的Kali Linux桌面更容易运行其他开源程序和软件

是否有其他Linux桌面选项可供考虑?

以下是需要考虑的几个其他产品:

 

opensuse

openSUSE

View now at openSUSE

 

ubuntu

Ubuntu

View now at Ubuntu

 

linuxmint

LinuxMint

View now at Linuxmint

本文地址
https://architect.pub/these-are-absolute-best-linux-distros-programming
SEO Title
These are the absolute best Linux distros for programming

【基础设施】什么是Multipass?

QQ群

视频号

微信

微信公众号

知识星球

Chinese, Simplified

What is Multipass?

Multipass是一款适用于Linux、Windows和macOS的轻量级虚拟机管理器。它是为那些想要一个全新的Ubuntu环境的开发人员设计的,只需一个命令。它在Linux上使用KVM,在Windows上使用Hyper-V,在macOS上使用QEMU,以最小的开销运行虚拟机。它还可以在Windows和macOS上使用VirtualBox。Multipass将为您获取图像并使其保持最新。

由于它支持云初始化的元数据,您可以在笔记本电脑或工作站上模拟小型云部署。

Project Status

Service Status
CI Build Status
Snap Build Status
Codecov Codecov Status

Install Multipass

On Linux it's available as a snap:

sudo snap install multipass

For macOS, you can download the installers from GitHub or use Homebrew:

# Note, this may require you to enter your password for some sudo operations during install
# Mac OS users may need to disable their firewall to launch a multipass instance successfully
brew install --cask multipass

On Windows, download the installer from GitHub.

Usage

Find available images

$ multipass find
Image                       Aliases           Version          Description
core                        core16            20200213         Ubuntu Core 16
core18                                        20200210         Ubuntu Core 18
16.04                       xenial            20200721         Ubuntu 16.04 LTS
18.04                       bionic,lts        20200717         Ubuntu 18.04 LTS
20.04                       focal             20200720         Ubuntu 20.04 LTS
daily:20.10                 devel,groovy      20200721         Ubuntu 20.10

Launch a fresh instance of the current Ubuntu LTS

$ multipass launch ubuntu
Launching dancing-chipmunk...
Downloading Ubuntu 18.04 LTS..........
Launched: dancing chipmunk

Check out the running instances

$ multipass list
Name                    State             IPv4             Release
dancing-chipmunk        RUNNING           10.125.174.247   Ubuntu 18.04 LTS
live-naiad              RUNNING           10.125.174.243   Ubuntu 18.04 LTS
snapcraft-asciinema     STOPPED           --               Ubuntu Snapcraft builder for Core 18

Learn more about the VM instance you just launched

$ multipass info dancing-chipmunk
Name:           dancing-chipmunk
State:          RUNNING
IPv4:           10.125.174.247
Release:        Ubuntu 18.04.1 LTS
Image hash:     19e9853d8267 (Ubuntu 18.04 LTS)
CPU(s):         1
Load:           0.97 0.30 0.10
Disk usage:     1.1G out of 4.7G
Memory usage:   85.1M out of 985.4M

Connect to a running instance

$ multipass shell dancing-chipmunk
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)

...

Don't forget to logout (or Ctrl-D) or you may find yourself heading all the way down the Inception levels... ;)

Run commands inside an instance from outside

$ multipass exec dancing-chipmunk -- lsb_release -a
No LSB modules are available.
Distributor ID:  Ubuntu
Description:     Ubuntu 18.04.1 LTS
Release:         18.04
Codename:        bionic

Stop an instance to save resources

$ multipass stop dancing-chipmunk

Delete the instance

$ multipass delete dancing-chipmunk

It will now show up as deleted:

Name                    State             IPv4             Release
snapcraft-asciinema     STOPPED           --               Ubuntu Snapcraft builder for Core 18
dancing-chipmunk        DELETED           --               Not Available

And when you want to completely get rid of it:

$ multipass purge

Get help


multipass help
multipass help <command>

Get involved!

Here's a set of steps to build and run your own build of Multipass. Please note that the following instructions are for building Multipass for Linux only. These instructions do not support building packages for macOS or Windows systems.

Build Dependencies

cd <multipass>
apt install devscripts equivs
mk-build-deps -s sudo -i

Building

cd <multipass>
git submodule update --init --recursive
mkdir build
cd build
cmake ../
make

Running Multipass daemon and client

First, install multipass's runtime dependencies. On amd64 architecture, you can achieve that with:

sudo apt update
sudo apt install libgl1 libpng16-16 libqt6core6 libqt6gui6 \
    libqt6network6 libqt6widgets6 libxml2 libvirt0 dnsmasq-base \
    dnsmasq-utils qemu-system-x86 qemu-utils libslang2 iproute2 \
    iptables iputils-ping libatm1 libxtables12 xterm

Then run multipass's daemon:

sudo <multipass>/build/bin/multipassd &

Copy the desktop file multipass clients expect to find in your home:

mkdir -p ~/.local/share/multipass/
cp <multipass>/data/multipass.gui.autostart.desktop ~/.local/share/multipass/

Optionally, enable auto-complete in bash:

source <multipass>/completions/bash/multipass

Finally, use multipass's clients:

<multipass>/build/bin/multipass launch --name foo  # CLI client
<multipass>/build/bin/multipass.gui                # GUI client
本文地址
https://architect.pub
SEO Title
What is Multipass?

【虚拟化】扩展多路径虚拟机磁盘(设备上没有剩余空间)

QQ群

视频号

微信

微信公众号

知识星球

Chinese, Simplified

最近,我的一台多路径虚拟机上的空间用完了。我决定在这里写下扩展虚拟机磁盘大小的步骤。

请考虑下面的多路径虚拟机列表:

kenneth@laptop:~$ multipass list

Name                    State             IPv4             Image
altruistic-impala       Running           172.17.244.151   Ubuntu 22.04 LTS
awx                     Stopped           --               Ubuntu 22.04 LTS
database                Stopped           --               Ubuntu 22.04 LTS
haproxy                 Stopped           --               Ubuntu 22.04 LTS

The VM named altruistic-impala is the one concerned by the disk expansion. It has the following specs:

kenneth@laptop:~$ multipass info altruistic-impala

Name:           altruistic-impala
State:          Running
IPv4:           172.17.244.151
Release:        Ubuntu 22.04.3 LTS
Image hash:     870bd58b5c1e (Ubuntu 22.04 LTS)
CPU(s):         1
Load:           0.02 0.03 0.00
Disk usage:     7.6GiB out of 7.6GiB
Memory usage:   180.4MiB out of 892.2MiB
Mounts:         --

As you can see above, the VM has a 7.6GiB disk, used at 100% of its capacity.

I will expand the disk size to 32G (feel free to put with the desired size you want):

kenneth@laptop:~$ multipass stop altruistic-impala 
kenneth@laptop:~$ multipass set local.altruistic-impala.disk=32G  
kenneth@laptop:~$ multipass start altruistic-impala 

Note: Substitute altruistic-impala in all the commands of this article with the name of your target VM.

在这一点上,我应该完成。根据Multipass文档,以上步骤就足够了。虚拟机磁盘大小应该已经扩展,根分区的大小应该已经调整。但就我而言,我得到了一个惊喜:之前的说法部分属实。调整大小操作需要一小部分可用空间。

我为什么这么说?

因为我发现,如果您的虚拟机磁盘在进行扩展时没有剩余空间,磁盘大小会发生变化,但根分区不会自动调整大小。那么修改将不会反映在操作系统中。因此,在扩展磁盘之后,我需要手动扩展主分区,并从VM中扩展文件系统。如果你也处于同样的情况,请阅读。

您可以在VM上使用lsblk命令,如下所示进行验证:

kenneth@laptop:~$ multipass exec altruistic-impala -- lsblk

NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0  63.4M  1 loop /snap/core20/1974
loop1     7:1    0 111.9M  1 loop /snap/lxd/24322
loop2     7:2    0  53.3M  1 loop /snap/snapd/19457
sda       8:0    0    32G  0 disk
├─sda1    8:1    0   7.9G  0 part /
├─sda14   8:14   0     4M  0 part
└─sda15   8:15   0   106M  0 part /boot/efi
sr0      11:0    1    52K  0 rom

我们可以看到,sda磁盘大小已成功地从8G增加到32G。但它的主分区sda1安装在/仍然显示7.9G的大小。我们需要调整分区大小以利用所有可用空间。

让我们进入altruistic-impala的shell:

kenneth@laptop:~$ multipass shell altruistic-impala

From that shell:

ubuntu@altruistic-impala:~$ sudo parted /dev/sda

GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart                                                
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 50331648 blocks) or continue with
the current setting? 
Fix/Ignore? Fix                                                           
Partition number? 1                                                       
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? Yes                                                               
End?  [8590MB]? 100%                                                      
(parted) quit
Information: You may need to update /etc/fstab.

We also need to resize the filesystem:

ubuntu@altruistic-impala:~$ sudo resize2fs /dev/sda1
  
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/sda1 is now 8360187 (4k) blocks long.

And now we’re done! We check it out:

ubuntu@altruistic-impala:~$ lsblk
                                         
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
fd0       2:0    1     4K  0 disk 
loop0     7:0    0  53.3M  1 loop /snap/snapd/19457
loop1     7:1    0  63.4M  1 loop /snap/core20/1974
loop2     7:2    0 111.9M  1 loop /snap/lxd/24322
sda       8:0    0    32G  0 disk 
├─sda1    8:1    0  31.9G  0 part /
├─sda14   8:14   0     4M  0 part 
└─sda15   8:15   0   106M  0 part /boot/efi
sr0      11:0    1    52K  0 rom

The /dev/sda1 partition is now used at 25% against 100% at the beginning of this write-up:

ubuntu@altruistic-impala:~$ df -h

Filesystem      Size  Used Avail Use% Mounted on
tmpfs            96M  5.7M   90M   6% /run
/dev/sda1        31G  7.6G   24G  25% /
tmpfs           476M     0  476M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda15      105M  6.1M   99M   6% /boot/efi
tmpfs            96M  4.0K   96M   1% /run/user/1000

It corresponds to 7.6GiB used out of 30.9GiB:

kenneth@laptop:~$ multipass info altruistic-impala

Name:           altruistic-impala
State:          Running
IPv4:           172.17.244.151
Release:        Ubuntu 22.04.3 LTS
Image hash:     870bd58b5c1e (Ubuntu 22.04 LTS)
CPU(s):         1
Load:           0.08 0.10 0.07
Disk usage:     7.6GiB out of 30.9GiB
Memory usage:   148.2MiB out of 951.9MiB
Mounts:         --

That’s all !

本文地址
https://architect.pub
SEO Title
Expand a Multipass VM disk (no space left on device)