From 4622240c6c6e24155b22eee70adbadb7919c3707 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Thu, 17 Mar 2022 15:14:49 -0500 Subject: [PATCH] r/netboot/jenkins-agent: Configure NBD exports The *netboot/jenkins-agent* Ansible role configures three NBD exports: * A single, shared, read-only export containing the Jenkins agent root filesystem, as a SquashFS filesystem * For each defined agent host, a writable data volume for Jenkins workspaces * For each defined agent host, a writable data volume for Docker Agent hosts must have some kind of unique value to identify their persistent data volumes. Raspberry Pi devices, for example, can use the SoC serial number. --- group_vars/pxe/jenkins-agent.yml | 2 ++ roles/netboot/jenkins-agent/tasks/main.yml | 7 +++++++ .../jenkins-agent/templates/jenkins-agent.ini.j2 | 14 ++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 group_vars/pxe/jenkins-agent.yml create mode 100644 roles/netboot/jenkins-agent/tasks/main.yml create mode 100644 roles/netboot/jenkins-agent/templates/jenkins-agent.ini.j2 diff --git a/group_vars/pxe/jenkins-agent.yml b/group_vars/pxe/jenkins-agent.yml new file mode 100644 index 0000000..b47f1f7 --- /dev/null +++ b/group_vars/pxe/jenkins-agent.yml @@ -0,0 +1,2 @@ +netboot_jenkins_agents: +- ba5bebc5 diff --git a/roles/netboot/jenkins-agent/tasks/main.yml b/roles/netboot/jenkins-agent/tasks/main.yml new file mode 100644 index 0000000..1960434 --- /dev/null +++ b/roles/netboot/jenkins-agent/tasks/main.yml @@ -0,0 +1,7 @@ +- name: ensure jenkins-agent nbd export is configured + template: + src: jenkins-agent.ini.j2 + dest: /etc/nbd-server/config.d/jenkins-agent.conf + mode: u=rw,go=r + tags: + - nbd-config diff --git a/roles/netboot/jenkins-agent/templates/jenkins-agent.ini.j2 b/roles/netboot/jenkins-agent/templates/jenkins-agent.ini.j2 new file mode 100644 index 0000000..7530d90 --- /dev/null +++ b/roles/netboot/jenkins-agent/templates/jenkins-agent.ini.j2 @@ -0,0 +1,14 @@ +[jenkinsagent-aarch64] +exportname = /var/lib/nbd/jenkinsagent-aarch64.squashfs +readonly = true + +{% for name in netboot_jenkins_agents %} +[docker-{{ name }}] +exportname = /var/lib/nbd/docker-{{ name }}.img +filesize = 10737418240 + +[jenkins-ba5bebc5] +exportname = /var/lib/nbd/jenkins-{{ name }}.img +filesize = 10737418240 +#force_tls = true +{% endfor %}