NetOps - Firewall Version and Content Upgrade

Network operations playbook that updates the version and content of the firewall. You must have Superuser permissions to update the PAN-OS version.

PAN-OS by Palo Alto Networks · 15 tasks · 1 input · 0 outputs

Details

IDNetOps - Firewall Version and Content Upgrade
From Version5.0.0
Tasks15

README

Updates the version and the content of the firewall. The superuser is requiered in order to update the PAN-OS version.

Dependencies

This playbook uses the following sub-playbooks, integrations, and scripts.

Sub-playbooks

  • GenericPolling

Integrations

  • Panorama

Scripts

This playbook does not use any scripts.

Commands

  • pan-os-download-latest-content-update
  • pan-os-check-latest-panos-software
  • pan-os-content-update-download-status
  • pan-os-install-latest-content-update
  • pan-os-download-panos-version
  • pan-os-content-update-install-status
  • pan-os-download-panos-status
  • pan-os-device-reboot
  • pan-os-install-panos-version
  • pan-os-install-panos-status

Playbook Inputs


Name Description Default Value Source Required
target_version The target PAN-OS version to upgrade. targetfirewallversion incident Optional

Playbook Outputs


There are no outputs for this playbook.

Inputs

  • target_version — Target PAN-OS version to which to upgrade.

Commands used

pan-os-check-latest-panos-software pan-os-content-update-download-status pan-os-content-update-install-status pan-os-device-reboot pan-os-download-latest-content-update pan-os-download-panos-status pan-os-download-panos-version pan-os-install-latest-content-update pan-os-install-panos-status pan-os-install-panos-version

Flowchart

Start Start Download the latest content update - pan-os-download-latest-content-update Download the latest conte... pan-os-download-latest-conten... Check on the content download status - pan-os-content-update-download-status Check on the content down... pan-os-content-update-downloa... Install the latest content update - pan-os-install-latest-content-update Install the latest conten... pan-os-install-latest-content... Check on the content installation status - pan-os-content-update-install-status Check on the content inst... pan-os-content-update-install... Check for the latest PAN-OS software - pan-os-check-latest-panos-software Check for the latest PAN-... pan-os-check-latest-panos-sof... Download the latest PAN-OS software update - pan-os-download-panos-version Download the latest PAN-O... pan-os-download-panos-version Install the latest PAN-OS software update - pan-os-install-panos-version Install the latest PAN-OS... pan-os-install-panos-version Check on the PAN-OS software installation status - pan-os-install-panos-status Check on the PAN-OS softw... pan-os-install-panos-status Reboot the firewall - pan-os-device-reboot Reboot the firewall pan-os-device-reboot GenericPolling - GenericPolling GenericPolling GenericPolling GenericPolling - GenericPolling GenericPolling GenericPolling Download PAN-OS Status - pan-os-download-panos-status Download PAN-OS Status pan-os-download-panos-status GenericPolling - GenericPolling GenericPolling GenericPolling GenericPolling - GenericPolling GenericPolling GenericPolling
id: NetOps - Firewall Version and Content Upgrade
version: -1
fromversion: 5.0.0
name: NetOps - Firewall Version and Content Upgrade
description: Network operations playbook that updates the version and content of
  the firewall. You must have Superuser permissions to update the PAN-OS version.
