升级到最新版本的 PostgreSQL、Redis 和 Salt 后,需要将 RaaS 节点从先前版本升级到最新版本。

请注意,数据库升级需要重新编制数据索引。如果数据复杂,数据库升级可能需要数小时。有关何时计划升级以及其他技巧的探讨,请参见升级 时最佳做法

重要事项:

在升级 RaaS 节点之前,必须备份系统数据以避免数据丢失。有关升级之前必须备份的文件和目录的说明,请参见备份数据

要升级 RaaS 节点,请执行以下操作:

  1. 从 Customer Connect 下载升级文件。
  2. 将对默认文件系统、pillar 数据和作业所做的任何更改另存为新文件或作业。
  3. 注意对默认目标进行的任何 pillar 分配。升级后需要重新分配。
  4. 使用下列命令停止 RaaS 服务:
    sudo systemctl stop raas
  5. 移除 /var/log/raas 目录中的日志文件。如果需要进行故障排除,清除日志文件会提供干净的日志文件。
  6. 使用以下命令移除当前安装的 API (RaaS) 版本:
    sudo yum remove raas
  7. 通过安装最新的 RPM 升级 RaaS 节点。使用以下示例命令,并替换为 RPM 的确切文件名:
    sudo yum install raas-rpm-file-name.rpm
  8. 重要说明:还原以下文件的备份:
    • /etc/raas/raas
    • /etc/raas/raas.secconf
    • /etc/raas/pki/
  9. 使用以下命令更新 raas 用户的权限:
    sudo chown -R raas:raas /etc/pki/raas/certs
  10. 可选:如果您具有 SaltStack SecOps 许可证,并且希望添加合规性库,请在 /etc/raas/raas 文件中添加以下新部分:
    sec:
      ingest_override: true
      locke_dir: locke
      post_ingest_cleanup: true
      username: 'secops'
      content_url: 'https://enterprise.saltstack.com/secops_downloads'
      download_enabled: true
      download_frequency: 86400
      stats_snapshot_interval: 3600
      compile_stats_interval: 10
      ingest_on_boot: True
      content_lock_timeout: 60
      content_lock_block_timeout: 120
    注:

    此步骤为可选步骤,仅适用于具有有效 SaltStack SecOps 许可证的组织。此加载项模块适用于 SaltStack Config 版本 6.0 及更高版本。/etc/raas/raas 配置文件中的先前配置选项特定于这些加载项模块。

  11. 可选:如果您具有 SaltStack SecOps 许可证,并且希望添加漏洞库,请在 /etc/raas/raas 文件中添加新部分:
    vman:
      vman_dir: vman
      download_enabled: true
      download_frequency: 86400
      username: vman
      content_url: 'https://enterprise.saltstack.com/vman_downloads'
      ingest_on_boot: true
      compile_stats_interval: 60
      stats_snapshot_interval: 3600
      old_policy_file_lifespan: 2
      delete_old_policy_files_interval: 86400
      tenable_asset_import_enabled: True
      tenable_asset_import_grains: ['fqdn', 'ipv4', 'ipv6', 'hostname', 'mac_address', 'netbios_name',
                                    'bios_uuid', 'manufacturer_tpm_id', 'ssh_fingerprint',
                                    'mcafee_epo_guid', 'mcafee_epo_agent_guid', 'symantec_ep_hardware_key',
                                    'qualys_asset_id', 'qualys_host_id', 'servicenow_sys_id', 'gcp_project_id',
                                    'gcp_zone', 'gcp_instance_id', 'azure_vm_id', 'azure_resource_id',
                                    'aws_availability_zone', 'aws_ec2_instance_ami_id',
                                    'aws_ec2_instance_group_name', 'aws_ec2_instance_state_name',
                                    'aws_ec2_instance_type', 'aws_ec2_name', 'aws_ec2_product_code',
                                    'aws_owner_id', 'aws_region', 'aws_subnet_id', 'aws_vpc_id',
                                    'installed_software', 'bigfix_asset_id'
                                    ]
    注:

    此步骤为可选步骤,仅适用于具有有效 SaltStack SecOps 许可证的组织。此加载项模块适用于 SaltStack Config 版本 6.0 及更高版本。/etc/raas/raas 配置文件中的先前配置选项特定于这些加载项模块。

  12. RaaS 当前有一个与失效作业相关的已知问题。升级时,某些用户可能会注意到一系列停滞在挂起状态的失效作业。升级 RaaS 节点可能会导致这些作业运行,除非先将其清除。

    为防止发生这种情况,请先检查数据库中是否存储了任何旧命令。在 PostgreSQL 节点上,使用以下命令检查任何挂起的作业:

    select count(1) from commands where state='new';

    输出结果是挂起作业的数量。如果作业数量为 0,请继续执行升级过程的其余步骤。如果作业数量大于 0,请联系支持部门进行解决。

  13. 使用下列命令升级 RaaS 服务数据库:
    sudo su - raas
    raas upgrade
    注:

    根据数据库的大小,升级可能需要数分钟到一个小时以上不等。如果遇到错误,请查看 /var/log/raas/raas 日志文件以了解更多信息。

  14. 升级后,使用以下命令退出 raas 用户的会话:
    exit
  15. 使用下列命令启动 RaaS 服务:
    sudo systemctl enable raas
    sudo systemctl start raas

确认 SaltStack Config 正常运行且运行的是最新版本。继续执行下一部分。

后续操作

升级 RaaS 节点后,最终任务是升级主节点插件。有关详细信息,请参见升级主插件