mwallraf.oneos_upgrader

oneos_upgrader

Ansible 角色用于升级运行 OneOS 软件的 Ekinops OneAccess 设备。主要有两个操作系统版本:OneOS 5 和 OneOS 6。

OneOS 5 与 Cisco IOS-XE 非常相似,软件镜像应该存储在闪存中,并且需要一个启动命令来指示应加载哪个软件。

OneOS 6 有主软件库和冗余软件库,每个软件库可能加载不同的软件。在重新加载路由器之前,您必须指明哪个软件库是主库。

这个角色自动支持这两个版本。

要求

  • ansible.utils
  • mwallraf.ekinops

故障

如果发生故障,过程将被中止,这可能意味着报告不会生成。失败的主机在报告中也不会显示。

角色标签

您可以使用四个标签来定义角色的模式,如果没有指定标签,则将执行完整的升级:

  • report:仅运行预检查并生成状态报告(默认情况下此标签始终会执行)
  • staging:执行所有可能的任务以准备升级,但不会造成任何停机,通常这意味着在准备过程结束后只需重启
  • upload:仅执行文件上传过程,仅上传升级所需的文件
  • upgrade:执行完成升级所需的所有必要步骤

默认角色变量

以下变量默认配置,但可根据需要进行覆盖:

  • auto_configure_pre_requisites:切换预配置的自动配置(例如启用 SCP 服务器) 默认值 = true

计算变量

以下变量将根据给定的变量和运行配置进行计算:

  • running_os_is_compliant:指示运行的操作系统是否已符合要求(与所需的操作系统版本进行比较)
  • boot_os_is_compliant:指示引导的操作系统是否已符合要求(与所需的引导版本进行比较)
  • scp_is_enabled:指示SCP是否已启用

升级过程

根据标签,升级过程可能会有所不同。默认情况下将进行 完整升级

报告模式

报告模式 中,我们只会进行一些基本检查并生成报告,指示路由器是否应该升级以及是否有足够的磁盘空间。

使用方式:

ansible-playbook -i hosts playbook.yml --tags report

Playbook 任务:

  • 连接并获取信息
  • 设置额外信息以确定路由器和升级过程的状态
  • 为每个主机显示调试信息

详细信息:

  • 任务:
  • oneos_upgrader : GATHER FACTS > 主机名 标记: [always]
  • oneos_upgrader : GATHER FACTS > 获取系统详细信息 标记: [always]
  • oneos_upgrader : GATHER FACTS > 获取 SSH 详细信息 标记: [always]
  • oneos_upgrader : SET FACT > 获取所需操作系统文件统计 标记: [always]
  • oneos_upgrader : SET FACT > 所需操作系统文件统计 标记: [always]
  • oneos_upgrader : SET FACT > 获取所需引导文件统计 标记: [always]
  • oneos_upgrader : SET FACT > 所需引导文件统计 标记: [always]
  • oneos_upgrader : SET FACT > 获取所需恢复文件统计 标记: [always]
  • oneos_upgrader : SET FACT > 所需恢复文件统计 标记: [always]
  • oneos_upgrader : GATHER FACTS > 显示内存 标记: [always]
  • oneos_upgrader : SET FACT > 内存信息 标记: [always]
  • oneos_upgrader : MAIN > 运行特定于操作系统的 gather_facts 任务 标记: [report, staging, upgrade]
  • oneos_upgrader : SET FACT > 计算是否需要升级 标记: [always]
  • oneos_upgrader : SET FACT > scp_is_enabled 标记: [always]
  • oneos_upgrader : SET FACT > 检查文件是否存在于磁盘或软件库 标记: [always]
  • oneos_upgrader : SET FACT > 文件上传需求 标记: [always]
  • oneos_upgrader : SET FACT > 恢复文件是否存在于磁盘 标记: [always]
  • oneos_upgrader : SET FACT > 磁盘空间是否足够计算 标记: [always]
  • oneos_upgrader : REPORT > 获取主机详细信息 标记: [report, staging, upgrade]
  • DEBUG > 输出所有变量 标记: [always]
  • 将文件模板化到 /etc/file.conf 标记: [always]

计划生成概述CSV报告的模板,由于这应该作为最后一步在剧本中运行,因此必须从剧本中调用。

  post_tasks:
    - name: REPORT > 保存到文件
      ansible.builtin.template:
        src: "roles/oneos_upgrader/templates/report_overview.j2"
        dest: report.txt
      tags:
        - always

准备模式

准备模式 中,所有必要的检查都完成,所有文件都上传,升级正在准备中,不会造成任何中断。

使用方式:

ansible-playbook -i hosts playbook.yml --tags staging

Playbook 任务:

  • 连接并获取信息
  • 设置额外信息以确定路由器和升级过程的状态
  • 如果设备上没有空间,则会删除旧文件
    • 重新计算磁盘空间
  • 如果有任何预配置作业,则会执行(例如启用 SCP)
  • 如有必要,上传文件
    • 如果所有文件没有空间,则首先将引导文件复制
  • 如果没有待处理的引导镜像升级,则正在准备软件库或引导文件

如果需要多个升级(引导 + 恢复 + 操作系统),则无法同时准备所有内容。如果所有文件的磁盘空间足够,则上传将完成。文件的加载只能在第一个文件上进行(例如引导),因为需要重启才能继续。因此,多阶段升级应逐步进行,或在升级过程中执行额外步骤。

关于项目

Ansible role for upgrading Ekinops-OneAccess OneOS devices

安装
ansible-galaxy install mwallraf.oneos_upgrader
许可证
Unknown
下载
93
拥有者