手动更新

如果自动升级失败,可以使用以下手动升级步骤。

1. PANW 的手动升级

在此步骤中,以下可操作组件会升级。

范围 可操作的组件
基础架构 PANW

此升级对外部连接造成的流量中断极少,停机时间约为一分钟。此类升级是手动进行的。PANW 以高可用性 (HA) 模式运行。

1.1. 定义

Palo Alto 防火墙软件版本以 X.Y.Z 格式显示。

软件版本 格式
功能发布 X.Y
基础维护版本 X.Y.0
给定功能版本的最新维护版本 X.Y.Z:Z 是未来版本 X.Y 的最后一个维护版本。

1.2. 升级过程

1.2.1. 升级路径

在继续操作之前,请确定哪个案例描述了您的需求:案例 1、案例 2 还是案例 3:

  • 情形 1:X.Y 是目标版本。
  • 情形 2:X.Y 不是目标发布版本。
  • 情形 3:防火墙版本为 X.Y,其中 X.Y 是 X 的最后一个功能版本。

情形 1情形 2情形 3 的以下说明展示了每种情形对应的升级路径。

支持请求 说明和操作
案例 1
X.Y 是您要升级到的版本(而非目标版本)。
下载并安装目标维护版本 X.Y(Z2)
情况 2
X.Y 不是您要升级到的版本(不是目标版本)。
下载并安装 X.Y 的最新维护版本:X.Y.Z1
下载基础维护版本:X.(Y+1).0

如果 X.(Y+1) 是目标功能版本,
如果 X.(Y+1) 不是目标功能版本,
  • 如果 X.(Y+1) 是 X 的最后一个功能版本,请继续执行情形 3
案例 3
防火墙版本为 X.Y,其中 X.Y 是 X 的最后一个功能版本。
下载基础维护版本:(X+1).0.0
返回到情形 1

如需了解此处未提及的升级途径,请参阅 https://www.paloaltonetworks.com/

1.2.2. 升级设置

Distributed Cloud 使用两个防火墙。在开始升级之前,请验证两个防火墙是否为同一版本。如果不是,请先执行必要的升级,使它们的版本相同,然后再开始将两者都升级到下一个目标版本。每次计划执行升级时,都要执行此操作。

  1. 确保两个防火墙均正常运行
    1. 在信息中心内,验证高可用性 (HA) 是否为绿色。
    2. 验证网络上没有停用的链接。
  2. 备份两个防火墙上的配置。

  3. 依次前往设备 > 高可用性

  4. 找到设备页面开头的操作命令标签页,然后点击该标签页。

    1. 在导航窗格中找到高可用性,然后点击它。
    2. 当系统显示暂停本地设备以实现高可用性选项时,点击该选项。

    为实现 HA 而暂停本地设备

    图 1. 暂停高可用性

  5. 验证返回的本地防火墙状态是否显示为 suspended

    验证

    图 2. 验证防火墙是否已暂停

  6. 升级防火墙。

  7. suspended 状态恢复:点击使本地设备可用于高可用性

    提供 HA

    图 3.提供 HA

    返回第一步,然后按照升级路径对第二个防火墙重复此过程。

1.3. 升级过程详情示例

  1. 检查当前的 PAN-OS 版本。

    show system info | match sw-version
    

    如果 PAN-OS 不在目标软件版本上,请升级设备。

  2. 按照提供的特定于路径的升级程序操作。

  3. 如需验证升级路径,请先在本地计算机上访问 paloaltonetworks.com 网站,查看 https://docs.paloaltonetworks.com/pan-os/10-1/pan-os-upgrade/upgrade-pan-os/upgrade-the-firewall-pan-os/determine-the-upgrade-path.html 中的升级路径,然后再继续操作。

  4. 确保设备已注册并获得许可。

  5. 找到要提取的最新固件:

    gdcloud artifacts tree ${ARTIFACTS_ROOT}/oci | grep "gdch-firewall"
    

    文件名包含 build 版本。 输出示例:

    │   │   └── gdch-firewall/os:1.10.0-gdch.1426
    

    在上面的示例中,build 版本显示为 1.10.0-gdch.1426

  6. 复制文件名并提取固件。例如:

    1. 复制 gdch-firewall/os:1.10.0-gdch.1426 作为文件名。使用此值替换以下命令中的 FIRMWARE_FILENAME

      export FW_FIRMWARE_TAR_FILENAME=FIRMWARE_FILENAME
      
    2. 从 OCI 映像中提取固件:

      gdcloud artifacts extract ${ARTIFACTS_ROOT}/oci firmware \
          --image-name=${FW_FIRMWARE_TAR_FILENAME:?}
      

      FW_FIRMWARE_TAR_FILENAME 替换为防火墙固件 tar 文件的文件名。

    3. 提取固件:

      tar -xvf firmware/gdch-firewall/os.tar.gz
      
  7. 收集升级操作系统文件并将其上传到防火墙设备,以开始升级。

