80 lines
2.6 KiB
YAML
80 lines
2.6 KiB
YAML
# =============================================================================
|
|
# Playbook : runner.yml
|
|
# Description: Deploiement du Forgejo Actions Runner (vm-runner)
|
|
# Registration automatique si premiere installation,
|
|
# puis demarrage du daemon en container Docker.
|
|
#
|
|
# Usage :
|
|
# ansible-playbook playbooks/runner.yml \
|
|
# -i inventories/<inventaire>/ \
|
|
# --ask-vault-pass
|
|
#
|
|
# Prerequis :
|
|
# - Docker installe (playbook docker.yml execute avant)
|
|
# - Token runner genere dans Forgejo : Admin > Actions > Runners
|
|
# - vault_forgejo_runner_token defini dans le vault
|
|
# - vault_forgejo_domain defini dans le vault
|
|
#
|
|
# Exemple :
|
|
# ansible-playbook playbooks/runner.yml \
|
|
# -i inventories/homelab/ \
|
|
# --ask-vault-pass \
|
|
# --tags runner
|
|
# =============================================================================
|
|
---
|
|
- name: Deploiement Forgejo Actions Runner
|
|
hosts: runner
|
|
become: true
|
|
|
|
tasks:
|
|
- name: Creation des repertoires runner
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ admin_user }}"
|
|
group: "{{ admin_user }}"
|
|
mode: "0755"
|
|
loop:
|
|
- /opt/runner
|
|
- /opt/runner/data
|
|
tags: [runner]
|
|
|
|
- name: Deploiement docker-compose runner
|
|
ansible.builtin.copy:
|
|
src: ../../docker/runner/docker-compose.yml
|
|
dest: /opt/runner/docker-compose.yml
|
|
owner: "{{ admin_user }}"
|
|
group: "{{ admin_user }}"
|
|
mode: "0644"
|
|
tags: [runner]
|
|
|
|
- name: Verification fichier de registration
|
|
ansible.builtin.stat:
|
|
path: /opt/runner/data/.runner
|
|
register: runner_config
|
|
tags: [runner]
|
|
|
|
# La registration est une operation unique : elle cree /opt/runner/data/.runner
|
|
# Ce fichier contient les credentials du runner, il ne faut pas la rejouer
|
|
- name: Registration du runner (premiere fois uniquement)
|
|
community.docker.docker_container:
|
|
name: forgejo-runner-register
|
|
image: code.forgejo.org/forgejo/runner:6
|
|
auto_remove: true
|
|
volumes:
|
|
- /opt/runner/data:/data
|
|
command: >
|
|
forgejo-runner register
|
|
--no-interactive
|
|
--instance "https://{{ vault_forgejo_domain }}"
|
|
--token "{{ vault_forgejo_runner_token }}"
|
|
--name "vm-runner"
|
|
--labels "ubuntu-latest:docker://ubuntu:22.04,self-hosted:host"
|
|
when: not runner_config.stat.exists
|
|
tags: [runner]
|
|
|
|
- name: Demarrage du runner
|
|
community.docker.docker_compose_v2:
|
|
project_src: /opt/runner
|
|
state: present
|
|
tags: [runner]
|