Add standalone Linux bootstrap foundation #5
1 changed files with 44 additions and 1 deletions
45
.github/workflows/linux-control-agent.yml
vendored
45
.github/workflows/linux-control-agent.yml
vendored
|
|
@ -10,7 +10,7 @@ permissions:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-test:
|
build-and-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v6
|
uses: actions/checkout@v6
|
||||||
|
|
@ -50,3 +50,46 @@ jobs:
|
||||||
|
|
||||||
- name: Publish agent arm64
|
- name: Publish agent arm64
|
||||||
run: dotnet publish src/ServerMonitorManager.Agent/ServerMonitorManager.Agent.csproj --configuration Release --runtime linux-arm64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true
|
run: dotnet publish src/ServerMonitorManager.Agent/ServerMonitorManager.Agent.csproj --configuration Release --runtime linux-arm64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true
|
||||||
|
|
||||||
|
- name: Build systemd smoke release
|
||||||
|
run: |
|
||||||
|
dotnet publish src/ServerMonitorManager.Agent/ServerMonitorManager.Agent.csproj \
|
||||||
|
--configuration Release --runtime linux-x64 --self-contained true \
|
||||||
|
-p:PublishSingleFile=true -p:PublishTrimmed=true -o smoke/agent
|
||||||
|
dotnet publish src/ServerMonitorManager.Control/ServerMonitorManager.Control.csproj \
|
||||||
|
--configuration Release --runtime linux-x64 --self-contained true \
|
||||||
|
-p:PublishSingleFile=true -p:PublishTrimmed=true -o smoke/control
|
||||||
|
install -d smoke/deploy smoke/bootstrap
|
||||||
|
install -m 0644 deploy/ochenstarik-smm-control.service smoke/deploy/
|
||||||
|
install -m 0644 deploy/ochenstarik-smm-agent.service smoke/deploy/
|
||||||
|
install -m 0644 deploy/ochenstarik-smm-firewall.service smoke/deploy/
|
||||||
|
install -m 0755 deploy/ochenstarik-smm-policy-apply smoke/deploy/
|
||||||
|
install -m 0755 deploy/ochenstarik-server-monitor-manager.sh smoke/bootstrap/
|
||||||
|
tar -C smoke -czf smoke-release.tar.gz agent control deploy bootstrap
|
||||||
|
sha256sum smoke-release.tar.gz > smoke-release.tar.gz.sha256
|
||||||
|
|
||||||
|
- name: Verify repeated systemd installation
|
||||||
|
run: |
|
||||||
|
set -Eeuo pipefail
|
||||||
|
sudo deploy/ochenstarik-server-monitor-manager.sh install-control \
|
||||||
|
smoke-release.tar.gz 127.0.0.1 7443
|
||||||
|
for _ in {1..30}; do
|
||||||
|
curl --fail --silent --cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt \
|
||||||
|
https://127.0.0.1:7443/healthz && break
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
curl --fail --silent --show-error \
|
||||||
|
--cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt \
|
||||||
|
https://127.0.0.1:7443/healthz
|
||||||
|
sudo deploy/ochenstarik-server-monitor-manager.sh install-control \
|
||||||
|
smoke-release.tar.gz 127.0.0.1 7443
|
||||||
|
sudo systemctl restart ochenstarik-smm-control.service
|
||||||
|
sudo systemctl is-active --quiet ochenstarik-smm-control.service
|
||||||
|
curl --fail --silent --show-error \
|
||||||
|
--retry 10 --retry-all-errors --retry-delay 1 \
|
||||||
|
--cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt \
|
||||||
|
https://127.0.0.1:7443/healthz
|
||||||
|
|
||||||
|
- name: Clean up systemd smoke installation
|
||||||
|
if: always()
|
||||||
|
run: sudo deploy/ochenstarik-server-monitor-manager.sh uninstall-control --confirm-destroy-control || true
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue