Skip to content

Commit ef6c42d

Browse files
Merge pull request #147 from BAStos525/fix/run-config.sh-as-root
[fix]: enable root run & refactor ansible role
2 parents 715dfc4 + 54bbf46 commit ef6c42d

File tree

4 files changed

+22
-32
lines changed

4 files changed

+22
-32
lines changed

tasks/assert.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44
that:
55
- github_account is defined
66
fail_msg: "github_account is not defined"
7-
run_once: yes
7+
run_once: true
88

99
- name: Check access_token variable (RUN ONCE)
1010
ansible.builtin.assert:
1111
that:
1212
- access_token is defined
1313
- access_token | length > 0
1414
fail_msg: "access_token was not found or is using an invalid format."
15-
run_once: yes
15+
run_once: true
1616

1717
- name: Check runner_org variable (RUN ONCE)
1818
ansible.builtin.assert:
1919
that:
2020
- runner_org | bool == True or runner_org == False
2121
fail_msg: "runner_org should be a boolean value"
22-
run_once: yes
22+
run_once: true

tasks/collect_info.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
status_code: 201
2121
force_basic_auth: yes
2222
register: registration
23-
run_once: yes
23+
run_once: true
2424

2525
- name: Check currently registered runners for repo (RUN ONCE)
2626
ansible.builtin.uri:
@@ -32,7 +32,7 @@
3232
status_code: 200
3333
force_basic_auth: yes
3434
register: registered_runners
35-
run_once: yes
35+
run_once: true
3636

3737
- name: Check service facts
3838
ansible.builtin.service_facts:

tasks/install_runner.yml

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
body_format: json
1818
check_mode: false
1919
register: api_response
20-
run_once: yes
20+
run_once: true
2121
become: false
2222
delegate_to: localhost
2323
when: runner_version == "latest"
@@ -31,34 +31,18 @@
3131
ansible.builtin.command: "grep -i {{ runner_version }} {{ runner_dir }}/bin/Runner.Listener.deps.json"
3232
register: runner_installed
3333
check_mode: false
34-
changed_when: False
35-
ignore_errors: yes
34+
changed_when: false
35+
ignore_errors: true
3636

37-
- name: Create temporary directory for archive
38-
ansible.builtin.tempfile:
39-
state: directory
40-
suffix: runner
41-
become: false
42-
register: temp_dir
43-
when: runner_version not in runner_installed.stdout
44-
45-
- name: Download runner package version - "{{ runner_version }}" (RUN ONCE)
46-
ansible.builtin.get_url:
47-
url:
48-
"https://github.com/{{ runner_download_repository }}/releases/download/v{{ runner_version }}/\
49-
actions-runner-linux-{{ github_actions_architecture }}-{{ runner_version }}.tar.gz"
50-
dest: "{{ temp_dir.path }}/actions-runner-linux-{{ runner_version }}.tar.gz"
51-
force: no
52-
become: false
53-
when: runner_version not in runner_installed.stdout or reinstall_runner
54-
55-
- name: Unarchive package
37+
- name: Unarchive runner package
5638
ansible.builtin.unarchive:
57-
src: "{{ temp_dir.path }}/actions-runner-linux-{{ runner_version }}.tar.gz"
39+
src: "https://github.com/{{ runner_download_repository }}/releases/download/v{{ runner_version }}/\
40+
actions-runner-linux-{{ github_actions_architecture }}-{{ runner_version }}.tar.gz"
5841
dest: "{{ runner_dir }}/"
5942
owner: "{{ runner_user }}"
6043
remote_src: yes
6144
mode: 0755
45+
become: true
6246
when: runner_version not in runner_installed.stdout or reinstall_runner
6347

6448
- name: Configure custom env file if required
@@ -88,6 +72,8 @@
8872
when: runner_org | bool
8973

9074
- name: Register runner
75+
environment:
76+
RUNNER_ALLOW_RUNASROOT: "1"
9177
ansible.builtin.command:
9278
"{{ runner_dir }}/./config.sh \
9379
--url {{ github_full_url }} \
@@ -99,12 +85,14 @@
9985
{{ runner_extra_config_args }}"
10086
args:
10187
chdir: "{{ runner_dir }}"
102-
become: yes
88+
become: true
10389
become_user: "{{ runner_user }}"
10490
no_log: "{{ hide_sensitive_logs | bool }}"
10591
when: runner_name not in registered_runners.json.runners|map(attribute='name')|list
10692

10793
- name: Replace registered runner
94+
environment:
95+
RUNNER_ALLOW_RUNASROOT: "1"
10896
ansible.builtin.command:
10997
"{{ runner_dir }}/config.sh \
11098
--url {{ github_full_url }} \
@@ -116,7 +104,7 @@
116104
--replace"
117105
args:
118106
chdir: "{{ runner_dir }}"
119-
become: yes
107+
become: true
120108
become_user: "{{ runner_user }}"
121109
no_log: "{{ hide_sensitive_logs | bool }}"
122110
when: runner_name in registered_runners.json.runners|map(attribute='name')|list and reinstall_runner and not runner_org

tasks/uninstall_runner.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
ansible.builtin.command: "./svc.sh uninstall"
99
args:
1010
chdir: "{{ runner_dir }}"
11-
become: yes
11+
become: true
1212
when: runner_service_file_path.stat.exists
1313

1414
- name: Check GitHub Actions runner file
@@ -17,10 +17,12 @@
1717
register: runner_file
1818

1919
- name: Unregister runner from the GitHub
20+
environment:
21+
RUNNER_ALLOW_RUNASROOT: "1"
2022
ansible.builtin.command: "./config.sh remove --token {{ registration.json.token }} --name '{{ runner_name }}' --unattended"
2123
args:
2224
chdir: "{{ runner_dir }}"
23-
become: yes
25+
become: true
2426
become_user: "{{ runner_user }}"
2527
no_log: "{{ hide_sensitive_logs | bool }}"
2628
when: runner_name in registered_runners.json.runners|map(attribute='name')|list and runner_file.stat.exists

0 commit comments

Comments
 (0)