From 4c93a75daad884521d178b9cfa701cbef5cb2186 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 16:27:49 +0000 Subject: [PATCH 01/33] add first pass self hosted runner --- runner/ansible/github-runner.yml | 21 +++++++++++++++++++++ runner/ansible/inventory.txt | 2 ++ runner/ansible/roles/runner/tasks/main.yml | 3 +++ 3 files changed, 26 insertions(+) create mode 100644 runner/ansible/github-runner.yml create mode 100644 runner/ansible/inventory.txt create mode 100644 runner/ansible/roles/runner/tasks/main.yml diff --git a/runner/ansible/github-runner.yml b/runner/ansible/github-runner.yml new file mode 100644 index 00000000..517fcd06 --- /dev/null +++ b/runner/ansible/github-runner.yml @@ -0,0 +1,21 @@ +- name: Deploy self-hosted github runner for vesuvio repository + hosts: all + # vars: + # package_updates_reboot: true + # pip_install_packages: + # - name: docker + + roles: + - role: dannixon.system.package_updates + tags: "initial-setup" + - role: dannixon.system.interactive_users + tags: "initial-setup" + # - role: geerlingguy.pip + # become: yes + # tags: "initial-setup" + - role: geerlingguy.docker + become: yes + tags: "initial-setup" + - role: runner + become: yes + tags: runner" \ No newline at end of file diff --git a/runner/ansible/inventory.txt b/runner/ansible/inventory.txt new file mode 100644 index 00000000..399acf8f --- /dev/null +++ b/runner/ansible/inventory.txt @@ -0,0 +1,2 @@ +[all] +172.16.110.198 \ No newline at end of file diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml new file mode 100644 index 00000000..1fd4fbd7 --- /dev/null +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -0,0 +1,3 @@ +- name: Deploy dockerized github runner + ansible.builtin.debug: + msg: Placeholder message From 74242a25db53eb8db559abe5eb5d281fd6ddfa38 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 16:38:58 +0000 Subject: [PATCH 02/33] add default user --- runner/ansible/ansible.cfg | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 runner/ansible/ansible.cfg diff --git a/runner/ansible/ansible.cfg b/runner/ansible/ansible.cfg new file mode 100644 index 00000000..65b45aab --- /dev/null +++ b/runner/ansible/ansible.cfg @@ -0,0 +1,2 @@ +[defaults] +remote_user=ubuntu \ No newline at end of file From d234c2afe257a2d7a8a3dd2d70329bb190d1e76d Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 16:58:17 +0000 Subject: [PATCH 03/33] create docker container --- runner/ansible/github-runner.yml | 4 ++-- runner/ansible/roles/runner/tasks/main.yml | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/runner/ansible/github-runner.yml b/runner/ansible/github-runner.yml index 517fcd06..fe27d5b4 100644 --- a/runner/ansible/github-runner.yml +++ b/runner/ansible/github-runner.yml @@ -1,7 +1,7 @@ - name: Deploy self-hosted github runner for vesuvio repository hosts: all - # vars: - # package_updates_reboot: true + vars: + package_updates_reboot: true # dannixon.system.package_updates # pip_install_packages: # - name: docker diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 1fd4fbd7..19b6e482 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -1,3 +1,10 @@ - name: Deploy dockerized github runner - ansible.builtin.debug: - msg: Placeholder message + community.docker.docker_container: + name: "{{ agent_name }}" + image: ubuntu:focal-20231128 + detach: yes + init: yes + network_mode: host + recreate: yes + pull: yes + shm_size: 512M \ No newline at end of file From c53187cb6bc29c63ae8780781d46ff4ca5990008 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:01:11 +0000 Subject: [PATCH 04/33] add runner name --- runner/ansible/github-runner.yml | 2 +- runner/ansible/inventory.txt | 2 +- runner/ansible/roles/runner/tasks/main.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/runner/ansible/github-runner.yml b/runner/ansible/github-runner.yml index fe27d5b4..e21356bb 100644 --- a/runner/ansible/github-runner.yml +++ b/runner/ansible/github-runner.yml @@ -18,4 +18,4 @@ tags: "initial-setup" - role: runner become: yes - tags: runner" \ No newline at end of file + tags: runner \ No newline at end of file diff --git a/runner/ansible/inventory.txt b/runner/ansible/inventory.txt index 399acf8f..01a2a813 100644 --- a/runner/ansible/inventory.txt +++ b/runner/ansible/inventory.txt @@ -1,2 +1,2 @@ [all] -172.16.110.198 \ No newline at end of file +172.16.110.198 runner_name=vesuvio-runner \ No newline at end of file diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 19b6e482..7ac778eb 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -1,6 +1,6 @@ - name: Deploy dockerized github runner community.docker.docker_container: - name: "{{ agent_name }}" + name: "{{ runnner_name }}" image: ubuntu:focal-20231128 detach: yes init: yes From 9fc5b2f33d1e20c33f08689a343120e684d48db2 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:04:54 +0000 Subject: [PATCH 05/33] correct variable typo --- runner/ansible/roles/runner/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 7ac778eb..98b9fbdd 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -1,6 +1,6 @@ - name: Deploy dockerized github runner community.docker.docker_container: - name: "{{ runnner_name }}" + name: "{{ runner_name }}" image: ubuntu:focal-20231128 detach: yes init: yes From 2de7e9b2b2b080dd1bacc254f6f5c6415f5c738a Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:27:41 +0000 Subject: [PATCH 06/33] add setup script --- runner/ansible/roles/runner/tasks/main.yml | 12 +++++++++++- runner/ansible/setup/setup.sh | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 runner/ansible/setup/setup.sh diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 98b9fbdd..93af1bf2 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -1,3 +1,10 @@ +- name: Copy setup script to host + copy: + src: setup/setup.sh + dest: /tmp/setup/setup.sh + mode: '0755' + + - name: Deploy dockerized github runner community.docker.docker_container: name: "{{ runner_name }}" @@ -7,4 +14,7 @@ network_mode: host recreate: yes pull: yes - shm_size: 512M \ No newline at end of file + shm_size: 512M + volumes: + - /tmp/setup/setup.sh:/home/setup.sh + command: /home/setup.sh \ No newline at end of file diff --git a/runner/ansible/setup/setup.sh b/runner/ansible/setup/setup.sh new file mode 100644 index 00000000..bcfbb23c --- /dev/null +++ b/runner/ansible/setup/setup.sh @@ -0,0 +1,7 @@ +#! /bin/bash +set -ex +mkdir actions-runner && cd actions-runner +curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz +tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz +./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65UVPZUA3LFSZDMHE4DFPSK5O +./run.sh \ No newline at end of file From 4fddc867845b46debdc22d39f015dbdcbb983d15 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:31:10 +0000 Subject: [PATCH 07/33] add cleanup and correct paths --- runner/ansible/roles/runner/tasks/main.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 93af1bf2..628afd54 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -1,10 +1,9 @@ - name: Copy setup script to host copy: src: setup/setup.sh - dest: /tmp/setup/setup.sh + dest: /tmp/setup.sh mode: '0755' - - name: Deploy dockerized github runner community.docker.docker_container: name: "{{ runner_name }}" @@ -17,4 +16,9 @@ shm_size: 512M volumes: - /tmp/setup/setup.sh:/home/setup.sh - command: /home/setup.sh \ No newline at end of file + command: /home/setup.sh + +- name: Remove setup script + ansible.builtin.file: + path: setup/setup.sh + state: absent From ff24f5d38822a717b1b709dcc78c991f36c39c0c Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:35:02 +0000 Subject: [PATCH 08/33] correct ansible task --- runner/ansible/roles/runner/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 628afd54..8195049b 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -15,10 +15,10 @@ pull: yes shm_size: 512M volumes: - - /tmp/setup/setup.sh:/home/setup.sh + - /tmp/setup.sh:/home/setup.sh command: /home/setup.sh - name: Remove setup script ansible.builtin.file: - path: setup/setup.sh + path: /tmp/setup.sh state: absent From 3bc14f123ba14c583707e4d33b7779cf2635616d Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:48:06 +0000 Subject: [PATCH 09/33] add task to build dockerfile --- runner/ansible/github-runner.yml | 7 +------ runner/ansible/roles/runner/tasks/main.yml | 11 +++++++++-- runner/docker/runner.Dockerfile | 8 ++++++++ 3 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 runner/docker/runner.Dockerfile diff --git a/runner/ansible/github-runner.yml b/runner/ansible/github-runner.yml index e21356bb..7975c445 100644 --- a/runner/ansible/github-runner.yml +++ b/runner/ansible/github-runner.yml @@ -2,17 +2,12 @@ hosts: all vars: package_updates_reboot: true # dannixon.system.package_updates - # pip_install_packages: - # - name: docker roles: - role: dannixon.system.package_updates tags: "initial-setup" - role: dannixon.system.interactive_users - tags: "initial-setup" - # - role: geerlingguy.pip - # become: yes - # tags: "initial-setup" + tags: "initial-setup" - role: geerlingguy.docker become: yes tags: "initial-setup" diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 8195049b..c78bf4b4 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -4,15 +4,22 @@ dest: /tmp/setup.sh mode: '0755' +- name: Build docker image + community.docker.docker_image: + build: + path: ../docker + name: vesuvio-runner + source: build + - name: Deploy dockerized github runner community.docker.docker_container: name: "{{ runner_name }}" - image: ubuntu:focal-20231128 + image: vesuvio-runner detach: yes init: yes network_mode: host recreate: yes - pull: yes + pull: no shm_size: 512M volumes: - /tmp/setup.sh:/home/setup.sh diff --git a/runner/docker/runner.Dockerfile b/runner/docker/runner.Dockerfile new file mode 100644 index 00000000..909390ed --- /dev/null +++ b/runner/docker/runner.Dockerfile @@ -0,0 +1,8 @@ +FROM ubuntu:focal-20231128 + +RUN apt-get update && apt-get install -y \ + curl \ + tar \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /actions-runner \ No newline at end of file From 84ebec2f55903bbac6aaa19bbc3949f3a3e5162b Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:52:13 +0000 Subject: [PATCH 10/33] correct paths for dockerfile --- runner/ansible/roles/runner/tasks/main.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index c78bf4b4..a4b80f9c 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -4,10 +4,16 @@ dest: /tmp/setup.sh mode: '0755' +- name: Copy dockerfile to host + copy: + src: ../docker/runner.Dockerfile + dest: /tmp/runner.Dockerfile + mode: '0755' + - name: Build docker image community.docker.docker_image: build: - path: ../docker + path: /tmp/runner.Dockerfile name: vesuvio-runner source: build @@ -29,3 +35,9 @@ ansible.builtin.file: path: /tmp/setup.sh state: absent + +- name: Remove dockerfile + ansible.builtin.file: + path: /tmp/runner.Dockerfile + state: absent + \ No newline at end of file From 12e713b5df74358aab717d0cce24babbbab9d5ea Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:55:59 +0000 Subject: [PATCH 11/33] correct build path --- runner/ansible/roles/runner/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index a4b80f9c..e9901324 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -13,7 +13,7 @@ - name: Build docker image community.docker.docker_image: build: - path: /tmp/runner.Dockerfile + path: /tmp/ name: vesuvio-runner source: build From 31c4017ab8582eda2b4cf3604cb3ea4d36295dc0 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:59:54 +0000 Subject: [PATCH 12/33] add dockerfile name --- runner/ansible/roles/runner/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index e9901324..74a28a5d 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -14,6 +14,7 @@ community.docker.docker_image: build: path: /tmp/ + dockerfile: runner name: vesuvio-runner source: build From a52eaec11b3b077871f36b8ceffcacd6cf467f39 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:00:52 +0000 Subject: [PATCH 13/33] add ext to dockerfile arg --- runner/ansible/roles/runner/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 74a28a5d..97ef8250 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -14,7 +14,7 @@ community.docker.docker_image: build: path: /tmp/ - dockerfile: runner + dockerfile: runner.Dockerfile name: vesuvio-runner source: build From 44f384ffeb7d1fe20fd6a3f9a437ed53d8ae8c6e Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:04:35 +0000 Subject: [PATCH 14/33] run command without sudo --- runner/ansible/roles/runner/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 97ef8250..2cc8bdff 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -31,6 +31,7 @@ volumes: - /tmp/setup.sh:/home/setup.sh command: /home/setup.sh + become: no - name: Remove setup script ansible.builtin.file: From 5afc779743c73e90ac8c30bf0a4f688067574d80 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:11:28 +0000 Subject: [PATCH 15/33] add non sudo user to run script --- runner/ansible/roles/runner/tasks/main.yml | 2 +- runner/docker/runner.Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 2cc8bdff..d79ab466 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -31,7 +31,7 @@ volumes: - /tmp/setup.sh:/home/setup.sh command: /home/setup.sh - become: no + user: nonroot - name: Remove setup script ansible.builtin.file: diff --git a/runner/docker/runner.Dockerfile b/runner/docker/runner.Dockerfile index 909390ed..bbc74cba 100644 --- a/runner/docker/runner.Dockerfile +++ b/runner/docker/runner.Dockerfile @@ -5,4 +5,4 @@ RUN apt-get update && apt-get install -y \ tar \ && rm -rf /var/lib/apt/lists/* -WORKDIR /actions-runner \ No newline at end of file +RUN useradd -m nonroot \ No newline at end of file From 0bbac2dcbcdeae4f1267cefa3b6ecb68ecc78b5e Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:20:06 +0000 Subject: [PATCH 16/33] add handler to remove outdated image --- runner/ansible/roles/runner/handlers/main.yml | 5 +++++ runner/ansible/roles/runner/tasks/main.yml | 8 ++------ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 runner/ansible/roles/runner/handlers/main.yml diff --git a/runner/ansible/roles/runner/handlers/main.yml b/runner/ansible/roles/runner/handlers/main.yml new file mode 100644 index 00000000..2f20d5d7 --- /dev/null +++ b/runner/ansible/roles/runner/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Remove docker image + community.docker.docker_image: + state: absent + name: vesuvio-runner diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index d79ab466..9e72d95d 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -9,6 +9,8 @@ src: ../docker/runner.Dockerfile dest: /tmp/runner.Dockerfile mode: '0755' + notify: + - Remove docker image - name: Build docker image community.docker.docker_image: @@ -37,9 +39,3 @@ ansible.builtin.file: path: /tmp/setup.sh state: absent - -- name: Remove dockerfile - ansible.builtin.file: - path: /tmp/runner.Dockerfile - state: absent - \ No newline at end of file From c80e145dd68d3ccffa87ce57217cd64b043a2b8b Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:34:19 +0000 Subject: [PATCH 17/33] split runner role --- runner/ansible/github-runner.yml | 3 +++ .../roles/{runner => host}/handlers/main.yml | 0 runner/ansible/roles/host/tasks/main.yml | 13 +++++++++++++ runner/ansible/roles/runner/tasks/main.yml | 14 -------------- 4 files changed, 16 insertions(+), 14 deletions(-) rename runner/ansible/roles/{runner => host}/handlers/main.yml (100%) create mode 100644 runner/ansible/roles/host/tasks/main.yml diff --git a/runner/ansible/github-runner.yml b/runner/ansible/github-runner.yml index 7975c445..a2c72eb2 100644 --- a/runner/ansible/github-runner.yml +++ b/runner/ansible/github-runner.yml @@ -11,6 +11,9 @@ - role: geerlingguy.docker become: yes tags: "initial-setup" + - role: host + become: yes + tags: runner - role: runner become: yes tags: runner \ No newline at end of file diff --git a/runner/ansible/roles/runner/handlers/main.yml b/runner/ansible/roles/host/handlers/main.yml similarity index 100% rename from runner/ansible/roles/runner/handlers/main.yml rename to runner/ansible/roles/host/handlers/main.yml diff --git a/runner/ansible/roles/host/tasks/main.yml b/runner/ansible/roles/host/tasks/main.yml new file mode 100644 index 00000000..3d9886a7 --- /dev/null +++ b/runner/ansible/roles/host/tasks/main.yml @@ -0,0 +1,13 @@ +- name: Copy setup script to host + copy: + src: setup/setup.sh + dest: /tmp/setup.sh + mode: '0755' + +- name: Copy dockerfile to host + copy: + src: ../docker/runner.Dockerfile + dest: /tmp/runner.Dockerfile + mode: '0755' + notify: + - Remove docker image diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index 9e72d95d..e48823fe 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -1,17 +1,3 @@ -- name: Copy setup script to host - copy: - src: setup/setup.sh - dest: /tmp/setup.sh - mode: '0755' - -- name: Copy dockerfile to host - copy: - src: ../docker/runner.Dockerfile - dest: /tmp/runner.Dockerfile - mode: '0755' - notify: - - Remove docker image - - name: Build docker image community.docker.docker_image: build: From 265e7d543c6dfa8e951bc3152d19f3d833f9f994 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:40:07 +0000 Subject: [PATCH 18/33] flush handlers to trigger image deletion --- runner/ansible/roles/host/handlers/main.yml | 1 - runner/ansible/roles/host/tasks/main.yml | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/runner/ansible/roles/host/handlers/main.yml b/runner/ansible/roles/host/handlers/main.yml index 2f20d5d7..2bbf3b3e 100644 --- a/runner/ansible/roles/host/handlers/main.yml +++ b/runner/ansible/roles/host/handlers/main.yml @@ -1,4 +1,3 @@ ---- - name: Remove docker image community.docker.docker_image: state: absent diff --git a/runner/ansible/roles/host/tasks/main.yml b/runner/ansible/roles/host/tasks/main.yml index 3d9886a7..7dbafc54 100644 --- a/runner/ansible/roles/host/tasks/main.yml +++ b/runner/ansible/roles/host/tasks/main.yml @@ -11,3 +11,5 @@ mode: '0755' notify: - Remove docker image + +- meta: flush_handlers \ No newline at end of file From b192cb9b8f73d913e5495a8ca0e2e7f98e7231b1 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:43:38 +0000 Subject: [PATCH 19/33] force absense of image --- runner/ansible/roles/host/handlers/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/ansible/roles/host/handlers/main.yml b/runner/ansible/roles/host/handlers/main.yml index 2bbf3b3e..988db33f 100644 --- a/runner/ansible/roles/host/handlers/main.yml +++ b/runner/ansible/roles/host/handlers/main.yml @@ -1,4 +1,5 @@ - name: Remove docker image community.docker.docker_image: state: absent + force_absent: true name: vesuvio-runner From ffc24e8ad9031dcb9b27d402fa1d3316808a0545 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:49:12 +0000 Subject: [PATCH 20/33] run script in users home --- runner/ansible/setup/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/ansible/setup/setup.sh b/runner/ansible/setup/setup.sh index bcfbb23c..7781ef76 100644 --- a/runner/ansible/setup/setup.sh +++ b/runner/ansible/setup/setup.sh @@ -1,6 +1,6 @@ #! /bin/bash set -ex -mkdir actions-runner && cd actions-runner +mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz ./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65UVPZUA3LFSZDMHE4DFPSK5O From 98362478a28adfbf8e73b5de0764eb9d51e0ab44 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:57:57 +0000 Subject: [PATCH 21/33] add libicu to dockerfile --- runner/docker/runner.Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/docker/runner.Dockerfile b/runner/docker/runner.Dockerfile index bbc74cba..d4bb2783 100644 --- a/runner/docker/runner.Dockerfile +++ b/runner/docker/runner.Dockerfile @@ -3,6 +3,7 @@ FROM ubuntu:focal-20231128 RUN apt-get update && apt-get install -y \ curl \ tar \ + libicu72 \ && rm -rf /var/lib/apt/lists/* RUN useradd -m nonroot \ No newline at end of file From f82ee04d67739dd18c7a388a18c44abac335a253 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 19:03:29 +0000 Subject: [PATCH 22/33] change libicu n --- runner/docker/runner.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/docker/runner.Dockerfile b/runner/docker/runner.Dockerfile index d4bb2783..62c2ea89 100644 --- a/runner/docker/runner.Dockerfile +++ b/runner/docker/runner.Dockerfile @@ -3,7 +3,7 @@ FROM ubuntu:focal-20231128 RUN apt-get update && apt-get install -y \ curl \ tar \ - libicu72 \ + libicu70 \ && rm -rf /var/lib/apt/lists/* RUN useradd -m nonroot \ No newline at end of file From 0486fdc57aa24ce5f533fd7b57f5df8a03b5a186 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 19:26:36 +0000 Subject: [PATCH 23/33] add http source to apt-get --- runner/docker/runner.Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/runner/docker/runner.Dockerfile b/runner/docker/runner.Dockerfile index 62c2ea89..7dde63a4 100644 --- a/runner/docker/runner.Dockerfile +++ b/runner/docker/runner.Dockerfile @@ -1,9 +1,10 @@ FROM ubuntu:focal-20231128 -RUN apt-get update && apt-get install -y \ +RUN apt-get update && apt-get install -y \ curl \ tar \ - libicu70 \ + apt-transport-https \ + libicu66 \ && rm -rf /var/lib/apt/lists/* RUN useradd -m nonroot \ No newline at end of file From ae9b9a15de5a683e15b55ebc65dc2b4686d50aa5 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 23:43:43 +0000 Subject: [PATCH 24/33] try new token --- runner/ansible/setup/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/ansible/setup/setup.sh b/runner/ansible/setup/setup.sh index 7781ef76..201761d4 100644 --- a/runner/ansible/setup/setup.sh +++ b/runner/ansible/setup/setup.sh @@ -3,5 +3,5 @@ set -ex mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz -./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65UVPZUA3LFSZDMHE4DFPSK5O +./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65XDZQJX3FCADGXB2WDFPTZF6 ./run.sh \ No newline at end of file From b9f744150e43ac1e93abd5b438f12d3fadec37c6 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 23:47:03 +0000 Subject: [PATCH 25/33] change workflow to run on self hosted --- .github/workflows/pr_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_workflow.yml b/.github/workflows/pr_workflow.yml index 4ce286d3..4cf181ed 100644 --- a/.github/workflows/pr_workflow.yml +++ b/.github/workflows/pr_workflow.yml @@ -4,7 +4,7 @@ on: push jobs: test: - runs-on: ubuntu-latest + runs-on: self-hosted defaults: run: shell: bash -l {0} From 8ea06fe1aad9d5218d1144a5e921e4d1968548c9 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Fri, 15 Dec 2023 23:57:52 +0000 Subject: [PATCH 26/33] add debug to see pwd --- .github/workflows/pr_workflow.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pr_workflow.yml b/.github/workflows/pr_workflow.yml index 4cf181ed..7ec13227 100644 --- a/.github/workflows/pr_workflow.yml +++ b/.github/workflows/pr_workflow.yml @@ -25,6 +25,9 @@ jobs: python-version: 3.8 auto-activate-base: false + - name: debug pwd + run: pwd + - name: Flake8 run: python -m flake8 --config=config.flake8 From 638cdce86ddd1e3974e86a634da4bb0685da1fe4 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Sat, 16 Dec 2023 00:00:51 +0000 Subject: [PATCH 27/33] add debug to show dir contents --- .github/workflows/pr_workflow.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pr_workflow.yml b/.github/workflows/pr_workflow.yml index 7ec13227..49f6af0b 100644 --- a/.github/workflows/pr_workflow.yml +++ b/.github/workflows/pr_workflow.yml @@ -28,6 +28,9 @@ jobs: - name: debug pwd run: pwd + - name: debug ls + run: ls -l + - name: Flake8 run: python -m flake8 --config=config.flake8 From d47ad3556a9340764465182ee977706c6e48f282 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Sat, 16 Dec 2023 00:04:33 +0000 Subject: [PATCH 28/33] exclude hidden dir from flake8 --- .github/workflows/pr_workflow.yml | 6 ------ config.flake8 | 1 + 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/pr_workflow.yml b/.github/workflows/pr_workflow.yml index 49f6af0b..4cf181ed 100644 --- a/.github/workflows/pr_workflow.yml +++ b/.github/workflows/pr_workflow.yml @@ -25,12 +25,6 @@ jobs: python-version: 3.8 auto-activate-base: false - - name: debug pwd - run: pwd - - - name: debug ls - run: ls -l - - name: Flake8 run: python -m flake8 --config=config.flake8 diff --git a/config.flake8 b/config.flake8 index 87ff3f8a..87d4a236 100644 --- a/config.flake8 +++ b/config.flake8 @@ -1,6 +1,7 @@ [flake8] ignore = E114,E115,E116,E121,E123,E126,E133,E2,E704,E722,E741,E743,W503,F403,F405,F999 exclude = + ., .git, build, buildconfig, From 120581170969d1c15fa359b5cf5fd79a2efaf522 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Sat, 16 Dec 2023 00:25:00 +0000 Subject: [PATCH 29/33] use new runner token --- runner/ansible/setup/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/ansible/setup/setup.sh b/runner/ansible/setup/setup.sh index 201761d4..1fff36e6 100644 --- a/runner/ansible/setup/setup.sh +++ b/runner/ansible/setup/setup.sh @@ -3,5 +3,5 @@ set -ex mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz -./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65XDZQJX3FCADGXB2WDFPTZF6 +./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65UNHU44YBHS7GRCB7LFPT6D4 ./run.sh \ No newline at end of file From c44288c2fff5a231dafb58ccb188853f08b95a76 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Sun, 17 Dec 2023 22:07:28 +0000 Subject: [PATCH 30/33] update dockerfile --- runner/docker/runner.Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/runner/docker/runner.Dockerfile b/runner/docker/runner.Dockerfile index 7dde63a4..a83aeb51 100644 --- a/runner/docker/runner.Dockerfile +++ b/runner/docker/runner.Dockerfile @@ -5,6 +5,7 @@ RUN apt-get update && apt-get install -y \ tar \ apt-transport-https \ libicu66 \ + libglu1-mesa \ && rm -rf /var/lib/apt/lists/* RUN useradd -m nonroot \ No newline at end of file From 4bd15a6466ef759cd88191a5f248c671c7c1b5e4 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Sun, 17 Dec 2023 22:11:43 +0000 Subject: [PATCH 31/33] seperate run and setup scripts update ansible script to seperate setup and run change tags to when statements fix identation correct copy paste error add curl to runner --- runner/ansible/roles/host/tasks/main.yml | 10 ++++++++- runner/ansible/roles/runner/tasks/main.yml | 26 +++++++++++++++++++++- runner/ansible/setup/run.sh | 6 +++++ runner/ansible/setup/setup.sh | 2 +- 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 runner/ansible/setup/run.sh diff --git a/runner/ansible/roles/host/tasks/main.yml b/runner/ansible/roles/host/tasks/main.yml index 7dbafc54..9569a405 100644 --- a/runner/ansible/roles/host/tasks/main.yml +++ b/runner/ansible/roles/host/tasks/main.yml @@ -3,9 +3,17 @@ src: setup/setup.sh dest: /tmp/setup.sh mode: '0755' + when: "'run' not in ansible_run_tags" -- name: Copy dockerfile to host +- name: Copy run script to host copy: + src: setup/run.sh + dest: /tmp/run.sh + mode: '0755' + when: "'run' in ansible_run_tags" + +- name: Copy dockerfile to host + copy: src: ../docker/runner.Dockerfile dest: /tmp/runner.Dockerfile mode: '0755' diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index e48823fe..e696e9a6 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -6,7 +6,7 @@ name: vesuvio-runner source: build -- name: Deploy dockerized github runner +- name: Deploy dockerized github runner - setup community.docker.docker_container: name: "{{ runner_name }}" image: vesuvio-runner @@ -20,8 +20,32 @@ - /tmp/setup.sh:/home/setup.sh command: /home/setup.sh user: nonroot + when: "'run' not in ansible_run_tags" - name: Remove setup script ansible.builtin.file: path: /tmp/setup.sh state: absent + when: "'run' not in ansible_run_tags" + +- name: Deploy dockerized github runner - run + community.docker.docker_container: + name: "{{ runner_name }}" + image: vesuvio-runner + detach: yes + init: yes + network_mode: host + recreate: yes + pull: no + shm_size: 512M + volumes: + - /tmp/run.sh:/home/run.sh + command: /home/run.sh + user: nonroot + when: "'run' in ansible_run_tags" + +- name: Remove run script + ansible.builtin.file: + path: /tmp/run.sh + state: absent + when: "'run' in ansible_run_tags" diff --git a/runner/ansible/setup/run.sh b/runner/ansible/setup/run.sh new file mode 100644 index 00000000..7990bde1 --- /dev/null +++ b/runner/ansible/setup/run.sh @@ -0,0 +1,6 @@ +#! /bin/bash +set -ex +mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner +curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz +tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz +./run.sh diff --git a/runner/ansible/setup/setup.sh b/runner/ansible/setup/setup.sh index 1fff36e6..fcfeecb3 100644 --- a/runner/ansible/setup/setup.sh +++ b/runner/ansible/setup/setup.sh @@ -4,4 +4,4 @@ mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz ./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65UNHU44YBHS7GRCB7LFPT6D4 -./run.sh \ No newline at end of file +./run.sh From 97a8b647c3d5895a043890033cc2adcbec26787d Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Sun, 17 Dec 2023 23:18:08 +0000 Subject: [PATCH 32/33] Revert "seperate run and setup scripts" This reverts commit 4bd15a6466ef759cd88191a5f248c671c7c1b5e4. --- runner/ansible/roles/host/tasks/main.yml | 10 +-------- runner/ansible/roles/runner/tasks/main.yml | 26 +--------------------- runner/ansible/setup/run.sh | 6 ----- runner/ansible/setup/setup.sh | 2 +- 4 files changed, 3 insertions(+), 41 deletions(-) delete mode 100644 runner/ansible/setup/run.sh diff --git a/runner/ansible/roles/host/tasks/main.yml b/runner/ansible/roles/host/tasks/main.yml index 9569a405..7dbafc54 100644 --- a/runner/ansible/roles/host/tasks/main.yml +++ b/runner/ansible/roles/host/tasks/main.yml @@ -3,17 +3,9 @@ src: setup/setup.sh dest: /tmp/setup.sh mode: '0755' - when: "'run' not in ansible_run_tags" - -- name: Copy run script to host - copy: - src: setup/run.sh - dest: /tmp/run.sh - mode: '0755' - when: "'run' in ansible_run_tags" - name: Copy dockerfile to host - copy: + copy: src: ../docker/runner.Dockerfile dest: /tmp/runner.Dockerfile mode: '0755' diff --git a/runner/ansible/roles/runner/tasks/main.yml b/runner/ansible/roles/runner/tasks/main.yml index e696e9a6..e48823fe 100644 --- a/runner/ansible/roles/runner/tasks/main.yml +++ b/runner/ansible/roles/runner/tasks/main.yml @@ -6,7 +6,7 @@ name: vesuvio-runner source: build -- name: Deploy dockerized github runner - setup +- name: Deploy dockerized github runner community.docker.docker_container: name: "{{ runner_name }}" image: vesuvio-runner @@ -20,32 +20,8 @@ - /tmp/setup.sh:/home/setup.sh command: /home/setup.sh user: nonroot - when: "'run' not in ansible_run_tags" - name: Remove setup script ansible.builtin.file: path: /tmp/setup.sh state: absent - when: "'run' not in ansible_run_tags" - -- name: Deploy dockerized github runner - run - community.docker.docker_container: - name: "{{ runner_name }}" - image: vesuvio-runner - detach: yes - init: yes - network_mode: host - recreate: yes - pull: no - shm_size: 512M - volumes: - - /tmp/run.sh:/home/run.sh - command: /home/run.sh - user: nonroot - when: "'run' in ansible_run_tags" - -- name: Remove run script - ansible.builtin.file: - path: /tmp/run.sh - state: absent - when: "'run' in ansible_run_tags" diff --git a/runner/ansible/setup/run.sh b/runner/ansible/setup/run.sh deleted file mode 100644 index 7990bde1..00000000 --- a/runner/ansible/setup/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#! /bin/bash -set -ex -mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner -curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz -tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz -./run.sh diff --git a/runner/ansible/setup/setup.sh b/runner/ansible/setup/setup.sh index fcfeecb3..1fff36e6 100644 --- a/runner/ansible/setup/setup.sh +++ b/runner/ansible/setup/setup.sh @@ -4,4 +4,4 @@ mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz ./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65UNHU44YBHS7GRCB7LFPT6D4 -./run.sh +./run.sh \ No newline at end of file From b887f0825633d4c098b36cd32154f80a4bc1a776 Mon Sep 17 00:00:00 2001 From: MialLewis <95620982+MialLewis@users.noreply.github.com> Date: Sun, 17 Dec 2023 23:20:39 +0000 Subject: [PATCH 33/33] add new token --- runner/ansible/setup/setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/ansible/setup/setup.sh b/runner/ansible/setup/setup.sh index 1fff36e6..6bf9097c 100644 --- a/runner/ansible/setup/setup.sh +++ b/runner/ansible/setup/setup.sh @@ -3,5 +3,5 @@ set -ex mkdir /home/nonroot/actions-runner && cd /home/nonroot/actions-runner curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz -./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65UNHU44YBHS7GRCB7LFPT6D4 -./run.sh \ No newline at end of file +./config.sh --url https://github.com/mantidproject/vesuvio --token AWZQ65WBHOW75IEIVFMRX63FP6IBQ +./run.sh