Skip to content

Examples

Four cases from the daily work of Example Ltd, step by step, with screens of the application. Each shows what a person enters and what Heinzel Pro does in response: once entirely on its own, three times with an approval.

ExampleLevelIn one sentence
Backup alert at 02:10rw- Asks before changesThe on-call admin types one sentence. Heinzel Pro finds the cause, proposes a fix and waits for a tap on the phone.
Security updates every nightrwx Changes aloneOne schedule, twelve servers, nobody watching. A mail in the morning, and what Heinzel Pro was not allowed to decide alone stands as a finding.
Fixing a findingrw- Asks before changesOne click turns the night's finding into a session. Heinzel Pro reads up, proposes two ways and closes the finding.
php2shell on 13 serversrw- Asks before changesTwo holes in PHP, one sentence from a phone. Heinzel Pro researches, checks every server and installs the fix: on one first, then on all.

Every example shows its level. Reading commands run at once at every level; whatever changes something waits for a person at rw- and runs alone at rwx. What the levels mean exactly is under Sessions.

Backup alert at 02:10

The nightly backup failed and the on-call admin is woken up. Instead of signing in and searching, they type one sentence into the phone. Heinzel Pro reads, finds the cause and waits for a tap before it repairs anything.

TaskThe backup on backup2 failed
WhoThe on-call admin, from the phone
Serverbackup2, copies to a file server at night
Your partOne sentence and a tap on Approve
Levelrw- Asks before changes

Step 1: You describe the problem

Input: I just got an alert. It is 02:10 at night. Why does the backup on backup2 not run?

No command, no jargon. You pick the server from the list and leave the level at "Asks before changes": Heinzel Pro reads on its own, every change waits for you.

A new session in Heinzel Pro: the typed sentence about the backup, below it the chosen server backup2 and the level "Asks before changes"

Step 2: Heinzel Pro reads without asking

Reading commands run at once. Each carries its classification and stays on the record, with output and duration.

Three commands later the cause is clear: the backup signs in to the file server through Kerberos, and Kerberos refuses when the clock is off by more than five minutes. The clock of backup2 is six minutes slow because the time server no longer answers.

The session: three reading commands with their output, the backup's log, the clock and the time server, below them Heinzel Pro's answer with the cause

Step 3: Heinzel Pro proposes and waits

The next command changes something, so it waits. The on-call admin gets a message and sees on the phone what is to run and why: switch the time server, let the clock set itself, catch up on the backup. Two buttons, Approve or Deny.

The session on a phone: Heinzel Pro's answer, below it the card of the proposed command with classification, reason and the buttons Approve and Deny

Step 4: You approve, Heinzel Pro finishes

One tap. The command runs for seventeen minutes because the backup hangs on it. Then Heinzel Pro checks clock and log, writes into the server's journal what happened and what stays open, and signs off.

The next session on backup2 reads that journal, whether in a week or in a year.

The session afterwards: the approved command with duration and output, two checking commands, the journal entry for backup2 and Heinzel Pro's closing message

Security updates every night

Twelve web servers, every night at three. Nobody watches, nobody is woken up. What Heinzel Pro may not decide alone it leaves alone and reports; in the morning there is a mail.

TaskSecurity updates on twelve web servers
WhenEvery night at 03:00, as a schedule
WhoNobody. A mail in the morning.
Your partSet up the schedule once
Levelrwx Changes alone

Step 1: You set up the schedule

Input: Install the pending security updates on every server and check afterwards that all services run. What a server's journal exempts, leave alone and report as a finding.

Once, during the day. Name, server group, time, the task in your words, the level "Changes alone" and where the report goes. Nothing more.

The form for a new schedule: name, the server group Web with twelve servers, daily at 03:00, the task in your own words and the level "Changes alone"

Step 2: At three Heinzel Pro reads on all twelve

The schedule opens one session over the whole group. Heinzel Pro checks on every server what is pending and reads the server's journal.

On web07 a colleague held back two PHP packages in March because a business application stopped answering after the update. That is in the journal, so Heinzel Pro keeps to it.

The schedule's session: the reading command on web07 with the list of pending packages, the two PHP 7.4 packages among them, the query of held packages and Heinzel Pro's answer to it

Step 3: It installs what it may, and stops where the journal says so