starttaskid: "0"
tasks:
  "0":
    id: "0"
    taskid: b7fe4fdf-e359-4010-89e6-60b4c288f797
    type: start
    task:
      id: b7fe4fdf-e359-4010-89e6-60b4c288f797
      version: -1
      name: ""
      description: ""
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "1"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": -210
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "1":
    id: "1"
    taskid: e540b70a-08b7-4979-8266-aa503a1e3500
    type: regular
    task:
      id: e540b70a-08b7-4979-8266-aa503a1e3500
      version: -1
      name: Download the latest content update
      description: Downloads the latest content update.
      script: Panorama|||pan-os-download-latest-content-update
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "2"
    scriptarguments:
      target: {}
    reputationcalc: 2
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": -40
        }
      }
    note: true
    timertriggers: []
    ignoreworker: false
  "2":
    id: "2"
    taskid: dac55564-0c88-4e85-80e0-74af6b9b4990
    type: regular
    task:
      id: dac55564-0c88-4e85-80e0-74af6b9b4990
      version: -1
      name: Check on the content download status
      description: Checks content update download status.
      script: Panorama|||pan-os-content-update-download-status
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "11"
    scriptarguments:
      job_id:
        complex:
          root: Panorama
          accessor: Content.Download.JobID
      target: {}
    reputationcalc: 2
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 180
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "3":
    id: "3"
    taskid: b28debf8-d54b-42b3-841c-5ebfad3cfde6
    type: regular
    task:
      id: b28debf8-d54b-42b3-841c-5ebfad3cfde6
      version: -1
      name: Install the latest content update
      description: Installs the latest content update.
      script: Panorama|||pan-os-install-latest-content-update
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "4"
    scriptarguments:
      target: {}
    reputationcalc: 2
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 570
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "4":
    id: "4"
    taskid: c342a8fd-a87d-4057-8edb-35ecc623ff88
    type: regular
    task:
      id: c342a8fd-a87d-4057-8edb-35ecc623ff88
      version: -1
      name: Check on the content installation status
      description: Checks on the content update install status.
      script: Panorama|||pan-os-content-update-install-status
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "13"
    scriptarguments:
      job_id:
        complex:
          root: Panorama
          accessor: Content.Install.JobID
      target: {}
    reputationcalc: 2
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 760
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "5":
    id: "5"
    taskid: 5f5091be-db9d-4914-80ff-5b4b151a1400
    type: regular
    task:
      id: 5f5091be-db9d-4914-80ff-5b4b151a1400
      version: -1
      name: Check for the latest PAN-OS software
      description: Checks the PAN-OS software version from the repository.
      script: Panorama|||pan-os-check-latest-panos-software
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "6"
    scriptarguments:
      target: {}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 1150
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "6":
    id: "6"
    taskid: 90d3c358-46d3-4ea6-8508-2cddf6e962e5
    type: regular
    task:
      id: 90d3c358-46d3-4ea6-8508-2cddf6e962e5
      version: -1
      name: Download the latest PAN-OS software update
      description: Downloads target PAN-OS version to be installed.
      script: Panorama|||pan-os-download-panos-version
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "14"
    scriptarguments:
      target: {}
      target_version:
        complex:
          root: inputs.target_version
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 1340
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "7":
    id: "7"
    taskid: 4f33c545-4fd5-485e-8b92-cc3e4689412e
    type: regular
    task:
      id: 4f33c545-4fd5-485e-8b92-cc3e4689412e
      version: -1
      name: Install the latest PAN-OS software update
      description: Installs the target PAN-OS version.
      script: Panorama|||pan-os-install-panos-version
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "8"
    scriptarguments:
      target: {}
      target_version:
        complex:
          root: inputs.target_version
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 1930
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "8":
    id: "8"
    taskid: 28a4fb31-0ae2-40e4-804d-692bd0aca523
    type: regular
    task:
      id: 28a4fb31-0ae2-40e4-804d-692bd0aca523
      version: -1
      name: Check on the PAN-OS software installation status
      description: Checks the PAN-OS installation status.
      script: Panorama|||pan-os-install-panos-status
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "16"
    scriptarguments:
      job_id:
        complex:
          root: Panorama
          accessor: PANOS.Install.JobID
      target: {}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 2110
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "9":
    id: "9"
    taskid: ebcba4bf-20e6-40f5-87b5-410847e31c04
    type: regular
    task:
      id: ebcba4bf-20e6-40f5-87b5-410847e31c04
      version: -1
      name: Reboot the firewall
      description: Reboots the Firewall device.
      script: Panorama|||pan-os-device-reboot
      type: regular
      iscommand: true
      brand: Panorama
    scriptarguments:
      target: {}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 2520
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "11":
    id: "11"
    taskid: 14794c89-6d30-463a-812c-9e93b4e5f710
    type: playbook
    task:
      id: 14794c89-6d30-463a-812c-9e93b4e5f710
      version: -1
      name: GenericPolling
      description: |-
        Use this playbook as a sub-playbook to block execution of the master playbook until a remote action is complete.
        This playbook implements polling by continuously running the command in Step \#2 until the operation completes.
        The remote action should have the following structure:

        1. Initiate the operation.
        2. Poll to check if the operation completed.
        3. (optional) Get the results of the operation.
      playbookName: GenericPolling
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "3"
    scriptarguments:
      AdditionalPollingCommandArgNames: {}
      AdditionalPollingCommandArgValues: {}
      Ids:
        complex:
          root: Panorama
          accessor: Content.Download.JobID
      Interval:
        simple: "1"
      PollingCommandArgName:
        simple: job_id
      PollingCommandName:
        simple: pan-os-content-update-download-status
      Timeout:
        simple: "10"
      dt:
        simple: Panorama.Content.Download(val.Status !== 'Completed').JobID
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 700,
          "y": 370
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "13":
    id: "13"
    taskid: 6ed771e0-1ce5-47b4-89ea-15635a0cf374
    type: playbook
    task:
      id: 6ed771e0-1ce5-47b4-89ea-15635a0cf374
      version: -1
      name: GenericPolling
      description: |-
        Use this playbook as a sub-playbook to block execution of the master playbook until a remote action is complete.
        This playbook implements polling by continuously running the command in Step \#2 until the operation completes.
        The remote action should have the following structure:

        1. Initiate the operation.
        2. Poll to check if the operation completed.
        3. (optional) Get the results of the operation.
      playbookName: GenericPolling
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "5"
    scriptarguments:
      AdditionalPollingCommandArgNames: {}
      AdditionalPollingCommandArgValues: {}
      Ids:
        complex:
          root: Panorama
          accessor: Content.Install.JobID
      Interval:
        simple: "1"
      PollingCommandArgName:
        simple: job_id
      PollingCommandName:
        simple: pan-os-content-update-install-status
      Timeout:
        simple: "10"
      dt:
        simple: Panorama.Content.Install(val.Status !== 'Completed' && val.Status
          !== 'Failed').JobID
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 700,
          "y": 960
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "14":
    id: "14"
    taskid: 33afd485-aeef-49c6-83fb-23250779f58e
    type: regular
    task:
      id: 33afd485-aeef-49c6-83fb-23250779f58e
      version: -1
      name: Download PAN-OS Status
      description: PAN-OS download status
      script: Panorama|||pan-os-download-panos-status
      type: regular
      iscommand: true
      brand: Panorama
    nexttasks:
      '#none#':
      - "15"
    scriptarguments:
      job_id:
        complex:
          root: Panorama
          accessor: PANOS.Download.JobID
      target: {}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 700,
          "y": 1540
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "15":
    id: "15"
    taskid: c74d8f1c-3dbd-49f9-8b94-59a9007a0a1c
    type: playbook
    task:
      id: c74d8f1c-3dbd-49f9-8b94-59a9007a0a1c
      version: -1
      name: GenericPolling
      description: |-
        Use this playbook as a sub-playbook to block execution of the master playbook until a remote action is complete.
        This playbook implements polling by continuously running the command in Step \#2 until the operation completes.
        The remote action should have the following structure:

        1. Initiate the operation.
        2. Poll to check if the operation completed.
        3. (optional) Get the results of the operation.
      playbookName: GenericPolling
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "7"
    scriptarguments:
      AdditionalPollingCommandArgNames: {}
      AdditionalPollingCommandArgValues: {}
      Ids:
        complex:
          root: Panorama
          accessor: PANOS.Download.JobID
      Interval:
        simple: "10"
      PollingCommandArgName:
        simple: job_id
      PollingCommandName:
        simple: pan-os-download-panos-status
      Timeout:
        simple: "20"
      dt:
        simple: Panorama.PANOS.Download(val.Status !== 'Completed' && val.Status !==
          'Failed').JobID
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 700,
          "y": 1740
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "16":
    id: "16"
    taskid: cafe7cfd-7bb9-4caf-8cd5-dd6aaab69dd5
    type: playbook
    task:
      id: cafe7cfd-7bb9-4caf-8cd5-dd6aaab69dd5
      version: -1
      name: GenericPolling
      description: |-
        Use this playbook as a sub-playbook to block execution of the master playbook until a remote action is complete.
        This playbook implements polling by continuously running the command in Step \#2 until the operation completes.
        The remote action should have the following structure:

        1. Initiate the operation.
        2. Poll to check if the operation completed.
        3. (optional) Get the results of the operation.
      playbookName: GenericPolling
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "9"
    scriptarguments:
      AdditionalPollingCommandArgNames: {}
      AdditionalPollingCommandArgValues: {}
      Ids:
        complex:
          root: Panorama
          accessor: PANOS.Install.JobID
      Interval:
        simple: "10"
      PollingCommandArgName:
        simple: job_id
      PollingCommandName:
        simple: pan-os-install-panos-status
      Timeout:
        simple: "20"
      dt:
        simple: Panorama.PANOS.Install(val.Status !== 'Completed' && val.Status !==
          'Failed').JobID
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 700,
          "y": 2320
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
view: |-
  {
    "linkLabelsPosition": {},
    "paper": {
      "dimensions": {
        "height": 2825,
        "width": 380,
        "x": 700,
        "y": -210
      }
    }
  }
inputs:
- key: target_version
  value:
    complex:
      root: incident
      accessor: targetfirewallversion
  required: false
  description: Target PAN-OS version to which to upgrade.
outputs: []
tests:
- No Tests
supportedModules:
- agentix
- xsiam
- cloud_posture