如何在Ubuntu上使用Canonical的Livepatch服务

时间:2020-01-09 10:39:50  来源:igfitidea点击:

是否想将重要的Linux内核补丁程序自动应用于Ubuntu系统而无需重新启动计算机?我们描述了如何使用Canonical的Livepatch Service来做到这一点。

什么是Livepatch?如何运作?

正如Canonical的Dustin Kirkland几年前解释的那样,Canonical Livepatch使用内置在标准Linux内核中的Kernel Live Patching技术。 Canonical的Livepatch网站指出,像AT&T,Cisco和Walmart这样的大型公司都在使用它。

根据Kirkland的规定,它最多可免费用于个人使用,最多可用于三台计算机,这些计算机可以是台式机,服务器,虚拟机或者云实例。组织可以在付费的Ubuntu Advantage订阅的更多系统上使用它。

内核补丁是必需的但不方便

Linux内核补丁已成事实。在我们所处的互连世界中,确保系统安全和更新补丁至为重要。但是,必须重新启动计算机以应用内核补丁可能会很痛苦。特别是如果计算机正在为用户提供某种服务,而我们必须协调或者与用户协商才能使服务脱机。还有一个乘数。如果我们维护多台Ubuntu计算机,则在某些时候我们必须咬紧牙关,然后依次进行操作。

Canonical Livepatch Service消除了使Ubuntu系统保持最新的关键内核补丁的所有麻烦。通过图形或者命令行进行设置很容易,并且省去了繁琐的工作。

减少维护工作量,增强安全性并减少停机时间的任何事情都必须是一个有吸引力的提议,对吗?是的,但是有一些警告。

  • 我们必须使用Ubuntu的长期支持(LTS)版本,例如16.04或者18.04. LTS的最新版本是18.04,因此这是我们将在此处使用的版本。

  • 它必须是64位版本。

  • 我们必须运行Linux Kernel 4.4或者更高版本

  • 我们需要有一个Ubuntu One帐户。还记得他们吗?如果我们没有Ubuntu One帐户,则可以注册一个免费帐户。

  • 我们可以免费使用Canonical Livepatch Service,但每个Ubuntu One帐户只能使用三台计算机。如果必须维护三台以上的计算机,则需要其他的Ubuntu One帐户。

  • 如果我们需要物理,虚拟或者云托管服务器,则需要成为Ubuntu Advantage客户。

获取一个Ubuntu帐户

无论我们是要通过图形用户界面(GUI)还是通过命令行界面(CLI)设置Livepatch服务,都必须具有Ubuntu One帐户。这是必需的,因为Livepatch Service的操作取决于颁发给我们并与Ubuntu One帐户绑定的私钥。

  • 如果使用GUI设置Livepatch Service,则看不到密钥。它仍然是必需和使用的,但是所有这些都在后台为我们处理。

  • 如果通过终端设置Livepatch Service,则需要将密钥从浏览器复制并粘贴到命令行。

如果我们没有Ubuntu One帐户,则可以免费创建一个。

以图形方式启用Canonical Livepatch服务

要启动图形设置界面,请按Super键。它位于大多数键盘左下方的Control和Alt键之间。搜索实时补丁。

当我们看到Livepatch图标时,单击该图标或者按Enter。

将出现"软件和更新"对话框窗口,其中已选中" Livepatch"选项卡。单击登录按钮。将提醒我们需要一个Ubuntu One帐户。

单击登录/注册按钮。

出现" Ubuntu单一登录帐户"对话框窗口。 Canonical交替使用术语Ubuntu One和Single Sign-On。他们是同一回事。正式使用Single Sign-On取代了Ubuntu One,但旧名称仍然存在。

输入帐户详细信息,然后单击"连接"按钮。如果尚未创建一个帐户,也可以使用此对话框窗口进行注册。

系统将提示我们输入密码。

输入密码,然后单击身份验证按钮。对话框窗口显示与我们将要使用的Ubuntu One帐户关联的电子邮件地址。

确保它是正确的,然后单击继续按钮。

