Upgrade Linux Forwarder (Manual & Mass Upgrades)

These instructions describe how to upgrade the Stairwell Linux Forwarder, whether you’re upgrading a single host or managing hundreds across your environment.

❗ Known Limitations

  • Web app and API-based upgrades are not supported.
  • All upgrades must be performed manually or via automation using package managers or orchestration tools.

🔧 Prerequisites

  • A previous version of the Stairwell Linux Forwarder must be installed and configured.
  • Ensure that /etc/stairwell/config.json exists - this file is preserved during upgrade.

Step 1: Manual Upgrade (Single System)

🐧 RHEL, Rocky, Alma (7, 8, 9)

# Download latest package for your RHEL version
curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.el8.amd64.rpm

# Upgrade package in place
sudo rpm -U stairwell-2.4.5-1.el8.amd64.rpm

🐧 Debian / Ubuntu (20.04, 22.04)

# Download latest package
curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.amd64.deb

# Install and upgrade in place
sudo apt install ./stairwell-2.4.5-1.amd64.deb

🧓 Legacy: RHEL 6 (EOL)

Note: RHEL 6 is end-of-life and receives no security updates.

curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.el6.amd64.rpm
sudo rpm -U stairwell-2.4.5-1.el6.amd64.rpm

Step 2: Verify the Upgrade

After upgrading, the Stairwell service should automatically restart.

Check service status

sudo systemctl status stairwell.service
# or
sudo service stairwell status

View logs

journalctl -u stairwell.service -f
# or
sudo tail -f /var/log/stairwell/fileshipper.log

🚀 Performing Mass Upgrades

When managing many Linux hosts, manual upgrades are inefficient.
Use automation tools or package repositories to orchestrate updates across your entire fleet.


1. Mass Upgrade with Ansible

Ansible provides an idempotent, version-controlled approach to upgrade multiple systems in parallel.

Example Playbook

---
- name: Upgrade Stairwell Forwarder
  hosts: linux_hosts
  become: yes

  vars:
    stairwell_version: "2.4.5"

  tasks:
    - name: Download latest package for RHEL
      get_url:
        url: "https://downloads.stairwell.com/linux/{{ stairwell_version }}/stairwell-{{ stairwell_version }}-1.el8.amd64.rpm"
        dest: "/tmp/stairwell.rpm"
      when: ansible_os_family == "RedHat"

    - name: Upgrade package (RHEL)
      yum:
        name: "/tmp/stairwell.rpm"
        state: latest
      when: ansible_os_family == "RedHat"

    - name: Download latest package for Debian/Ubuntu
      get_url:
        url: "https://downloads.stairwell.com/linux/{{ stairwell_version }}/stairwell-{{ stairwell_version }}-1.amd64.deb"
        dest: "/tmp/stairwell.deb"
      when: ansible_os_family == "Debian"

    - name: Upgrade package (Debian/Ubuntu)
      apt:
        deb: "/tmp/stairwell.deb"
        state: latest
      when: ansible_os_family == "Debian"

    - name: Restart Stairwell service
      systemd:
        name: stairwell.service
        state: restarted

Benefits

  • Parallel execution across thousands of hosts
  • Repeatable and safe (idempotent)
  • Version pinning (stairwell_version) for controlled rollouts

2. Mass Upgrade via Internal Package Repository

If your organization uses a central YUM or APT mirror:

  1. Mirror Stairwell .rpm or .deb files in your internal repository.
  2. Add your repo configuration:
    • RHEL: /etc/yum.repos.d/stairwell.repo
    • Debian: /etc/apt/sources.list.d/stairwell.list
  3. Trigger the upgrade using your standard patch management cycle:
# RHEL / Rocky / Alma
sudo yum update stairwell

# Debian / Ubuntu
sudo apt upgrade stairwell

This method integrates Stairwell Forwarder upgrades into your existing OS update pipeline.


3. Cloud or Script-Based Orchestration

If using startup or provisioning scripts (cloud-init, Terraform, etc.), you can redeploy upgrades automatically:

Example (AWS EC2 via SSM)

aws ssm send-command   --targets "Key=tag:Role,Values=stairwell-forwarder"   --document-name "AWS-RunShellScript"   --comment "Upgrade Stairwell Forwarder to v2.4.5"   --parameters 'commands=[
    "curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.amd64.deb",
    "sudo apt install -y ./stairwell-2.4.5-1.amd64.deb",
    "sudo systemctl restart stairwell.service"
  ]'

This approach is ideal for cloud fleets or autoscaling groups where instances refresh frequently.


4. Best Practices for Mass Upgrades

CategoryRecommendation
Rollout strategyUse staged upgrades — start with 5–10% of systems before full rollout
MonitoringTrack system logs (journalctl -u stairwell.service) for healthy restarts
Resource loadExpect short bursts of CPU/disk usage after upgrades
Version validationRun rpm -q stairwell or dpkg -s stairwell to confirm target version
Rollback planKeep a previous .rpm / .deb version cached locally for emergency downgrades
Secrets managementUse tools like Ansible Vault, AWS Secrets Manager, or GCP Secret Manager for tokens

5. Verify Fleet-Wide Upgrade Success

You can confirm all machines are upgraded successfully by running:

ansible all -m shell -a "stairwell --version"

or checking Stairwell’s web console — upgraded assets will report the latest version (v2.4.5).