diff --git a/data/data/agent/files/usr/local/bin/agent-interactive-console.sh b/data/data/agent/files/usr/local/bin/agent-interactive-console.sh new file mode 100644 index 00000000000..7e228b5aee0 --- /dev/null +++ b/data/data/agent/files/usr/local/bin/agent-interactive-console.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +echo "agent-interactive-console start" +systemctl status pre-network-manager-config.service + +# TODO: Execute tui and remove sleep +echo "sleeping 60 seconds" +sleep 60 + +echo "agent-interactive-console end" \ No newline at end of file diff --git a/data/data/agent/systemd/units/agent-interactive-console.service b/data/data/agent/systemd/units/agent-interactive-console.service new file mode 100644 index 00000000000..7be345e40b7 --- /dev/null +++ b/data/data/agent/systemd/units/agent-interactive-console.service @@ -0,0 +1,19 @@ +[Unit] +Description=Get interactive user configuration at boot +After=network-pre.target NetworkManager.service pre-network-manager-config.service selinux.service +Before=network.target network.service agent.service NetworkManager-wait-online.service + +[Service] +Type=oneshot +TTYPath=/dev/tty15 +ExecStartPre=/usr/bin/chvt 15 +ExecStart="/usr/local/bin/agent-interactive-console.sh" +ExecStartPost=/usr/bin/chvt 1 +TimeoutStartSec=0 +StandardInput=tty +TTYVHangup=yes +TTYVTDisallocate=yes + +[Install] +WantedBy=default.target +RequiredBy=sshd.service systemd-logind.service getty@tty1.service \ No newline at end of file diff --git a/data/data/agent/systemd/units/agent-tui.path b/data/data/agent/systemd/units/agent-tui.path new file mode 100644 index 00000000000..36f6dcacfd7 --- /dev/null +++ b/data/data/agent/systemd/units/agent-tui.path @@ -0,0 +1,9 @@ +[Unit] +Description=Activate agent-interactive-console.service only when the agent-tui path exists + +[Path] +PathExists=/usr/local/bin/agent-tui +Unit=agent-interactive-console.service + +[Install] +WantedBy=default.target \ No newline at end of file diff --git a/pkg/asset/agent/image/ignition.go b/pkg/asset/agent/image/ignition.go index 1ab7f2c63ca..ed4da7982eb 100644 --- a/pkg/asset/agent/image/ignition.go +++ b/pkg/asset/agent/image/ignition.go @@ -215,6 +215,7 @@ func (a *Ignition) Generate(dependencies asset.Parents) error { agentEnabledServices := []string{ "agent.service", + "agent-tui.path", "assisted-service-db.service", "assisted-service-pod.service", "assisted-service.service", diff --git a/pkg/asset/agent/image/ignition_test.go b/pkg/asset/agent/image/ignition_test.go index 36a7f6e6150..4cf7fea4908 100644 --- a/pkg/asset/agent/image/ignition_test.go +++ b/pkg/asset/agent/image/ignition_test.go @@ -389,6 +389,7 @@ metadata: "/root/assisted.te", "/usr/local/bin/common.sh", "/usr/local/bin/agent-gather", + "/usr/local/bin/agent-interactive-console.sh", "/usr/local/bin/extract-agent.sh", "/usr/local/bin/get-container-images.sh", "/usr/local/bin/install-status.sh",