157 lines
4.4 KiB
YAML
157 lines
4.4 KiB
YAML
---
|
|
- name: Setup Gitea Runner on HCP nodes
|
|
hosts: hcp
|
|
become: yes
|
|
vars:
|
|
gitea_runner_token: "vOrrQda6Qiet9YOj4waZVU5QgLig2J3rKp2RfoN7"
|
|
gitea_server_url: "http://gitea:3000"
|
|
gitea_runner_user: "gitea-runner"
|
|
gitea_runner_home: "/home/{{ gitea_runner_user }}"
|
|
gitea_runner_config_dir: "/etc/gitea-runner"
|
|
gitea_runner_data_dir: "/var/lib/gitea-runner"
|
|
gitea_runner_log_dir: "/var/log/gitea-runner"
|
|
gitea_runner_binary: "/usr/bin/act_runner"
|
|
|
|
tasks:
|
|
- name: Check if gitea-runner binary exists
|
|
stat:
|
|
path: "{{ gitea_runner_binary }}"
|
|
register: runner_binary
|
|
|
|
- name: Fail if act_runner binary not found
|
|
fail:
|
|
msg: "Act runner binary not found at {{ gitea_runner_binary }}. Please install it first."
|
|
when: not runner_binary.stat.exists
|
|
|
|
- name: Create gitea-runner user
|
|
user:
|
|
name: "{{ gitea_runner_user }}"
|
|
system: yes
|
|
shell: /bin/bash
|
|
home: "{{ gitea_runner_home }}"
|
|
create_home: yes
|
|
comment: "Gitea Runner Service User"
|
|
|
|
- name: Create gitea-runner directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ gitea_runner_user }}"
|
|
group: "{{ gitea_runner_user }}"
|
|
mode: '0755'
|
|
loop:
|
|
- "{{ gitea_runner_config_dir }}"
|
|
- "{{ gitea_runner_data_dir }}"
|
|
- "{{ gitea_runner_log_dir }}"
|
|
|
|
- name: Create gitea-runner configuration file
|
|
template:
|
|
src: gitea-runner-config.yml.j2
|
|
dest: "{{ gitea_runner_config_dir }}/config.yml"
|
|
owner: "{{ gitea_runner_user }}"
|
|
group: "{{ gitea_runner_user }}"
|
|
mode: '0600'
|
|
notify: restart gitea-runner
|
|
|
|
- name: Create gitea-runner systemd service file
|
|
template:
|
|
src: gitea-runner.service.j2
|
|
dest: /etc/systemd/system/gitea-runner.service
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
notify:
|
|
- reload systemd
|
|
- restart gitea-runner
|
|
|
|
- name: Create gitea-runner environment file
|
|
template:
|
|
src: gitea-runner.env.j2
|
|
dest: /etc/default/gitea-runner
|
|
owner: root
|
|
group: root
|
|
mode: '0600'
|
|
notify: restart gitea-runner
|
|
|
|
- name: Create runner registration script
|
|
template:
|
|
src: register-runner.sh.j2
|
|
dest: "{{ gitea_runner_home }}/register-runner.sh"
|
|
owner: "{{ gitea_runner_user }}"
|
|
group: "{{ gitea_runner_user }}"
|
|
mode: '0755'
|
|
|
|
- name: Check if runner is already registered
|
|
stat:
|
|
path: "{{ gitea_runner_data_dir }}/.runner"
|
|
register: runner_registered
|
|
|
|
- name: Register gitea runner
|
|
command: "{{ gitea_runner_home }}/register-runner.sh"
|
|
become_user: "{{ gitea_runner_user }}"
|
|
when: not runner_registered.stat.exists
|
|
register: registration_result
|
|
|
|
- name: Display registration result
|
|
debug:
|
|
var: registration_result.stdout_lines
|
|
when: registration_result is defined and registration_result.stdout_lines is defined
|
|
|
|
- name: Create runner startup script
|
|
template:
|
|
src: start-runner.sh.j2
|
|
dest: "{{ gitea_runner_home }}/start-runner.sh"
|
|
owner: "{{ gitea_runner_user }}"
|
|
group: "{{ gitea_runner_user }}"
|
|
mode: '0755'
|
|
|
|
- name: Create logrotate configuration for gitea-runner
|
|
template:
|
|
src: gitea-runner.logrotate.j2
|
|
dest: /etc/logrotate.d/gitea-runner
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: Install Docker (required for runner)
|
|
package:
|
|
name: docker.io
|
|
state: present
|
|
|
|
- name: Add gitea-runner user to docker group
|
|
user:
|
|
name: "{{ gitea_runner_user }}"
|
|
groups: docker
|
|
append: yes
|
|
|
|
- name: Start and enable Docker service
|
|
systemd:
|
|
name: docker
|
|
state: started
|
|
enabled: yes
|
|
|
|
- name: Start and enable gitea-runner service
|
|
systemd:
|
|
name: gitea-runner
|
|
state: started
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
|
|
- name: Check gitea-runner service status
|
|
systemd:
|
|
name: gitea-runner
|
|
register: service_status
|
|
|
|
- name: Display service status
|
|
debug:
|
|
msg: "Gitea Runner service is {{ service_status.status.ActiveState }}"
|
|
|
|
handlers:
|
|
- name: reload systemd
|
|
systemd:
|
|
daemon_reload: yes
|
|
|
|
- name: restart gitea-runner
|
|
systemd:
|
|
name: gitea-runner
|
|
state: restarted |