安装后更新 Harvester 配置

Harvester 的操作系统采用了不可变设计,换言之,操作系统中的大多数文件在重启后会恢复到其预先配置的状态。Harvester OS 会在引导期间从配置文件加载系统组件的预配置值。

本文介绍了如何编辑一些最需要的 Harvester 配置。要更新配置,你必须先更新系统中的运行时值,然后更新配置文件来让更改在重启时保留。

更新 Harvester 配置 - 图1备注

如果你升级自 v1.1.2 之前的版本,示例中的 cloud-init 文件为 /oem/99_custom.yaml。如果需要,请替换该值。

DNS 服务器

运行时更改

  1. 登录到 Harvester 节点并成为 root。有关详细信息,请参阅如何登录到 Harvester 节点

  2. 编辑 /etc/sysconfig/network/config 并更新以下行。如果有多个服务器,请使用空格分隔 DNS 服务器地址。

    1. NETCONFIG_DNS_STATIC_SERVERS="8.8.8.8 1.1.1.1"
  3. 使用以下命令更新并重新加载配置:

    1. netconfig update
  4. 使用 cat 命令确认文件 /etc/resolv.conf 包含正确的 DNS 服务器:

    1. cat /etc/resolv.conf

持久化配置

  1. 备份 elemental cloud-init 文件 /oem/90_custom.yaml,如下:

    1. cp /oem/90_custom.yaml /oem/install/90_custom.yaml.$(date --iso-8601=minutes)
  2. 编辑 /oem/90_custom.yaml 并更新 yaml 路径 stages.initramfs[0].commands 下的值。commands 数组必须包含操作 NETCONFIG_DNS_STATIC_SERVERS 配置的行。如果该行不存在,则添加该行。

    以下示例添加了更改 NETCONFIG_DNS_STATIC_SERVERS 配置的行:

    1. stages:
    2. initramfs:
    3. - commands:
    4. - sed -i 's/^NETCONFIG_DNS_STATIC_SERVERS.*/NETCONFIG_DNS_STATIC_SERVERS="8.8.8.8 1.1.1.1"/' /etc/sysconfig/network/config

    替换 DNS 服务器地址并保存文件。Harvester 将在重启后设置新的服务器。

NTP 服务器

运行时更改

  1. 登录到 Harvester 节点并成为 root。有关详细信息,请参阅如何登录到 Harvester 节点

  2. 编辑 /etc/systemd/timesyncd.conf 并在 NTP= 设置中指定 NTP 服务器:

    1. [Time]
    2. NTP = 0.suse.pool.ntp.org 1.suse.pool.ntp.org
  3. 重启 systemd-timesyncd.service 服务:

    1. systemctl restart systemd-timesyncd.service
  4. 显示时间同步状态:

    1. timedatectl timesync-status

持久化配置

  1. 备份 elemental cloud-init 文件 /oem/90_custom.yaml,如下:

    1. cp /oem/90_custom.yaml /oem/install/90_custom.yaml.$(date --iso-8601=minutes)
  2. 编辑 /oem/90_custom.yaml 并更新 yaml 路径 stages.initramfs[0].timesyncdtimesyncd 映射必须采用以下格式:

    1. stages:
    2. initramfs:
    3. - ...
    4. timesyncd:
    5. NTP: 0.suse.pool.ntp.org 1.suse.pool.ntp.org
  3. 编辑 /oem/90_custom.yaml 并更新 yaml 路径 stages.initramfs[0].systemctl.enable。该数组必须启用两项服务(systemd-timesyncdsystemd-time-wait-sync):

    1. stages:
    2. initramfs:
    3. - ...
    4. systemctl:
    5. enable:
    6. systemd-timesyncd
    7. systemd-time-wait-sync
    8. disable: []
    9. start: []
    10. mask: []

rancher 用户的 SSH 密钥

运行时更改

  1. rancher 用户身份登录到 Harvester 节点。有关详细信息,请参阅如何登录到 Harvester 节点
  2. 编辑 /home/rancher/.ssh/authorized_keys 以添加或删除密钥。

