Connect build nodes using websocket
authorChristoph Berg <myon@debian.org>
Wed, 8 Jan 2025 14:42:16 +0000 (15:42 +0100)
committerChristoph Berg <myon@debian.org>
Wed, 8 Jan 2025 14:42:16 +0000 (15:42 +0100)
jenkins/ansible/hosts
jenkins/ansible/jenkins-agent.service [new file with mode: 0644]
jenkins/ansible/setup-buildd.yml

index fb2c5d08f05ca82016ceee61aa149e954338c0d4..b60b38e346ec34f87f383d2f59d8512b787c0cee 100644 (file)
@@ -1,6 +1,6 @@
-pgdgbuild.dus.dg-i.net chroot_dir=/home/chroot.buexcl run_opts="size=20G"
-pgx86 chroot_dir=/home/chroot run_opts="size=50G"
-pgarm64 chroot_dir=/home/chroot run_opts="size=50G"
+#pgdgbuild.dus.dg-i.net run_opts="size=20G"
+pgx86 run_opts="size=50G"
+pgarm64 run_opts="size=50G"
 # ppc64el: 24GB is not enough to build postgis with 4 workers (huge B-Ds)
-pgppc64el chroot_dir=/home/chroot run_opts="size=100G,nr_inodes=800k"
-pgs390x chroot_dir=/home/chroot run_opts="size=100G,nr_inodes=800k"
+pgppc64el run_opts="size=100G,nr_inodes=800k"
+pgs390x run_opts="size=100G,nr_inodes=800k"
diff --git a/jenkins/ansible/jenkins-agent.service b/jenkins/ansible/jenkins-agent.service
new file mode 100644 (file)
index 0000000..3455ed3
--- /dev/null
@@ -0,0 +1,14 @@
+[Unit]
+Description=Jenkins agent
+
+[Service]
+Type=exec
+EnvironmentFile=/etc/default/jenkins-agent
+ExecStart=/usr/bin/java -jar agent.jar -url https://jengus.postgresql.org/ -secret $SECRET -name $NAME -webSocket -workDir "/home/buildd"
+WorkingDirectory=/home/buildd
+User=buildd
+Restart=always
+RestartSec=60
+
+[Install]
+WantedBy=multi-user.target
index 29dbdaec84d47de6fd2962ba1ac4af130cedc57a..31172fde46feb10b205b43b93f1252218efaae4a 100755 (executable)
@@ -11,6 +11,7 @@
       name:
       - acl # allow unprivileged users to read ansible's files
       - ca-certificates
+      - curl
       - debootstrap
       - default-jre-headless
       - dose-builddebcheck
@@ -28,6 +29,7 @@
       - sbuild
       - schroot
       - sudo
+      - systemd-timesyncd
       #- ubuntu-archive-keyring
       - vim
       - zstd
       key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbRuNmXd2MhrSN7RTINoj1kYZQ8iRKvhvGCE8jqgMj1UpKL8XGIiD3ouGqIYt1eDaDvMoSGEwYVYZHbkRz7U9Kpb2n7fenOhRTT9jkE4p4eYnYbhV81ZB487IiKBAkIyGk9+J6XbQO4dnLY+XDufGIKXkPwdYkw2otvxfSI+TjJQ7tRw4BHn9+UsPPKRYSO/i7d/jgZcthVWsRPdDk54dRI2uDClXob7rJjazCWPVBH8VDXbbM2q5xIgVAG812GXAXXksAljdQU05lwOgVo5foPVeV0SKnrVIugf4xmJXkNNtU1l62g5Whkqu9KMk1uzPpopSwyaGk7I0WftPU57J jenkins@pgdgbuild.dus.dg-i.net'
 
   - name: create chroot directory
-    file:
-      name: '{{chroot_dir}}'
-      state: directory
-
-  - name: symlink chroot directory from /home/chroot
     file:
       name: /home/chroot
-      src: '{{chroot_dir}}'
-      state: link
-    when: 'chroot_dir != "/home/chroot"'
+      state: directory
 
   - name: schroot sbuild fstab
     copy:
       scope: global
     become: true
     become_user: buildd
+
+  - name: download agent.jar
+    command:
+      cmd: curl -sO https://jengus.postgresql.org/jnlpJars/agent.jar
+      chdir: /home/buildd
+      creates: /home/buildd/agent.jar
+    become_user: buildd
+
+  - name: /etc/systemd/system/jenkins-agent.service
+    copy:
+      src: jenkins-agent.service
+      dest: /etc/systemd/system/jenkins-agent.service
+      mode: 0644
+
+  - name: enable jenkins-agent
+    service:
+      name: jenkins-agent
+      state: started
+      enabled: true