控制台

  1. 建立与防火墙和本地计算机的 IP 连接,然后前往界面 (UI)。
  2. 如需将软件上传到防火墙,请依次选择设备 > 软件,然后点击页面末尾的上传

    上传动态更新

    图 4. 上传软件更新

  3. 上传软件后,该软件将显示在表格中,并显示用于安装该软件的操作

  4. https://support.paloaltonetworks.com/Updates/DynamicUpdates应用类别(下拉菜单)中下载最新的动态更新

  5. 点击上传,将动态更新上传到防火墙。您可能只需执行此步骤一次。

  6. 安装从文件上传的内容 - 点击从文件安装

    从文件安装

    图 5. 选择“从文件安装”

  7. 图 6 中找到以 ACTION 一词开头的列。 在该列中,选择安装以安装相应软件。防火墙重新启动。

    已升级

    Figure 6. 显示安装功能的操作列

  8. 前往信息中心页面,查看一般信息窗格。 找到软件版本,并验证与其关联的值是否已从原始版本值发生变化。这会验证版本更改。

    在信息中心内验证

    图 7.软件版本显示变更

  9. 根据升级路径,视需要重复上述步骤。

kubectl

如果您无法访问互联网,请使用以下命令行说明来升级 PAN-OS:

  1. 通过 SCP 传输固件:

    scp import software from ubuntu@<host>:/home/ubuntu/gdcloud_v8/images/PanOS_5200-XX.XX.XX
    

  2. 申请所需的系统软件安装版本:

    request system software install version XX.XX.XX
    

    这会生成在下一步中使用的作业 ID。以下是输出消息示例:

    Software install job enqueued with jobid 2. Run 'show jobs id 2' to monitor its
    status. Please reboot the device after the installation is done.
    
  3. 监控作业状态:

    show jobs id 2
    
  4. 安装后重新启动 PAN-OS:

    request restart system
    

    如果您无法更新 PAN-OS,但自身没有出现任何错误,请为 PAN-OS 许可并使用动态更新进行更新。确保许可密钥位于 cell.yaml 文件或目录中。请参阅检查配置

  5. 如需安装动态更新,请在 PAN 门户或云端硬盘位置中找到最新版本的动态更新。

  6. 通过 SCP 传输防火墙内容:

    # scp import content from
    ubuntu@<host_ip>::/home/ubuntu/gdcloud_v8/images/panupv2-all-contents-8580-7429
    
  7. 安装内容:

    request content upgrade install  skip-content-validity-check yes file panupv2-all-contents-8580-7429
    
  8. 将 PAN-OS 上传到宿主机:

    1. 将笔记本电脑连接到与宿主机位于同一机架中的管理交换机。
    2. 从管理网络 vlan97 为笔记本电脑分配 IP 地址。
    3. 通过 SCP 将 PAN-OS 从笔记本电脑复制到宿主机:

      scp ~/Downloads/Pan* ubuntu@10.251.243.79:~
      Warning: Permanently added '10.251.243.79' (ED25519) to the list of known hosts.
      ubuntu@10.251.243.79's password:
      

2 触发 HSM 的自动升级

在此步骤中,以下可操作组件会升级。

范围 可操作的组件
基础架构 HSM

HSM 升级需要创建 HSMUpgradeRequest 并定期检查升级请求的状态。

系统会自动生成一个或多个 CTMClusterUpgradeRequests,以将每个 HSMCluster 升级到升级路径中的下一个固件版本,最终达到目标固件版本。HSM 升级是一种无中断升级,大约需要两个小时。