持久化配置

  1. 备份 elemental cloud-init 文件 /oem/90_custom.yaml,如下:

    1. cp /oem/90_custom.yaml /oem/install/90_custom.yaml.$(date --iso-8601=minutes)
  2. 编辑 /oem/90_custom.yaml 并更新 yaml 路径 stages.network[0].authorized_keys.rancher。添加或删除 rancher 数组中的键:

    1. stages:
    2. network:
    3. - ...
    4. authorized_keys:
    5. rancher:
    6. - key1
    7. - key2

rancher 用户的密码

运行时更改

  1. rancher 用户身份登录到 Harvester 节点。有关详细信息,请参阅如何登录到 Harvester 节点
  2. 要重置 rancher 用户的密码,请运行命令 passwd

持久化配置

  1. 备份 elemental cloud-init 文件 /oem/90_custom.yaml,如下:

    1. cp /oem/90_custom.yaml /oem/install/90_custom.yaml.$(date --iso-8601=minutes)
  2. 编辑 /oem/90_custom.yaml 并更新 yaml 路径 stages.initramfs[0].users.rancher.passwd。有关以加密形式指定密码的详细信息,请参阅 os.password 配置。

Bonding slave

你可以更新 Harvester 的管理 bonding 接口 mgmt-bo 的 slave 接口。

运行时更改

  1. 登录到 Harvester 节点并成为 root。有关详细信息,请参阅如何登录到 Harvester 节点

  2. 使用以下命令识别接口名称:

    1. ip a
  3. 编辑 /etc/sysconfig/network/ifcfg-mgmt-bo 并更新与 bonding slave 和 bonding 模式相关的行:

    1. BONDING_SLAVE_0='ens5'
    2. BONDING_SLAVE_1='ens6'
    3. BONDING_MODULE_OPTS='miimon=100 mode=balance-tlb '
  4. 使用 wicked ifreload 命令重启网络:

    1. wicked ifreload mgmt-bo

    更新 Harvester 配置 - 图2警告

    配置错误可能会中断 SSH 会话。

持久化配置

  1. 备份 elemental cloud-init 文件 /oem/90_custom.yaml,如下:

    1. cp /oem/90_custom.yaml /oem/install/90_custom.yaml.$(date --iso-8601=minutes)
  2. 编辑 /oem/90_custom.yaml 并更新 yaml 路径 stages.initramfs[0].files。具体来说,更新 /etc/sysconfig/network/ifcfg-mgmt-bo 文件的内容,并相应编辑 BONDING_SLAVE_XBONDING_MODULE_OPTS 条目:

    ``` stages: initramfs:

    • … files:
      • path: /etc/sysconfig/network/ifcfg-mgmt-bo permissions: 384 owner: 0 group: 0 content: |+
        1. STARTMODE='onboot'
        2. BONDING_MASTER='yes'
        3. BOOTPROTO='none'
        4. POST_UP_SCRIPT="wicked:setup_bond.sh"
  1. BONDING_SLAVE_0='ens5'
  2. BONDING_SLAVE_1='ens6'
  3. BONDING_MODULE_OPTS='miimon=100 mode=balance-tlb '
  4. DHCLIENT_SET_DEFAULT_ROUTE='no'
  5. encoding: ""
  6. ownerstring: ""
  7. - path: /etc/sysconfig/network/ifcfg-ens6
  8. permissions: 384
  9. owner: 0
  10. group: 0
  11. content: |
  12. STARTMODE='hotplug'
  13. BOOTPROTO='none'
  14. encoding: ""
  15. ownerstring: ""
  16. ```
  17. ![](/projects/harvester-1.2-zh/adadd309cd63e4cc81476cb1404c35c9.svg)备注
  18. 如果在安装过程中没有选择接口,则必须添加一个条目来初始化接口。请检查上面示例中的 `/etc/sysconfig/network/ifcfg-ens6` 文件创建。文件名应为 `/etc/sysconfig/network/ifcfg-<interface-name>`。