如何使用配置文件

配置文件存储一组配置选项。它们可以包含实例选项、设备和设备选项。

您可以将任意数量的配置文件应用于一个实例。它们的应用顺序为指定的顺序,因此最后一个指定特定键的配置文件优先。但是,特定于实例的配置始终会覆盖来自配置文件的配置。

注意

配置文件可以应用于容器和虚拟机。因此,它们可能包含对这两种类型有效的选项和设备。

应用包含不适合实例类型的配置的配置文件时,将忽略此配置,并且不会导致错误。

如果在启动新实例时未指定任何配置文件,则会自动应用 default 配置文件。此配置文件定义了一个网络接口和一个根磁盘。 default 配置文件无法重命名或删除。

查看配置文件

输入以下命令以显示所有可用配置文件的列表

incus profile list

输入以下命令以显示配置文件的内容

incus profile show <profile_name>

创建空配置文件

输入以下命令以创建空配置文件

incus profile create <profile_name>

编辑配置文件

您可以为配置文件设置特定的配置选项,也可以以 YAML 格式编辑整个配置文件。

为配置文件设置特定选项

要为配置文件设置实例选项,请使用 incus profile set 命令。指定配置文件名称以及实例选项的键和值

incus profile set <profile_name> <option_key>=<option_value> <option_key>=<option_value> ...

要为您的配置文件添加和配置实例设备,请使用 incus profile device add 命令。指定配置文件名称、设备名称、设备类型以及可能存在的设备选项(取决于 设备类型

incus profile device add <profile_name> <device_name> <device_type> <device_option_key>=<device_option_value> <device_option_key>=<device_option_value> ...

要为之前添加到配置文件的设备配置实例设备选项,请使用 incus profile device set 命令

incus profile device set <profile_name> <device_name> <device_option_key>=<device_option_value> <device_option_key>=<device_option_value> ...

编辑整个配置文件

您可以一次以 YAML 格式提供所有选项,而不是分别设置每个配置选项。

检查现有配置文件或实例配置的内容以获取所需的标记。例如, default 配置文件可能如下所示

config: {}
description: Default Incus profile
devices:
  eth0:
    name: eth0
    network: incusbr0
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: default
used_by:

实例选项作为数组提供,位于 config 下。实例设备和实例设备选项在 devices 下提供。

要使用标准终端编辑器编辑配置文件,请输入以下命令

incus profile edit <profile_name>

或者,您可以创建一个包含配置的 YAML 文件(例如, profile.yaml),并使用以下命令将配置写入配置文件

incus profile edit <profile_name> < profile.yaml

将配置文件应用于实例

输入以下命令将配置文件应用于实例

incus profile add <instance_name> <profile_name>

提示

添加配置文件后检查配置: incus config show <instance_name>

您将看到您的配置文件现在列在 profiles 下。但是,配置文件中的配置选项不会显示在 config 下(除非您添加 --expanded 标志)。这种行为的原因是这些选项取自配置文件,而不是实例的配置。

这意味着,如果您编辑配置文件,则更改会自动应用于使用该配置文件的所有实例。

您还可以通过添加 --profile 标志在启动实例时指定配置文件

incus launch <image> <instance_name> --profile <profile> --profile <profile> ...

从实例中删除配置文件

输入以下命令从实例中删除配置文件

incus profile remove <instance_name> <profile_name>