Script for updating SW and HW

ROS script

/system/scheduler add \
  interval=1d \
  name=MikrotikUpgrade \
  on-event="/log/info message=UPGRADE_SOFT_CHECK \
    \nsystem package update check-for-updates \
    \n:if ([/system package update get installed-version] != [/system package update get latest-version]) do={ \
    \n/log/info message=UPGRADE_SOFT_UPDATE \
    \n/system package update install; \
    \n} else={ \
    \n/log/info message=UPGRADE_SOFT_SKIP \
    \n} \
    \n/log/info message=UPGRADE_HARD_CHECK \
    \n:if ([/system routerboard get current-firmware] != [/system routerboard get upgrade-firmware]) do={ \
    \n/log/info message=UPGRADE_HARD_UPDATE \
    \n/system routerboard upgrade; \
    \n:delay 40s \
    \n/system reboot \
    \n} else={ \
    \n/log/info message=UPGRADE_HARD_SKIP \
    \n}" start-date=1970-01-02 start-time=03:30:00

Ansible

- name: scheduler | MikrotikUpgrade
  vars:
    mikrotik_scheduler_name: 'MikrotikUpgrade'
  community.routeros.command:
    commands:
      - /system/scheduler/remove {{ mikrotik_scheduler_name }}
      - /system/scheduler/add
        name={{ mikrotik_scheduler_name }}
        interval=1d
        start-date=1970-01-02
        start-time=03:30:00
        on-event="/log/info message=UPGRADE_SOFT_CHECK
        \n\
        system package update check-for-updates
        \n\
        :if ([/system package update get installed-version] != [/system package update get latest-version]) do={
        \n\
          /log/info message=UPGRADE_SOFT_UPDATE
        \n\
          /system package update install;
        \n\
        } else={
        \n\
          /log/info message=UPGRADE_SOFT_SKIP
        \n\
        }
        \n\
        /log/info message=UPGRADE_HARD_CHECK
        \n\
        :if ([/system routerboard get current-firmware] != [/system routerboard get upgrade-firmware]) do={
        \n\
          /log/info message=UPGRADE_HARD_UPDATE
        \n\
          /system routerboard upgrade;
        \n\
          :delay 40s
        \n\
          /system reboot
        \n\
        } else={
        \n\
          /log/info message=UPGRADE_HARD_SKIP
        \n\
        }"