From 0b87e7fe4a5d80caf78f59a31431bd037f1c3393 Mon Sep 17 00:00:00 2001 From: skafandri Date: Wed, 30 Oct 2024 10:33:58 +0100 Subject: [PATCH 1/5] [CPCLOUD-4591] Build debian package --- .github/workflows/build.yml | 17 ++++++++++ packager/debian/DEBIAN/agent360.service | 11 +++++++ packager/debian/DEBIAN/config | 6 ++++ packager/debian/DEBIAN/control | 20 ++++++++++++ packager/debian/DEBIAN/postinst | 43 +++++++++++++++++++++++++ packager/debian/DEBIAN/preinst | 9 ++++++ 6 files changed, 106 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100755 packager/debian/DEBIAN/agent360.service create mode 100755 packager/debian/DEBIAN/config create mode 100755 packager/debian/DEBIAN/control create mode 100755 packager/debian/DEBIAN/postinst create mode 100755 packager/debian/DEBIAN/preinst diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..62179a9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,17 @@ +name: Agent360-Build-Packages + +on: + push: + +jobs: + build-debian: + # needs: tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Copy source files + run: mkdir -p packager/debian/usr/bin; cp -r agent360 packager/debian/usr/bin/agent360 + - name: Build debian package + run: dpkg-deb --build packager/debian dist/agent360.deb + - name: Install debian package + run: dpkg -i dist/agent360.deb \ No newline at end of file diff --git a/packager/debian/DEBIAN/agent360.service b/packager/debian/DEBIAN/agent360.service new file mode 100755 index 0000000..940fff1 --- /dev/null +++ b/packager/debian/DEBIAN/agent360.service @@ -0,0 +1,11 @@ +[Unit] +Description=360monitoring agent +After=network.target + +[Service] +ExecStart=/usr/bin/agent360/agent360.py +Restart=always +User=agent360 + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/packager/debian/DEBIAN/config b/packager/debian/DEBIAN/config new file mode 100755 index 0000000..65f93bf --- /dev/null +++ b/packager/debian/DEBIAN/config @@ -0,0 +1,6 @@ +#!/bin/sh -e + +. /usr/share/debconf/confmodule + +db_input high agent360/user || : +db_go diff --git a/packager/debian/DEBIAN/control b/packager/debian/DEBIAN/control new file mode 100755 index 0000000..1165309 --- /dev/null +++ b/packager/debian/DEBIAN/control @@ -0,0 +1,20 @@ +Version: 1.3.1 +Source: agent360 +Section: net +Priority: extra +Maintainer: 360 monitoring <360support@webpros.com> +Build-Depends: debhelper (>=9), + python-all +Standards-Version: 3.9.5 +Homepage: https://github.com/plesk/agent360 +X-Python-Version: >= 2.6 +Package: agent360 +Architecture: amd64 +Multi-Arch: foreign +Description: 360monitoring agent + 360monitoring.com offers a web service of monitoring and displaying + your server performance statistics. + . + This software is an OS-agnostic agent. + It’s been optimized to have a very small CPU footprint and comes with + an extendable set of useful plugins. diff --git a/packager/debian/DEBIAN/postinst b/packager/debian/DEBIAN/postinst new file mode 100755 index 0000000..172a13b --- /dev/null +++ b/packager/debian/DEBIAN/postinst @@ -0,0 +1,43 @@ +#!/bin/sh -e + +. /usr/share/debconf/confmodule + +TOKEN=/etc/agent360-token.ini + +db_get agent360/user +[ -n "$RET" ] && USERID="$RET" + + +if [ -n "$USERID" ]; then + agent360 hello $USERID /etc/agent360-token.ini +else + echo 'Generic "hello" is not implemented' +fi + +if which pycompile >/dev/null 2>&1; then + pycompile -p agent360 +fi + +if [ "$(grep -c '^agent360:' /etc/passwd)" = "0" ]; then + echo "Creating user and group agent360" + addgroup --quiet --system agent360 && adduser --quiet --system --disabled-password --no-create-home --gecos "agent360 daemon" --group agent360 +else + echo "User creation skipped, user is already present" +fi + +deb-systemd-helper unmask agent360.service >/dev/null || true + +if deb-systemd-helper --quiet was-enabled agent360.service; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable agent360.service >/dev/null || true +else + # Update the state file to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state agent360.service >/dev/null || true +fi + +if [ -d /run/systemd/system ]; then + systemctl --system daemon-reload >/dev/null || true + deb-systemd-invoke start agent360.service >/dev/null || true +fi diff --git a/packager/debian/DEBIAN/preinst b/packager/debian/DEBIAN/preinst new file mode 100755 index 0000000..c819308 --- /dev/null +++ b/packager/debian/DEBIAN/preinst @@ -0,0 +1,9 @@ +#!/bin/sh -e + +case "$1" in + install|upgrade) + touch /var/log/agent360.log && chmod a+w /var/log/agent360.log + ;; + *) + ;; +esac \ No newline at end of file From abb80dfecb585267da1373dbe0565f3de3584d25 Mon Sep 17 00:00:00 2001 From: skafandri Date: Wed, 30 Oct 2024 10:37:37 +0100 Subject: [PATCH 2/5] [CPCLOUD-4591] Build debian package --- .github/workflows/test-and-deploy.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test-and-deploy.yml b/.github/workflows/test-and-deploy.yml index c9f3850..c7a25d0 100644 --- a/.github/workflows/test-and-deploy.yml +++ b/.github/workflows/test-and-deploy.yml @@ -56,6 +56,12 @@ jobs: uses: actions/setup-python@v2 with: python-version: ${{ env.python-version }} + - name: Copy source files + run: mkdir -p packager/debian/usr/bin; cp -r agent360 packager/debian/usr/bin/agent360 + - name: Build debian package + run: dpkg-deb --build packager/debian dist/agent360.deb + - name: Install debian package + run: dpkg -i dist/agent360.deb - name: Install pypa/build run: >- python -m From 05fdf1560352da2ebf6557d042e268a7f77aa217 Mon Sep 17 00:00:00 2001 From: skafandri Date: Wed, 30 Oct 2024 10:50:33 +0100 Subject: [PATCH 3/5] [CPCLOUD-4591] Build debian package --- .github/workflows/test-and-deploy.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-and-deploy.yml b/.github/workflows/test-and-deploy.yml index c7a25d0..6f67796 100644 --- a/.github/workflows/test-and-deploy.yml +++ b/.github/workflows/test-and-deploy.yml @@ -61,7 +61,11 @@ jobs: - name: Build debian package run: dpkg-deb --build packager/debian dist/agent360.deb - name: Install debian package - run: dpkg -i dist/agent360.deb + run: dpkg -i agent360.deb + - uses: actions/upload-artifact@v4 + with: + name: debian package + path: agent360.deb - name: Install pypa/build run: >- python -m From 5909f25e7a1cb99d583b946a281028b685190382 Mon Sep 17 00:00:00 2001 From: skafandri Date: Wed, 30 Oct 2024 10:53:27 +0100 Subject: [PATCH 4/5] [CPCLOUD-4591] Build debian package --- .github/workflows/test-and-deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-and-deploy.yml b/.github/workflows/test-and-deploy.yml index 6f67796..014e7a8 100644 --- a/.github/workflows/test-and-deploy.yml +++ b/.github/workflows/test-and-deploy.yml @@ -59,13 +59,13 @@ jobs: - name: Copy source files run: mkdir -p packager/debian/usr/bin; cp -r agent360 packager/debian/usr/bin/agent360 - name: Build debian package - run: dpkg-deb --build packager/debian dist/agent360.deb + run: dpkg-deb --build packager/debian agent360-${{ github.ref_name }}.deb - name: Install debian package - run: dpkg -i agent360.deb + run: dpkg -i agent360-${{ github.ref_name }}.deb - uses: actions/upload-artifact@v4 with: name: debian package - path: agent360.deb + path: agent360.deb-${{ github.ref_name }} - name: Install pypa/build run: >- python -m From 1ce7ff393110bfd512cd9b9df8f52459d3d47f35 Mon Sep 17 00:00:00 2001 From: skafandri Date: Wed, 30 Oct 2024 11:10:22 +0100 Subject: [PATCH 5/5] [CPCLOUD-4591] Build debian package --- .github/workflows/test-and-deploy.yml | 4 ++-- packager/debian/DEBIAN/postinst | 18 ------------------ 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test-and-deploy.yml b/.github/workflows/test-and-deploy.yml index 014e7a8..90bd3f2 100644 --- a/.github/workflows/test-and-deploy.yml +++ b/.github/workflows/test-and-deploy.yml @@ -59,9 +59,9 @@ jobs: - name: Copy source files run: mkdir -p packager/debian/usr/bin; cp -r agent360 packager/debian/usr/bin/agent360 - name: Build debian package - run: dpkg-deb --build packager/debian agent360-${{ github.ref_name }}.deb + run: dpkg-deb --build packager/debian agent360-${{ GITHUB_SHA }}.deb - name: Install debian package - run: dpkg -i agent360-${{ github.ref_name }}.deb + run: dpkg -i agent360-${{ github.ref }}.deb - uses: actions/upload-artifact@v4 with: name: debian package diff --git a/packager/debian/DEBIAN/postinst b/packager/debian/DEBIAN/postinst index 172a13b..5a4aeed 100755 --- a/packager/debian/DEBIAN/postinst +++ b/packager/debian/DEBIAN/postinst @@ -1,23 +1,5 @@ #!/bin/sh -e -. /usr/share/debconf/confmodule - -TOKEN=/etc/agent360-token.ini - -db_get agent360/user -[ -n "$RET" ] && USERID="$RET" - - -if [ -n "$USERID" ]; then - agent360 hello $USERID /etc/agent360-token.ini -else - echo 'Generic "hello" is not implemented' -fi - -if which pycompile >/dev/null 2>&1; then - pycompile -p agent360 -fi - if [ "$(grep -c '^agent360:' /etc/passwd)" = "0" ]; then echo "Creating user and group agent360" addgroup --quiet --system agent360 && adduser --quiet --system --disabled-password --no-create-home --gecos "agent360 daemon" --group agent360