跳至主要内容

安裝後更新 Harvester 配置

Harvester 的作業系統採用不可變設計,這意味著作業系統中的大多數檔案在重新開機後會恢復到預先配置的狀態。Harvester 作業系統在開機時從配置文件載入系統元件的預先配置值。

本頁描述如何編輯一些最常被請求的 Harvester 配置。要更新配置,您必須先更新系統中的執行時值,然後更新配置文件以使更改在重新開機之間持續保留。

備註

如果您從 v1.1.2 之前的版本升級,範例中的 cloud-init 檔案將是 /oem/99_custom.yaml。如有需要,請替換該值。

DNS 伺服器​

執行時更改​

  1. 以 root 身分登入 Harvester 節點。有關更多詳細資訊,請參閱如何登入 Harvester 節點。

  2. 編輯 /etc/sysconfig/network/config 並更新以下行。如果有多個伺服器,請使用空格分隔 DNS 伺服器位址。

    NETCONFIG_DNS_STATIC_SERVERS="8.8.8.8 1.1.1.1"
  3. 使用以下命令更新並重新載入配置:

    netconfig update
  4. 使用 cat 命令確認檔案 /etc/resolv.conf 包含正確的 DNS 伺服器:

    cat /etc/resolv.conf
  5. 重新啟動 rke2-coredns:

    kubectl rollout restart deployment/rke2-coredns-rke2-coredns -n kube-system
  6. 確認 rke2-coredns 已成功重新部署:

    kubectl rollout status deployment/rke2-coredns-rke2-coredns -n kube-system

配置持久化​

從 v1.1.2 開始,cloud-init 檔案的持久名稱為 /oem/90_custom.yaml。Harvester 現在使用較新版本的 Elemental,它會在安裝期間建立該檔案。

從早期版本升級到 v1.1.2 或更高版本時,Harvester 會保留舊檔案名稱(/oem/99_custom.yaml)以避免混淆。如有必要,您可以手動將檔案重新命名為 /oem/90_custom.yaml。

  1. 備份 elemental cloud-init 檔案 /oem/90_custom.yaml,如下所示:

    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 配置:

    stages:
    initramfs:
    - commands:
    - 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 伺服器​

我們在 Harvester v1.2.0 中引入了 NTP 配置的新機制。

有關 Harvester v1.2.0 及更高版本中 NTP 設定的更多資訊,請參閱 NTP 伺服器。

使用者 rancher 的密碼​

執行時更改​

  1. 以使用者 rancher 身分登入 Harvester 節點。有關更多詳細資訊,請參閱如何登入 Harvester 節點。

  2. 要重設使用者 rancher 的密碼,請執行命令 passwd。

配置持久化​

  1. 備份 elemental cloud-init 檔案 /oem/90_custom.yaml,如下所示:

    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。

綁定從屬介面​

您可以更新 Harvester 管理綁定介面 mgmt-bo 的從屬介面。

執行時更改​

  1. 以 root 身分登入 Harvester 節點。有關更多詳細資訊,請參閱如何登入 Harvester 節點。

  2. 使用以下命令識別介面名稱:

    ip a
  3. 編輯 /etc/sysconfig/network/ifcfg-mgmt-bo 並更新與綁定從屬介面和綁定模式相關的行:

    BONDING_SLAVE_0='ens5'
    BONDING_SLAVE_1='ens6'
    BONDING_MODULE_OPTS='miimon=100 mode=balance-tlb '
  4. 使用 wicked ifreload 命令重新啟動網路:

    wicked ifreload mgmt-bo
    警告

    配置錯誤可能會中斷 SSH 連線。

配置持久化​

  1. 備份 elemental cloud-init 檔案 /oem/90_custom.yaml,如下所示:

    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_X 和 BONDING_MODULE_OPTS 條目:

    stages:
    initramfs:
    - ...
    files:
    - path: /etc/sysconfig/network/ifcfg-mgmt-bo
    permissions: 384
    owner: 0
    group: 0
    content: |+
    STARTMODE='onboot'
    BONDING_MASTER='yes'
    BOOTPROTO='none'
    POST_UP_SCRIPT="wicked:setup_bond.sh"
    BONDING_SLAVE_0='ens5'
    BONDING_SLAVE_1='ens6'
    BONDING_MODULE_OPTS='miimon=100 mode=balance-tlb '
    DHCLIENT_SET_DEFAULT_ROUTE='no'
    encoding: ""
    ownerstring: ""
    - path: /etc/sysconfig/network/ifcfg-ens6
    permissions: 384
    owner: 0
    group: 0
    content: |
    STARTMODE='hotplug'
    BOOTPROTO='none'
    encoding: ""
    ownerstring: ""
    備註

    如果您在安裝期間沒有選擇介面,您必須添加一個條目來初始化介面。請查看上述範例中的 /etc/sysconfig/network/ifcfg-ens6 檔案建立。檔案名稱應為 /etc/sysconfig/network/ifcfg-<interface-name>。