On all twelve servers the updates run through on their own; on web07 the two held packages stay. Then Heinzel Pro checks whether a service failed anywhere.

What stays behind becomes a finding on the list, not a mail at three.

The session further down: the update command on web07, whose output holds back two packages, and the same command on web08 with all nine packages

Step 4: In the morning you read the report

A mail shortly after three, read at eight: twelve servers updated, all services run, one finding on web07. What happens with it is the next example.

The schedule's mail: subject, sender and recipient, below them Heinzel Pro's report with the summary and the list of commands that ran

Fixing a finding

The nightly run left two security updates on web07 alone because the journal demanded it. In the morning one click turns that into a session: Heinzel Pro reads up, proposes two ways, you decide.

TaskTwo held-back PHP updates on web07
FromThe finding of the nightly run
WhoYou, in the morning
Your partOne click, one sentence, one approval
Levelrw- Asks before changes

Step 1: You open the finding

The findings page collects what the nightly runs were not allowed to decide alone, with a severity and a proposal of what to do. One click on "Open a new session to fix it", nothing to type.

The findings page in Heinzel Pro: one open finding about web07 with severity, description and the button "Open a new session to fix it"

Step 2: The session is prepared

Server, task and the finding are already in place. The level stays at "Asks before changes", because this time a person is to decide. You start.

A new session, filled in from the finding: the note about the finding, the task in the text field and the server web07

Step 3: Heinzel Pro reads up and proposes two ways

It finds in the application's changelog why the update went wrong in March, and that the reason has been fixed since May. Then two ways: update the two packages today, or move the application to PHP 8.3. It recommends the first and waits.

The session: Heinzel Pro's answer with the reason for the outage in March and two ways, below it the card of the waiting command with Approve and Deny

Step 4: You answer and approve

Input: First way. Please record the second as a finding so we tackle it next month.

Heinzel Pro updates, restarts the service, checks the application's login page and writes the journal. The night's finding is closed, and the new one stands on the list with your sentence, for next month.

The findings page, view Closed: the finding about web07 is settled by the session, with a link to the last run

php2shell on 13 servers

Two holes in PHP, published in the afternoon, every web application affected. One sentence from a phone, and Heinzel Pro researches, checks every server and installs the fix: on one first, on all of them after your go.

TaskClose php2shell on every affected server
WhoAn admin, from a phone
ServersAll 13 of Example Ltd, web01 first
Your partOne sentence, two taps on Approve, one go
Levelrw- Asks before changes

Step 1: You describe the task, for every server

Input: Research php2shell and fix the problem on every server affected by it.

One sentence, the way you would write it to a colleague. "The same on many" makes it a rollout: one session per server, on web01 first, the others after your go. The level stays at "Asks before changes".

A new session in Heinzel Pro on a phone: the typed sentence about php2shell, the choice "The same on many" and the 13 servers chosen, web01 as the first

Step 2: It researches, and asks even for that

Heinzel Pro wants to read the announcement on php.net. A fetch from the net can send data too, so it waits for your tap. Then it reads on its own: which PHP packages are on web01, whether the new version is in the mirror yet, which services run.

Then it is clear: web01 is affected, PHP 8.2.29 as php-fpm behind nginx, and the fix is ready.

The session on web01: the fetch of the announcement from php.net with the classification "write" and its output, Heinzel Pro's answer on the two holes, the reading command with the PHP packages, and the finding that web01 is affected

Step 3: You read the plan and approve it

Three steps, each with its command, server and classification: package, service, read-only. With them, what could go wrong and how to undo it. One tap approves all three; they run in this order, each only once the one before succeeded.

The plan in the session: three steps with command, server and classification, package, service and read-only, below them what could go wrong, how to undo it, and the button "Approve the plan"

Step 4: After your go the other twelve follow

web01 is closed after 24 seconds, the portal answers 200. You say go, and the other servers get a session each, four at a time. What was approved on web01 and succeeded runs there without asking. backup2 has no PHP: its session says so and changes nothing.

The rollout's page: the task, the go by Anna Berg, below it the table of the 13 servers with their state, web01 and backup2 through, three running, the rest waiting

A fifth example as a film

The database moves while the website keeps running: 55 seconds on heinzel-pro.de, from a session in Heinzel Pro.