65 lines
2.4 KiB
YAML
65 lines
2.4 KiB
YAML
---
|
|
- name: Setup Forgejo
|
|
|
|
hosts: all
|
|
|
|
vars_files:
|
|
- vault.yaml
|
|
- vars.yaml
|
|
|
|
tasks:
|
|
- name: Start Forgejo Actions Runner Docker DIND
|
|
docker_container:
|
|
image: docker:dind
|
|
name: "{{ stack_prefix_name }}forgejo_actions_runner_docker_dind"
|
|
privileged: true
|
|
command: ["dockerd", "-H", "tcp://0.0.0.0:2375", "--tls=false"]
|
|
state: "{{ container_state }}"
|
|
|
|
- name: Register Forgejo Actions Runner
|
|
docker_container:
|
|
name: "{{ stack_prefix_name }}forgejo_actions_runner"
|
|
recreate: false
|
|
restart_policy: "no"
|
|
image: code.forgejo.org/forgejo/runner:3.3.0
|
|
user: "0:0"
|
|
env:
|
|
DOCKER_HOST: "tcp://{{ stack_prefix_name }}forgejo_actions_runner_docker_dind:2375"
|
|
mounts:
|
|
- target: /srv/runner-data
|
|
source: "{{ stack_prefix_name }}forgejo_actions_runner_data"
|
|
networks:
|
|
- name: "{{ stack_prefix_name }}{{ docker_internal_network }}"
|
|
- name: "{{ stack_prefix_name }}{{ docker_external_network }}"
|
|
state: "{{ container_state }}"
|
|
command: |
|
|
bash -ec '
|
|
while : ; do
|
|
forgejo-runner register --no-interactive --token "{{ secret_forgejo_actions_runner_token }}" --name gopoop_forgejo_actions_runner_docker_dind --instance https://codeberg.org && break ;
|
|
sleep 1 ;
|
|
done ;
|
|
forgejo-runner generate-config > config.yml;
|
|
sed -i -e "s|network: .*|network: host|" config.yml ;
|
|
sed -i -e "s|labels: \[\]|labels: \[\"docker:docker://alpine:3.18\"\]|" config.yml;
|
|
chown -R 1000:1000 /data;
|
|
'
|
|
|
|
- name: Start Forgejo Actions Daemon
|
|
docker_container:
|
|
name: "{{ stack_prefix_name }}forgejo_actions_runner_daemon"
|
|
recreate: true
|
|
restart_policy: unless-stopped
|
|
image: code.forgejo.org/forgejo/runner:3.3.0
|
|
user: "0:0"
|
|
env:
|
|
DOCKER_HOST: "tcp://{{ stack_prefix_name }}forgejo_actions_runner_docker_dind:2375"
|
|
mounts:
|
|
- target: /srv/runner-data
|
|
source: "{{ stack_prefix_name }}forgejo_actions_runner_data"
|
|
networks:
|
|
- name: "{{ stack_prefix_name }}{{ docker_internal_network }}"
|
|
- name: "{{ stack_prefix_name }}{{ docker_external_network }}"
|
|
state: "{{ container_state }}"
|
|
command: |
|
|
forgejo-runner --config config.yml daemon
|