此升级的停机时间取决于集成。配置了多个地址的 HSM 可以进行滚动更新,而不会中断。

  1. KUBECONFIG 设置为根管理员集群的 kubeconfig 文件。

    export KUBECONFIG=ROOT_ADMIN_KUBECONFIG
    
  2. 创建 HSMUpgradeRequest 自定义资源。创建 hsmupgrade.yaml 并添加 CurrentGDCHVersionTargetGDCHVersion

    自定义资源示例:

    apiVersion: "upgrade.private.gdc.goog/v1alpha1"
    kind: HSMUpgradeRequest
    metadata:
       name:  HSM_UPGRADE_REQUEST_NAME
       namespace: gpc-system
    spec:
       currentGDCHVersion: "1.10.X-gdch-xxx"
       targetGDCHVersion: "1.11.y-gdch.yyyy"
    
  3. 应用新的自定义资源:

    kubectl --kubeconfig=${KUBECONFIG:?} apply -f hsmupgrade.yaml
    
  4. 通过查看所创建的 HSMUpgradeRequestCTMClusterUpgradeRequest 资源的 Status 来监控 HSM 升级。

    kubectl --kubeconfig=${KUBECONFIG:?} describe HSMUpgradeRequest HSM_UPGRADE_REQUEST_NAME -n gpc-system
    

    已完成的 HSMUpgradeRequestStatus 输出示例:

    Status:
    Conditions:
     Last Transition Time:  2023-08-03T18:20:50Z
     Message:
     Observed Generation:   1
     Reason:                PullFirmwareImages
     Status:                True
     Type:                  FirmwareImagesPulled
     Last Transition Time:  2023-08-03T18:20:50Z
     Message:               CTM upgrade request to version:2_12_0 is in progress
     Observed Generation:   1
     Reason:                CTMClusterUpgradeInProgress
     Status:                True
     Type:                  InProgress
     Last Transition Time:  2023-08-03T18:41:54Z
     Message:               CTM upgrade request to target version:2_12_0 completed
     Observed Generation:   1
     Reason:                AllCTMClusterUpgradeRequestsCompleted
     Status:                True
     Type:                  AllComplete
    
    kubectl --kubeconfig=${KUBECONFIG:?} get ctmclusterupgraderequests -n gpc-system
    
    kubectl --kubeconfig=${KUBECONFIG:?} describe ctmclusterupgraderequests CTM_CLUSTER_UPGRADE_REQUEST_NAME -n gpc-system
    

    已完成的 CTMClusterUpgradeRequestStatus 输出示例:

    Status:
    Conditions:
     Last Transition Time:  2023-09-11T18:08:25Z
     Message:               CTM pre upgrade checks succeed. The system is eligible to upgrade.
     Observed Generation:   1
     Reason:                CTMPreUpgradeChecksReady
     Status:                True
     Type:                  PreUpgradeCheckCompleted
     Last Transition Time:  2023-09-11T18:18:31Z
     Message:               HSM backup completed. The system is ready to upgrade.
     Observed Generation:   2
     Reason:                HSMBackupCompleted
     Status:                True
     Type:                  BackupCompleted
     Last Transition Time:  2023-09-11T18:18:31Z
     Message:               Starting HSM upgrades for cluster.
     Observed Generation:   2
     Reason:                hsmclusterClusterUpgradeInProgress
     Status:                True
     Type:                  ClusterUpgradeInProgress
     Last Transition Time:  2023-09-11T19:46:22Z
     Message:
     Observed Generation:   2
     Reason:                ReconcileCompleted
     Status:                True
     Type:                  AllComplete
    
    

3. 手动 ONTAP 升级

如果您要在具有现有存储集群的系统上执行手动升级,请按照以下步骤执行升级:

通过 12.4.1 提取方法 1 12.4.2 提取方法 2 提取操作系统升级映像。由于您仅使用其中一个,因此它们显示相同的步数序列号:

3.1. - 提取方法 1

使用此方法从 gdch.tar.gz 中提取可升级的软件包。

  1. 如果您位于宿主机上,并且有权访问发布软件包,请从 Harbor 注册表中提取映像:

    # Download the upgrade OS package
    OCI_PATH=$ARTIFACTS_ROOT/oci
    gdcloud artifacts extract $OCI_PATH storage --image-name=gpc-system-storage/storage:9.13.1P1
    
    tar -xvzf storage/gpc-system-storage/storage.tar.gz
    

    如果提取失败,请尝试使用以下命令查找正确的归档文件: sh gdcloud artifacts extract $OCI_PATH tree | grep storage

  2. storage/9.13.1P1.tar 中找到相应文件。

  3. 收集升级操作系统文件将其上传到存储站点以开始升级;或者,如果尚未安装 ONTAP,请在引导加载程序上提供这些文件,并让节点拉取映像

3.2. - 提取方法 2

