|
1 | 1 | ---
|
2 | 2 | - name: Create directory
|
3 |
| - file: |
| 3 | + ansible.builtin.file: |
4 | 4 | path: "{{ runner_dir }}"
|
5 | 5 | state: directory
|
6 | 6 | mode: 0755
|
7 | 7 | owner: "{{ runner_user }}"
|
8 | 8 |
|
9 | 9 | - name: Find the latest runner version (RUN ONCE)
|
10 |
| - uri: |
| 10 | + ansible.builtin.uri: |
11 | 11 | url: "https://api.github.com/repos/{{ runner_download_repository }}/releases/latest"
|
12 | 12 | headers:
|
13 | 13 | Content-Type: "application/json"
|
|
23 | 23 | when: runner_version == "latest"
|
24 | 24 |
|
25 | 25 | - name: Set runner_version variable (If latest)
|
26 |
| - set_fact: |
| 26 | + ansible.builtin.set_fact: |
27 | 27 | runner_version: "{{ api_response.json.tag_name | regex_replace('^v', '') }}"
|
28 | 28 | when: runner_version == "latest"
|
29 | 29 |
|
30 | 30 | - name: Check if desired version already installed
|
31 |
| - command: "grep -i {{ runner_version }} {{ runner_dir }}/bin/Runner.Listener.deps.json" |
| 31 | + ansible.builtin.command: "grep -i {{ runner_version }} {{ runner_dir }}/bin/Runner.Listener.deps.json" |
32 | 32 | register: runner_installed
|
33 | 33 | check_mode: false
|
34 | 34 | changed_when: False
|
35 | 35 | ignore_errors: yes
|
36 | 36 |
|
37 | 37 | - name: Create temporary directory for archive
|
38 |
| - file: |
39 |
| - path: "{{ runner_pkg_tempdir }}" |
| 38 | + ansible.builtin.tempfile: |
40 | 39 | state: directory
|
41 |
| - recurse: yes |
42 |
| - mode: 0777 |
43 |
| - run_once: yes |
44 |
| - delegate_to: localhost |
| 40 | + suffix: runner |
45 | 41 | become: false
|
| 42 | + register: temp_dir |
46 | 43 | when: runner_version not in runner_installed.stdout
|
47 | 44 |
|
48 | 45 | - name: Download runner package version - "{{ runner_version }}" (RUN ONCE)
|
49 |
| - get_url: |
| 46 | + ansible.builtin.get_url: |
50 | 47 | url:
|
51 | 48 | "https://github.com/{{ runner_download_repository }}/releases/download/v{{ runner_version }}/\
|
52 | 49 | actions-runner-linux-{{ github_actions_architecture }}-{{ runner_version }}.tar.gz"
|
53 |
| - dest: "{{ runner_pkg_tempdir }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
| 50 | + dest: "{{ temp_dir.path }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
54 | 51 | force: no
|
55 |
| - run_once: yes |
56 | 52 | become: false
|
57 |
| - delegate_to: localhost |
58 | 53 | when: runner_version not in runner_installed.stdout or reinstall_runner
|
59 | 54 |
|
60 | 55 | - name: Unarchive package
|
61 |
| - unarchive: |
62 |
| - src: "{{ runner_pkg_tempdir }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
| 56 | + ansible.builtin.unarchive: |
| 57 | + src: "{{ temp_dir.path }}/actions-runner-linux-{{ runner_version }}.tar.gz" |
63 | 58 | dest: "{{ runner_dir }}/"
|
64 | 59 | owner: "{{ runner_user }}"
|
| 60 | + remote_src: yes |
65 | 61 | mode: 0755
|
66 | 62 | when: runner_version not in runner_installed.stdout or reinstall_runner
|
67 | 63 |
|
68 | 64 | - name: Configure custom env file if required
|
69 |
| - blockinfile: |
| 65 | + ansible.builtin.blockinfile: |
70 | 66 | path: "{{ runner_dir }}/.env"
|
71 | 67 | block: "{{ custom_env }}"
|
72 | 68 | owner: "{{ runner_user }}"
|
|
77 | 73 | when: custom_env is defined
|
78 | 74 |
|
79 | 75 | - name: Check if runner service name file exist
|
80 |
| - stat: |
| 76 | + ansible.builtin.stat: |
81 | 77 | path: "{{ runner_dir }}/.service"
|
82 | 78 | register: runner_service_file_path
|
83 | 79 |
|
84 | 80 | - name: Set complete GitHub url for repo runner
|
85 |
| - set_fact: |
| 81 | + ansible.builtin.set_fact: |
86 | 82 | github_full_url: "{{ github_url }}/{{ github_owner | default(github_account) }}/{{ github_repo }}"
|
87 | 83 | when: not runner_org
|
88 | 84 |
|
89 | 85 | - name: Set complete GitHub url for org runner
|
90 |
| - set_fact: |
| 86 | + ansible.builtin.set_fact: |
91 | 87 | github_full_url: "{{ github_url }}/{{ github_owner | default(github_account) }}"
|
92 | 88 | when: runner_org | bool
|
93 | 89 |
|
94 | 90 | - name: Register runner
|
95 |
| - command: |
| 91 | + ansible.builtin.command: |
96 | 92 | "{{ runner_dir }}/./config.sh \
|
97 | 93 | --url {{ github_full_url }} \
|
98 | 94 | --token {{ registration.json.token }} \
|
|
109 | 105 | when: runner_name not in registered_runners.json.runners|map(attribute='name')|list
|
110 | 106 |
|
111 | 107 | - name: Replace registered runner
|
112 |
| - command: |
| 108 | + ansible.builtin.command: |
113 | 109 | "{{ runner_dir }}/config.sh \
|
114 | 110 | --url {{ github_full_url }} \
|
115 | 111 | --token {{ registration.json.token }} \
|
|
126 | 122 | when: runner_name in registered_runners.json.runners|map(attribute='name')|list and reinstall_runner and not runner_org
|
127 | 123 |
|
128 | 124 | - name: Install service
|
129 |
| - command: "./svc.sh install {{ runner_user }}" |
| 125 | + ansible.builtin.command: "./svc.sh install {{ runner_user }}" |
130 | 126 | args:
|
131 | 127 | chdir: "{{ runner_dir }}"
|
132 | 128 | when: not runner_service_file_path.stat.exists
|
133 | 129 |
|
134 | 130 | - name: Read service name from file
|
135 |
| - slurp: |
| 131 | + ansible.builtin.slurp: |
136 | 132 | src: "{{ runner_dir }}/.service"
|
137 | 133 | register: runner_service
|
138 | 134 |
|
139 | 135 | - name: START and enable Github Actions Runner service
|
140 |
| - systemd: |
| 136 | + ansible.builtin.systemd: |
141 | 137 | name: "{{ runner_service.content | b64decode | replace('\n', '') }}"
|
142 | 138 | state: started
|
143 | 139 | enabled: yes
|
144 | 140 | ignore_errors: "{{ ansible_check_mode }}"
|
145 | 141 | when: runner_state|lower == "started"
|
146 | 142 |
|
147 | 143 | - name: STOP and disable Github Actions Runner service
|
148 |
| - systemd: |
| 144 | + ansible.builtin.systemd: |
149 | 145 | name: "{{ runner_service.content | b64decode | replace('\n', '') }}"
|
150 | 146 | state: stopped
|
151 | 147 | enabled: no
|
152 | 148 | ignore_errors: "{{ ansible_check_mode }}"
|
153 | 149 | when: runner_state|lower == "stopped"
|
154 | 150 |
|
155 | 151 | - name: Version changed - RESTART Github Actions Runner service
|
156 |
| - systemd: |
| 152 | + ansible.builtin.systemd: |
157 | 153 | name: "{{ runner_service.content | b64decode | replace('\n', '') }}"
|
158 | 154 | state: restarted
|
159 | 155 | ignore_errors: "{{ ansible_check_mode }}"
|
|
0 commit comments