更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在VMware工作站中安装Flatcar Container Linux

在VMware工作站中安装Flatcar Container Linux

更新时间:2023-03-03 09:24:15浏览次数:279+次

本文介绍如何在VMware工作站中安装和运行Flatcar Container Linux的方法。

简介

Flatcar Linux是一种Linux操作系统,可用于对容器化工作负载进行优化,其大小比典型的Linux系统小。它提供了一个最小的操作系统映像以及运行容器所需的所有工具。通过一个不可变的文件系统运送操作系统,还包括自动系统更新。

Flatcar Container Linux提供的主要功能包括:

自动原子更新为您提供最新的安全更新和开源技术。

仅包含运行容器所需的工具的最小OS映像,没有包管理器。

操作系统是在一个不可变的文件系统上提供的,排除了一整套安全漏洞。

Flatcar Container Linux可以在多种平台上运行,如Azure、AWS、Vagrant、Vmware、Google Cloud、Digital Ocean等。在安装和配置过程中,您需要了解这两个概念:

Butane配置:这是一个人类可读的YAML文件,需要在使用前转换为Ignition V3配置。

Ignition配置:这是一个机器可读的JSON,用于配置Flatcar。可以使用云提供商的自定义数据或用户数据选项传递此配置。您还可以通过私有云虚拟机和裸机上的几个其他机制传递它。此配置可用于执行以下操作:

添加自定义用户和组。

创建和管理存储设备、文件系统和交换,并创建自定义文件。

自定义自动更新并定义重新启动窗口。

创建自定义网络(d)配置和systemd单元。

注:在本指南中,您需要在系统上安装好VMware Workstation。

在VMware工作站中安装和运行Flatcar Container Linux的方法

1.下载Flatcar Container Linux OVA

Flatcar Container Linux OVA文件可从Flatcar发布页面下载,地址在https://flatcar-linux.org/releases。为了更简单,您可以使用cURL提取OVA文件:

1].For Stable Channel

curl -LO https://stable.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vmware_ova.ova

2].For Beta Channel

curl -LO https://beta.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vmware_ova.ova

3].For Alpha Channel

curl -LO https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vmware_ova.ova

2.为Flatcar Container Linux创建Ignition配置

现在,我们将创建JSON格式文件,其中包含安装所需的所有配置。我们将从创建Butane配置开始:

vim flatcar.bu

对于本指南,我们将进行简单的配置,包括为VM设置SSH密钥。您可以自行利用其他几种配置:

variant: flatcar

version: 1.0.0

passwd:

  users:

    - name: core

      ssh_authorized_keys:

        - replace-me-with-public-ssh-key

在上面的文件中,请记住用主机系统的实际ssh公钥替换上面的“replace-me-with-public-ssh-key”。要查看SSH密钥,请使用以下命令:

cat ~/.ssh/id_rsa.pub

完成所需更改后,使用Butane将YAML转换为Ignition文件。最简单的方法是使用Podman,可参考在Debian 11/Debian 10系统上安装和使用Podman 4一文来安装Podman,地址在https://www.hmxthome.com/linux/4975.html。

安装后,运行Butane:

podman run --interactive --rm quay.io/coreos/butane:release \

       --pretty --strict < flatcar.bu > flatcar.ign

现在我们将生成一个名为flatcar.ign的Ignition文件(JSON):

$ cat flatcar.ign

{

  "ignition": {

    "version": "3.3.0"

  },

  "passwd": {

    "users": [

      {

        "name": "core",

        "sshAuthorizedKeys": [

          "ssh-rsa AAAAB3NzaC1yc2EAAAAD*********47Xy7s= debian@computingforgeeks.com"

        ]

      }

    ]

  }

}

现在我们将Ignition文件转换为base64或gzip+base64。这可以通过以下命令完成:

1].For base64

CONFIG_ENCODING='base64'

CONFIG_ENCODED=$(cat flatcar.ign | base64 -w0 -)

2].For gzip+base64

CONFIG_ENCODING='gzip+base64'

CONFIG_ENCODED=$(cat flatcar.ign | gzip -9 | base64 -w0 -)

3.在VMware工作站上运行Flatcar Container Linux

已满足所有要求。我们将启动Flatcar Container Linux。从命令行,可以使用以下命令启动VM:

第一个导出变量:

VM_NAME='flatcar-VM'

FLATCAR_OVA='flatcar_production_vmware_ova.ova'

LIBRARY="$HOME/Virtual Machines.localized"

启动VM:

ovftool \

  --powerOffTarget \

  --name="${VM_NAME}" \

  --allowExtraConfig \

  --extraConfig:guestinfo.ignition.config.data.encoding="${CONFIG_ENCODING}" \

  --extraConfig:guestinfo.ignition.config.data="${CONFIG_ENCODED}" \

--net:"VM Network"="Bridge" \

  "${FLATCAR_OVA}" "${LIBRARY}"

请记住提供FLATCAR_OVA的确切路径。您还可以根据需要替换变量,如Network,以使用NAT替换值,如下所示:

--net:"VM Network"="NAT"

现在生成了新的VMware工作站文件,如下所示:

Opening OVA source: flatcar_production_vmware_ova.ova

The manifest validates

Opening VMX target: /home/debian/Virtual Machines.localized

Writing VMX file: /home/debian/Virtual Machines.localized

Transfer Completed

Completed successfully

现在,您将拥有一个名为flatcar-VM的VM。如果未显示VM,可以通过单击打开VM手动导入它:

\

然后选择创建的FLATCAR VMX文件Virtual Machines.vmx:

\

加载后,VM应该可用。您可以进行所需的配置,如网络适配器等:

\

4.安装后基本Flatcar Container Linux配置

登录后,可以使用systemd-networkd进行DHCP IP设置。创建以下文件:

sudo vim /etc/systemd/network/static.network

将以下行添加到文件中,并准确替换IP地址:

[Match]

Name=ens192

[Network]

DHCP=no

Address=192.168.205.18/24

Gateway=192.168.205.1

DNS=8.8.8.8

DNS=192.168.205.1

保存文件并重新启动服务:

sudo systemctl restart systemd-networkd

验证更改:

\

现在可以使用IP地址将SSH连接到VM中。该命令的语法如下:

ssh core@IP_Address

样本输出:

\

为了证明Flatcar Container Linux是否按预期工作,我们将尝试启动一个简单的HelloWorld docker容器:

sudo docker run hello-world

样本输出:

\

如上图所示,表示Flatcar Container Linux正在按预期工作。您现在可以继续并使用它来部署所需的工作负载。