如果根管理员集群已启动并运行,您可以直接从 GDC Artifact Registry 中获取升级映像。

  1. 从 Artifact Registry 获取映像:

    https://gpc-istio-ingressgateway-IP/artifacts/serve/base64url encoding of the artifact reference
    
  2. 下载升级文件:

    IMAGE_BASE64_URL=$(echo "gpc-system-storage/storage:ontap" | base64)
    
    # The OS file is located at:
    https://gpc-istio-ingressgateway-IP/artifacts/serve/IMAGE_BASE64_URL
    

相应制品引用为 gpc-system-storage/storage:ontap.

  1. 访问网址(如 https://gpc-istio-ingressgateway-IP/artifacts/serve/IMAGE_BASE64_URL 所示),然后在本地下载操作系统软件包。
  2. 收集升级操作系统文件将其上传到存储网站以开始升级

3.3. 将映像上传到 ONTAP

  1. 打开 ONTAP 管理网址,然后找到概览页面。
  2. 点击 ONTAP 更新按钮。

    点击“ONTAP 更新”按钮

    图 8.“ONTAP 更新”按钮

  3. 点击 +添加图片,然后上传您通过提取方法 1提取方法 2 收集的图片。

    点击“+ 添加图片更新”按钮

    图 9: “+添加图片”按钮

3.4. ONTAP 升级预检检查

上传映像后,点击升级以开始预检。系统会显示一条警告消息,如图所示,其中包含“更新并显示警告”字样。

点击“升级并显示警告”按钮

图 10.“升级并显示警告”按钮

看到警告消息后,请执行以下操作:

  1. 确认您没有看到任何必须采取行动的事项。验证是否未列出可能会影响升级的任何内容。
  2. 执行以下预检检查:

    • 验证集群是否运行状况良好,以及节点是否运行状况良好且已配置存储故障切换。
    • 验证存储系统是否未报告任何提醒。
    • 验证升级窗口中的 CPU 和磁盘利用率是否低于 50%。
    • 验证存储系统中没有正在运行的作业。
      例如,批量作业和汇总作业可以正在运行,也可以排队等待运行。 等待它们完成。

    • 验证 DNS 是否已启动(如果已配置)。

    • 检查所有网络接口是否都在主节点中。如果不是,请将它们恢复到初始节点。

    • 如果配置了 SnapMirror,请确保在升级时它处于暂停状态。

    • 按照存储系统升级建议执行所有程序。

3.5. 开始升级

  1. 在根管理员集群中,创建一个 Kubernetes API 对象,然后使用 kubectl CLI 将其应用于根管理员集群:

    apiVersion: upgrade.storage.private.gdc.goog/v1alpha1
    kind: FileStorageUpgradeRequest
    metadata:
     name: test
     namespace: gpc-system
    spec:
     fileStorageUpgradeMode: Manual
     storageClusterRef:
       name: $StorageClusterName
       namespace: gpc-system
     targetVersion: 9.10.1
    
  2. 点击更新并显示警告

    点击“更新(含警告)”按钮

    图 11.“更新并显示警告”按钮

3.6. 在空白系统上升级

如果 ONTAP 存储因任何原因重置,并且还没有集群,您必须一次更新一个节点。为此,请按以下步骤操作:

  1. 下载最新版本的 ONTAP 软件。文件命名惯例类似于以下示例:9.13.1P1_ONTAP_image.tgz
  2. 创建一个用于托管 ONTAP 映像文件的目录。

    mkdir files
    mv 9.13.1P1_ONTAP_image.tgz files
    
  3. 使用 Python 3 在引导加载程序上托管映像。

    # create a webserver with python
    python3 -m http.server -d files
    Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
    
  4. 使用 system node reboot CLI 重新启动节点。

  5. Control+C 可中断启动周期。看到启动菜单后,选择选项 7:Install new software first。启动菜单如下所示:

    > system node reboot
    
    Warning: Are you sure you want to reboot node "ag-ad-stge02-02"?
    {y|n}: y
    
    # interrupt the boot cycle using Ctrl-C
    
    *******************************
    *                             *
    * Press Ctrl-C for Boot Menu. *
    *                             *
    *******************************
    ^CBoot Menu will be available.
    
    Please choose one of the following:
    
    (1)  Normal Boot.
    (2)  Boot without /etc/rc.
    (3)  Change password.
    (4)  Clean configuration and initialize all disks.
    (5)  Maintenance mode boot.
    (6)  Update flash from backup config.
    (7)  Install new software first.
    (8)  Reboot node.
    (9)  Configure Advanced Drive Partitioning.
    (10) Set Onboard Key Manager recovery secrets.
    (11) Configure node for external key management.
    Selection (1-11)? 7
    

    输出类似于以下内容:

    This procedure is not supported for Non-Disruptive Upgrade on an HA pair.
    The software will be installed to the alternate image, from which the node is
    not currently running. Do you want to continue? {y|n} y
    
    In order to download the package, a temporary network interface needs to be
    configured.
    
    Select the network port you want to use for the download (for example, 'e0a')
    
  6. 在 e0M 接口上配置 IP 地址。然后,重新启动节点。

    Select the network port you want to use for the download (for example, 'e0a')
    > e0M
    
    The node needs to reboot for this setting to take effect.  Reboot now? {y|n}
    (selecting yes will return you automatically to this install wizard) y
    
    Rebooting...
    
    ## Configure the mgmt interface (e0M)
    
    In order to download the package, a temporary network interface needs to be
    configured.
    
    Enter the IP address for port e0M: 172.22.115.131
    Enter the netmask for port e0M: 255.255.255.0
    Enter IP address of default gateway: 172.22.115.1
    
    What is the URL for the package? http://172.22.112.67:8000/files/9.13.1P1_ONTAP_image.tgz
    What is the user name on "172.22.112.67", if any?
    
  7. 使用 version CLI 确认当前软件版本。输出类似于以下内容:

    > version
    NetApp Release 9.13.1P1: Tue Jul 25 10:19:28 UTC 2023
    

    3.7. 更新备份代理 LIF 的 MTU

备份和恢复系统使用 ONTAP 上的 LIF。MTU 必须降低到 9000 以下。 这是通过备份代理实现的。 在 ONTAP 运行正常后,降低备份代理 LIF 的最大传输单元 (MTU) 大小:

net port broadcast-domain modify -broadcast-domain backup-agent-network -mtu 8000

您可以通过运行以下命令来验证是否成功:

net port broadcast-domain show -broadcast-domain backup-agent-network

您应该会看到新的 MTU 值 8000。

4. 手动升级 Operations Suite Infrastructure Core

此升级过程仅适用于从 1.12.x 版升级到 1.13.0 版

4.1 执行备份

  1. 按照运营中心设置说明中的说明执行虚拟机备份
  2. 备份 H:\operations_center 驱动器。(此操作支持回滚升级。)
  3. 备份 CONFIG1 上的 C:\dsc、C:\operations_center\ 和 C:\config\。(此备份在构建新的 config.ps1 配置时提供参考。)

4.2 升级现有虚拟机

  1. 获取安装目录。

    1. 按照下载文件部分中的说明下载 OIC 组件软件包。

    2. 从下载的 prod_IT_component_bundle.tar.gz 中提取 operations_center 目录。

      tar -zxvf prod_IT_component_bundle.tar.gz ./release/operations_center
      
    3. 将 H:\operations_center 替换为上一步中提取的目录。

  2. 使用特定于网站的数据更新 config.ps1

    config.ps1 配置文件提供了构建和配置 Operations Suite 基础架构 (OI) 环境所需的所有信息。如需更新配置文件,您必须收集以下所有信息。备份现有的 config.ps1 可作为参考,以防止意外覆盖现有设置。 重要提示:请务必先完成并正确填写config.ps1,然后再继续操作。

    • occonfigtool 工具的网络配置输出,尤其是 ocinfo.common.opscenter.local.txt 文件。以下步骤中提及的网络名称(例如 OCCORE-SERVERS)引用了相应文档中的 Name 列。
    • 相应 OI 管理的每个 GDC 单元的域名和 DNS 服务器 IP 地址。此数据可在客户意见征询问卷 (CIQ) 的输出中找到。

    Administrator 身份在 BM01 主机上进行所有更改。

  3. 复制部署类型的正确配置示例代码:

    1. 如果 OIC 最初部署为单站点,请将 H:\operations_center\dsc\config.single-site-example.ps1 复制到 H:\operations_center\config\config.ps1
    2. 如果 OIC 最初部署为多站点,请将 H:\operations_center\dsc\config.multi-site-example.ps1 复制到 H:\operations_center\config\config.ps1
  4. 使用 Powershell ISE 验证并更新 config.ps1 中的值。

    1. 更新 HardwareVersion,除非默认值 (3.0) 正确。

    2. 更新 PrimarySiteCode,除非默认值 (DC1) 正确。

    3. 网站代码用于许多名称中。搜索并替换 DC1 的所有实例,改为正确的网站代码。使用不区分大小写的搜索。查看每项变更,因为有些变更可能不是必需的。例如,如果网站代码为 AB1,则主机名 DC1-DC1 必须更改为 AB1-DC1而不能更改为 AB1-AB1

    4. 如果默认值不正确,请更新 DnsDomain如果更改此值,请在整个 config.ps1 文件中搜索并替换 opscenter.local。有多个位置硬编码了该默认值。

    5. 使用特定于网站的信息更新 DnsConditionalForwarder 中的对象。必须至少有一个转发对象。移除不必要的示例。

      如需从根管理员集群拉取特定于网站的信息,请使用以下命令:

      export KUBECONFIG=ROOT_ADMIN_KUBECONFIG
      kubectl get -n dns-system service gpc-coredns-external-udp -o jsonpath='{.status.loadBalancer.ingress[0].ip}{"\n"}'
      1. Domain - GDC Cell DNS 域名,例如 ciq.yaml 中的 dns.delegatedSubdomain
      2. Master - DNS 服务器 IP 的列表(通常只有一个)。在 cellcfg 中查找类型为 DNSReservation 的内容。如果已部署 GDC Cell,请在根管理集群的 dns-system 命名空间中查找 gpc-coredns-external-udp 服务的 EXTERNAL-IP 和 Cell 的 FQDN bert.sesame.street

      3. 在多站点部署中,每个单元格都有一个哈希表对象。

    6. 请勿更改 UsersGroupsGroupPolicy 对象的任何内容。

    7. 更新 DNSServers,使其包含分配给主网域控制器和辅助网域控制器的 2 个 IP 地址,例如 <SITE>-DC1<SITE>-DC2

    8. NTPServers 更新为根管理员 TimeServer 自定义资源中的 SyncServer IP 地址列表。您可以使用以下命令获取这组 IP 地址:

      kubectl get timeserver -A -o json | jq '.items[].address'
      

      您必须以 NTPServers 格式设置这些 IP 地址,如以下示例所示:

      NtpServers = @(
        '10.251.80.2',
        '10.251.80.3',
        '10.251.80.4',
        '10.251.80.5'
      )
      
    9. 根据需要,使用客户提供的 OCCORE-SERVERS 子网的前缀值更新 SubnetPrefix 默认值(即 24)。

    10. 使用客户为 OCCORE-SERVERS 子网提供的默认网关更新 DefaultGateway 默认值。

    11. 查找并更新 WorkstationCider 默认值,使用客户提供的 OC-WORKSTATIONS 子网值(采用 IPv4 CIDR 表示法)。

    12. 找到示例子网前缀 172.21.0.,并将其替换为客户提供的 OCCORE-SERVERS 子网前缀。

    13. 将示例子网前缀 172.21.2. 替换为客户提供的 OCCORE-JUMPHOSTS 子网前缀。

    14. 找到示例子网前缀 172.21.32.,并将其替换为客户提供的 OC-WORKSTATIONS 子网前缀。

    15. 找到并替换 Pref caption 的示例每日消息 legalnoticecaption 值,改为使用客户提供的字幕。

    16. 找到并替换 Pref text 的示例每日一句话 legalnoticetext 值,改为客户提供的文本。

    17. 验证每个“节点”对象,并根据需要进行更新。

      1. NodeName - 确保主机名正确无误。有些名称在很多地方都会用到,例如网域控制器。如果您在此处更改了名称,请检查是否需要在配置中的其他位置进行更改。
      2. IPv4Addr - 这必须是主机的 IP 地址。通常情况下,最后一个八位字节可以保持原样。其中一些可能已在前面步骤中完成的网络搜索和替换过程中更新。

      3. HyperVHost - 此值必须是托管相应虚拟机的 Hyper-V 服务器的 IP 地址。您可以在配置的“Hyper-V 服务器”部分中获取每个 BM?? 服务器的 IP 地址。请勿更改此字段中的 Hyper-V 主机分配,因为并非所有 Hyper-V 主机支持每种虚拟机类型,只需将 Hyper-V 主机名更改为相应的 IP 地址即可。

    18. 更新具有 splunk_indexer 的节点的所有 stanza,以包含一个较大的第二磁盘。每个段落都应包含以下行:

      ExtraDiskSize   = 5120GB # No quotes -- PowerShell converts this to an integer.
      ExtraDiskFolder = 'H:\Hyper-V\Virtual Hard Disks'
      
    19. 使用 Role=jumphost 验证所有节点上的第二个网络接口详细信息。为此接口使用 OCCORE-JUMPHOSTS 子网详细信息。检查:

      1. JumphostIPv4Cidr
      2. JumphostDefaultGateway
    20. 更新节点中 Role=adfs 的 ADFS 特有节。

      1. bert.sesame.streetGDCH.sesame.street 的所有实例替换为配置的 DnsConditionalForwarder 部分中某个节的正确 Domain 值。
      2. Bert(不区分大小写)替换为正在配置为使用 ADFS 的 GDC 单元的简短标识符。
    21. 根据需要更新 DHCP 范围,以匹配客户的 IP 方案。在每个范围内,验证以下值是否正确。范围中的名称与 ocinfo.common.opscenter.local.txt 网络方案中使用的名称一致,因此请在验证中使用以下内容:

      1. ScopeId
      2. IpStartRange
      3. IpEndRange
      4. Router
      5. SubnetMask
    22. 确认这些值与备份的 config1.ps1 中的值一致

    23. 请务必保存文件。

  5. CONFIG1 虚拟机升级

    BM01 上执行 CONFIG1 升级,以与初始安装保持一致。所有其他升级都将从升级后的 CONIFIG1 执行。

    1. 将 operations_center 目录复制到 CONFIG1 虚拟机

    2. BM01 主机上,以管理员身份打开 PS 控制台。

    3. 运行 Copy-ConfigHostFiles.ps1 脚本,以暂存 CONFIG1 虚拟机 (VM) 所需的文件。

      # CD to the script's directory
      cd H:\operations_center\dsc
      
      # Staging files for CONFIG1 VM
      .\Copy-ConfigHostFiles.ps1 `<SITE>-CONFIG1`
      
    4. 停用 Hyper-V 时间同步

      1. 以管理员身份登录 BM01 主机。

      2. 以管理员身份在 Windows 上打开 PowerShell,然后运行以下命令:

      # Disabling Hyper-V Time Sync
      Disable-VMIntegrationService -VMName `<SITE>-CONFIG1` -Name 'Time Synchronization'
      
    5. 运行 CONFIG1 更新脚本

      .\Update-RemoteHost.ps1 -ComputerName DC1-CONFIG1 -Credentials $domain_admin_creds -SetLcm -RemoveExisting
      
    6. 脚本运行后,CONFIG1 虚拟机会重新启动。

    7. CONFIG1 虚拟机验证

      1. BM01 主机上,使用远程桌面 (RDP) 连接到 CONFIG1 虚拟机的 IP,并以 Marvin 身份登录。示例:mstsc /v 192.168.100.99

      2. Marvin 用户身份,通过以管理员身份运行打开 PS 控制台。

      3. 运行 Build-Mof.ps1 以验证构建环境是否已准备就绪,该命令会为所有 OI 机器生成 Managed Object Format (MOF) 文件。

      # Running Build-MOf.ps1
      cd C:\dsc
      ./Build-Mof.ps1
      
  6. 升级 CA-ISSUING 和 CA-WEB

    1. CONFIG1 上,以 Marvin 身份运行以下脚本来配置 CA-ISSUING 虚拟机。 powershell $la_creds = Get-Credential -Message "Provide local admin credentials for CA- VMs" ./Update-RemoteHost.ps1 -ComputerName <SITE>-CA-ISSUING1 -Credentials $la_creds -SetLcm -RemoveExisting

    2. CONFIG1 上,以 Marvin 身份运行以下脚本来配置 CA-WEB1 服务器。

    $la_creds = Get-Credential -Message "Provide local admin credentials for CA- VMs"
    .\Update-RemoteHost.ps1 -ComputerName <SITE>-CA-WEB1 -Credential $la_creds SetLcm -RemoveExisting
    
  7. 升级 CA_ROOT

    1. 开启 CA-ROOT1。

      1. 以管理员身份登录 BM01 主机。

      2. 以管理员身份在 Windows 上打开 PowerShell,然后运行以下命令:

      Start-VM -Name <SITE>-CA-ROOT1
      
    2. CONFIG1 虚拟机初始化 CA-ROOT1 虚拟机。

      .\Update-RemoteHost.ps1  -ComputerName <SITE>-CA-ROOT1 -Credential $la_creds SetLcm -RemoveExisting
      
    3. 如果 CA_ROOT 虚拟机在运行上一个脚本后未重新启动,请手动重新启动。

    w32tm /query /peers
    
    #Peers: 1
    
    Peer: DC2-DC1.hq.local
    State: Active
    Time Remaining: 31.2997107s
    Mode: 3 (Client)
    Stratum: 1 (primary reference - syncd by radio clock)
    PeerPoll Interval: 6 (64s)
    HostPoll Interval: 6 (64s)
    
  8. 升级 DHCP 虚拟机

    1. CONFIG1 上,以 marvin 用户身份升级 DHCP 虚拟机。先从 DHCP2 开始,然后是 DHCP1

      • 配置 DHCP2:
      .\Update-RemoteHost.ps1 -ComputerName <SITE>-DHCP2 -Credential $da_creds SetLCM -RemoveExisting
      
      • 配置 DHCP1
      .\Update-RemoteHost.ps1 -ComputerName <SITE>-DHCP1 -Credential $da_creds SetLCM -RemoveExisting
      
  9. 升级网域控制器

    1. CONFIG1 上,以 marvin 用户身份升级主网域控制器。
    .\Update-RemoteHost.ps1 -ComputerName <SITE>-DC1 -Credential $da_creds SetLCM -RemoveExisting
    
    1. 验证与 SyncServer 的时间同步

      1. 网域管理员身份通过 RDP 连接到 <SITE>-DC1
      2. 管理员身份打开 Powershell 窗口。
      3. 运行以下命令以验证时间配置。

        # Checking time status
        w32tm /query /status /verbose
        
      4. 运行以下命令以测试时间重新同步:

        # Testing time resyncronization
        w32tm /resync
        
        # Desired output
        Sending resync command to local computer
        The command completed successfully.
        
      5. 重新验证时间配置是否正确且没有错误。

        # Checking time status
        w32tm /query /status /verbose
      
    2. 升级 BM02 上的第二个 DC 虚拟机 (<SITE>-DC2)

      1. 使用 CONFIG1marvin 本地管理员账号登录。
      2. 以管理员身份打开 PowerShell 终端,然后运行以下脚本。
      cd c:\dsc
      
      .\Update-RemoteHost.ps1 -ComputerName <SITE>-DC2 -Credential $da_creds -SetLCM -RemoveExisting
      
      
      1. 服务器重新启动。等待 15 分钟或 AD 复制完成。

      2. 验证 AD 复制

      3. 第二个 DC 启动并运行后,从其中一个网域控制器运行以下命令,以验证 Active Directory 复制:

      repadmin /replsummary
      
      1. 按照 #validate-ad-replication 中的说明验证结果。
  10. 升级 Microsoft Config Manager 虚拟机

    DC1-CONFIG1 上的 marvin Powershell 窗口中,设置并运行 DSC 配置:

    .\Update-RemoteHost.ps1 -ComputerName <SITE>-MCMDB1 -Credential $da_creds -SetLCM -RemoveExisting
    
    .\Update-RemoteHost.ps1 -ComputerName <SITE>-MCM1 -Credential $da_creds -SetLCM -RemoveExisting
    
    .\Update-RemoteHost.ps1 -ComputerName <SITE>-MCM2 -Credential $da_creds -SetLCM -RemoveExisting
    
  11. 升级 Splunk 虚拟机

    DC1-CONFIG1 上的 marvin Powershell 窗口中,设置并运行 DSC 配置:

     .\Update-RemoteHost.ps1 -ComputerName <SITE>-splunk-heavyfwd -Credential $da_creds -SetLCM -RemoveExisting
    
     .\Update-RemoteHost.ps1 -ComputerName <SITE>-splunk-indexer -Credential $da_creds -SetLCM -RemoveExisting
    
     .\Update-RemoteHost.ps1 -ComputerName <SITE>-splunk-manager -Credential $da_creds -SetLCM -RemoveExisting
    
     .\Update-RemoteHost.ps1 -ComputerName <SITE>-splunk-searchhead -Credential $da_creds -SetLCM -RemoveExisting
    
     .\Update-RemoteHost.ps1 -ComputerName <SITE>-universal -Credential $da_creds -SetLCM -RemoveExisting
    
  12. 升级 Nessus 虚拟机

    DC1-CONFIG1 上的 marvin Powershell 窗口中,设置并运行 DSC 配置:

     .\Update-RemoteHost.ps1 -ComputerName <SITE>-NESSUS1 -Credential $da_creds -SetLCM -RemoveExisting
    
     .\Update-RemoteHost.ps1 -ComputerName <SITE>-NESSUS2 -Credential $da_creds -SetLCM -RemoveExisting