homelab/ansible/roles/github_runner/tasks/main.yml

87 lines
2 KiB
YAML

---
- name: Install required packages
ansible.builtin.apt:
pkg:
- nodejs
- npm
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
update_cache: true
become: true
- name: Give user access to docker
ansible.builtin.user:
name: ansible
append: true
groups: docker
become: true
- name: Create directory
ansible.builtin.file:
state: directory
path: /home/ansible/woodpecker
mode: "0772"
- name: Copy docker-compose
ansible.builtin.copy:
src: files/docker-compose.yml
dest: /home/ansible/woodpecker
mode: "0772"
- name: Deploy woodpecker
community.docker.docker_compose_v2:
state: present
project_src: /home/ansible/woodpecker
- name: Deploy woodpecker
community.docker.docker_compose_v2:
state: restarted
project_src: /home/ansible/woodpecker
- name: Generate an OpenSSH keypair with the default values (4096 bits, rsa)
community.crypto.openssh_keypair:
path: /home/ansible/.ssh/id_ssh_rsa
- name: Read public key into var
ansible.builtin.slurp:
src: /home/ansible/.ssh/id_ssh_rsa.pub
register: slurped_data
- name: Set fact
ansible.builtin.set_fact:
priv_key: "{{ slurped_data.content | ansible.builtin.b64decode }}"
- name: Add public key to other server
ansible.builtin.lineinfile:
state: present
line: "{{ priv_key }}"
path: /home/ansible/.ssh/authorized_keys
delegate_to: 192.168.1.92
- name: Copy Dockerfile
ansible.builtin.copy:
src: files/Dockerfile
dest: /home/ansible/woodpecker/Dockerfile
mode: "0772"
- name: Build docker container locally
community.docker.docker_image:
build:
path: /home/ansible/woodpecker/
name: local/builder
source: build
become: true
- name: Copy nginx config
ansible.builtin.copy:
src: woodpecker.conf
dest: /etc/nginx/sites-enabled/woodpecker.conf
owner: root
mode: "0644"
become: true
notify: Reload nginx