系统将再次要求我们输入密码。几秒钟后,"软件和更新"对话框窗口中的" Livepatch"选项卡将更新以显示Livepatch处于活动状态。

一个新的盾牌图标将出现在工具通知区域中,靠近网络,声音和电源图标。带勾号的绿色圆圈告诉我们一切都很好。单击图标访问菜单。

我们被告知Livepatch已打开,并且当前没有更新。

Livepatch设置选项将在Livepatch选项卡上打开"软件和更新"对话框窗口。

而已;大功告成

使用CLI启用Canonical Livepatch服务

我们将需要一个Ubuntu One帐户。如果没有,我们将有机会创建一个。它们是免费的,只需要一点时间。

我们需要执行的某些步骤是基于Web的,因此,这不是真正的CLI唯一方法。我们首先访问Canonical Livepatch Service网页以获得密钥或者令牌。

选择" Ubuntu用户"单选按钮,然后单击"获取Livepatch令牌"按钮。

系统提示我们登录到Ubuntu One帐户。

  • 如果我们有一个帐户,请输入用于设置该帐户的电子邮件地址,然后选择"我有一个Ubuntu One帐户,我的密码是:"单选按钮。

  • 如果我们没有帐户,请输入电子邮件地址,然后选择"我没有Ubuntu One帐户"单选按钮。系统将指导我们完成帐户创建过程。

验证Ubuntu One帐户后,我们将看到"托管实时内核修补"网页。密钥将显示。

保持带有键的网页打开并打开终端窗口。在终端窗口中使用以下命令安装Livepatch服务守护程序:

sudo snap install canonical-livepatch

安装完成后,我们需要启用该服务。我们需要从"托管实时内核修补"网页上获得密钥。

我们需要将密钥复制并粘贴到命令行。突出显示网页上的键,右键单击它,然后从上下文菜单中选择"复制"。或者,我们可以突出显示键并按Ctrl + C。

在终端窗口中键入以下命令,但不要按Enter。

sudo canonical-livepatch enable

然后键入一个空格,然后右键单击并从上下文菜单中选择"粘贴"。或者,我们可以按Ctrl + Shift + V。我们应该从网页上看到刚键入的命令,一个空格和键。

在用于研究本文的测试机上,它看起来像这样:

按Enter键。

如果一切顺利,我们将看到Livepatch发出的验证消息,告知我们已为计算机启用内核修补程序。它还将显示另一个长键;这是机器令牌。

刚发生的是:

  • 我们已经从Canonical获得了Livepatch密钥。

  • 我们可以在三台计算机上使用它。到目前为止,我们已在一台计算机上使用它。

  • 使用密钥为此计算机生成的机器令牌是此消息中显示的机器令牌。

如果我们在"软件和更新"对话框窗口中选中" Livepatch"选项卡,则会看到Livepatch已启用并处于活动状态。

检查Livepatch的状态

我们可以使用以下命令使Livepatch为我们提供状态报告:

sudo canonical-livepatch status

状态报告包含:

  • 客户端版本:Livepatch的软件版本。

  • 体系结构:计算机的CPU体系结构。

  • cpu-model:计算机中中央处理器(CPU)的类型和型号。

  • 最后检查:Livepatch上次检查的时间和日期,以查看是否有任何重要的内核更新可供下载。

  • 引导时间:该计算机上次开机的时间。

  • 正常运行时间:这台计算机的开机时间。

状态块告诉我们:

  • kernel:当前内核的版本。

  • running:Livepatch是否正在运行。

  • checkstate:Livepatch是否已检查内核补丁。

  • patchState:是否需要安装任何重要的内核补丁。

  • 版本:需要应用的内核补丁的版本(如果有)。

  • 修复程序:内核修补程序中包含的修复程序。

强制Livepatch立即更新

Livepatch的重点是提供托管更新服务,这意味着我们无需考虑它。一切都为我们完成。但是,如果需要,我们可以使用以下命令强制Livepatch检查内核补丁(并应用发现的补丁):

sudo canonical-livepatch refresh

Livepatch会告诉我们刷新前后的内核版本。在此示例中没有任何内容可应用。