From f69797914a5f7c7828b3303886ee1c42327f00ed Mon Sep 17 00:00:00 2001 From: Christoph Berg Date: Wed, 8 Jan 2025 15:42:16 +0100 Subject: [PATCH] Connect build nodes using websocket --- jenkins/ansible/hosts | 10 ++++----- jenkins/ansible/jenkins-agent.service | 14 +++++++++++++ jenkins/ansible/setup-buildd.yml | 30 ++++++++++++++++++++------- 3 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 jenkins/ansible/jenkins-agent.service diff --git a/jenkins/ansible/hosts b/jenkins/ansible/hosts index fb2c5d0..b60b38e 100644 --- a/jenkins/ansible/hosts +++ b/jenkins/ansible/hosts @@ -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 index 0000000..3455ed3 --- /dev/null +++ b/jenkins/ansible/jenkins-agent.service @@ -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 diff --git a/jenkins/ansible/setup-buildd.yml b/jenkins/ansible/setup-buildd.yml index 29dbdae..31172fd 100755 --- a/jenkins/ansible/setup-buildd.yml +++ b/jenkins/ansible/setup-buildd.yml @@ -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 @@ -99,16 +101,9 @@ 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: @@ -221,3 +216,22 @@ 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 -- 2.39.5