Initial Commit

This commit is contained in:
2025-10-02 19:57:57 +10:00
parent 0d81d80e28
commit 47d6aceca2
9 changed files with 91 additions and 35 deletions

View File

@ -1,24 +0,0 @@
---
- name: Prepare all servers
hosts: all
become: true
pre_tasks:
- name: Setup base system
import_tasks: tasks/base.yml
tags: base_setup
tasks:
- name: Create ghshr folders
file:
path: "/opt/actions-runner"
state: directory
- name: Download ans extract the GitHub Actions Runner
ansible.builtin.unarchive:
src: https://github.com/actions/runner/releases/download/v2.328.0/actions-runner-linux-x64-2.328.0.tar.gz
dest: /opt/actions-runner
remote_src: yes

View File

@ -12,3 +12,5 @@ install_packages:
- mc
- net-tools
- unattended-upgrades
data_folder: /data

View File

@ -1,3 +1,3 @@
[ghshr]
ghshr.comprofix.xyz
[gtar]
gtar.comprofix.xyz

View File

@ -1,3 +1,30 @@
---
- import_playbook: ghshr.yml
- name: Prepare all servers
hosts: all
become: true
vars:
alpine_latest_image: "alpine:latest"
ubuntu_latest_image: "node:22-trixie"
debian_latest_image: "git.comprofix.com/mmckinnon/debian-latest:2025.08.31-093853"
pre_tasks:
- name: Create directories
file:
path: "/data"
state: directory
- name: Setup base system
import_tasks: tasks/base.yml
tags: base_setup
roles:
- role: geerlingguy.docker
docker_users:
- administrator
tasks:
- name: Deploy docker apps
include_tasks: "tasks/{{ container }}.yml"
loop:
- gitea-runner
loop_control:
loop_var: container

4
ansible/requirements.yml Normal file
View File

@ -0,0 +1,4 @@
roles:
- name: geerlingguy.docker
src: git+https://github.com/geerlingguy/ansible-role-docker
version: master

View File

@ -0,0 +1,6 @@
---
- name: Create directories for {{ container }}
file:
path: "{{ data_folder }}/{{ container }}/{{ item }}"
state: directory
loop: "{{ subfolders | default(['config', 'data', 'logs']) }}"

View File

@ -0,0 +1,40 @@
- name: Create Folders
include_tasks: create_folders.yml
vars:
subfolders:
- config
- name: Check that config.yaml exists
stat:
path: "{{ data_folder }}/gitea-runner/config/config.yaml"
register: configyaml
- name: Create config.yaml file
file:
path: "{{ data_folder }}/gitea-runner/config/config.yaml"
state: touch
mode: "0600"
access_time: preserve
modification_time: preserve
when: configyaml.stat.exists == False
- name: Create the gitea-runner container
docker_container:
name: gitea-runner
image: gitea/act_runner:0.2.13
restart_policy: unless-stopped
recreate: true
# dns_servers:
# - 10.10.10.1
# - 127.0.0.11
volumes:
- "/etc/resolv.conf:/etc/resolv.conf:ro"
- /var/run/docker.sock:/var/run/docker.sock
- "{{ data_folder }}/gitea-runner/config/config.yaml:/config.yaml"
- "/etc/hosts:/etc/hosts:ro"
env:
CONFIG_FILE: "/config.yaml"
GITEA_INSTANCE_URL: "https://git.comprofix.com"
GITEA_RUNNER_REGISTRATION_TOKEN: "{{ GITEA_RUNNER_TOKEN }}"
GITEA_RUNNER_NAME: "gtar-runner"
GITEA_RUNNER_LABELS: "alpine-latest:docker://{{ alpine_latest_image }},ubuntu-latest:docker://{{ ubuntu_latest_image }},vps-latest:docker://{{ debian_latest_image }}"

View File

@ -1,8 +1,8 @@
resource "proxmox_lxc" "ghshr" {
resource "proxmox_lxc" "gtar" {
target_node = "pve"
vmid = "200"
hostname = "ghshr"
hostname = "gtar"
ostemplate = "local:vztmpl/debian-13-standard_13.1-1_amd64.tar.zst"
password = var.ci_password
unprivileged = false
@ -10,6 +10,8 @@ resource "proxmox_lxc" "ghshr" {
onboot = true
start = true
startup = "order=1000"
tags = "gitea;container"
ssh_public_keys = <<EOF
@ -36,5 +38,6 @@ resource "proxmox_lxc" "ghshr" {
ip = "10.10.10.8/24"
gw = "10.10.10.1"
tag = 10
ip6 = "auto"
}
}

View File

@ -5,13 +5,11 @@ terraform {
version = "3.0.2-rc04"
}
bitwarden = {
source = "maxlaverse/bitwarden"
version = ">= 0.13.6"
}
}
backend "pg" {}
backend "pg" {
schema_name = "homelab-ghshr"
}
encryption {
key_provider "pbkdf2" "mykey" {
passphrase = var.passphrase