Compare commits
17 Commits
28164e533a
...
master
Author | SHA1 | Date | |
---|---|---|---|
3a726c832f | |||
95e4549ae6 | |||
651b7e7e10 | |||
638e7c23f5 | |||
41458d1442 | |||
b8a1792db9 | |||
adf61d7fe0 | |||
68de69c85f | |||
6c84f51c53 | |||
eed09be8b1 | |||
027533eb26 | |||
f2d6cade13 | |||
3c8e382b91 | |||
81023b1bd3 | |||
b9028ca0da | |||
3f65252b67 | |||
fa81df67d9 |
14
README.md
14
README.md
@ -16,11 +16,23 @@ Built using Infrastructure as Code (IaC) with [OpenTofu](https://opentofu.org/)
|
||||
|
||||
## 🔄 Usage
|
||||
|
||||
### 🛠️ Opentofu
|
||||
|
||||
1. Checkout repo
|
||||
2. From the opentofu folder, generate `terraform.auto.tfvars` using the supplied ```prepareEnv.sh```
|
||||
2. From the opentofu folder, generate `terraform.auto.tfvars` using the supplied `prepareEnv.sh`
|
||||
3. Run `tofu init`, `tofu fmt`, `tofu validate`
|
||||
4. Execute `tofu plan`
|
||||
5. If successful, run `tofu apply`
|
||||
6. From the ansible folder, run `ansible-playbook main.yml`
|
||||
|
||||
### 🧩 Ansible
|
||||
|
||||
1. Checkout repo
|
||||
2. From the ansible folder, run `export GITEA_RUNNER_TOKEN="{{ YOUR_GITEA_RUNNER_TOKEN }}"`
|
||||
3. Run `ansible-playbook main.yml -e "GITEA_RUNNER_TOKEN=$GITEA_RUNNER_TOKEN"`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,10 +1,6 @@
|
||||
---
|
||||
install_packages:
|
||||
- apt-transport-https
|
||||
- ca-certificates
|
||||
- curl
|
||||
- gnupg
|
||||
- lsb-release
|
||||
- vim
|
||||
- git
|
||||
- htop
|
||||
@ -12,8 +8,3 @@ install_packages:
|
||||
- mc
|
||||
- net-tools
|
||||
- unattended-upgrades
|
||||
|
||||
data_folder: /data
|
||||
alpine_latest_image: "alpine:latest"
|
||||
ubuntu_latest_image: "node:22-trixie"
|
||||
debian_latest_image: "git.comprofix.com/mmckinnon/debian-latest:2025.08.31-093853"
|
||||
|
@ -20,8 +20,5 @@
|
||||
- administrator
|
||||
tasks:
|
||||
- name: Deploy docker apps
|
||||
include_tasks: "tasks/{{ container }}.yml"
|
||||
loop:
|
||||
- gitea-runner
|
||||
loop_control:
|
||||
loop_var: container
|
||||
import_tasks: "tasks/gitea-runner.yml"
|
||||
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
- name: Create directories for {{ container }}
|
||||
file:
|
||||
path: "{{ data_folder }}/{{ container }}/{{ item }}"
|
||||
state: directory
|
||||
loop: "{{ subfolders | default(['config', 'data', 'logs']) }}"
|
@ -1,17 +1,20 @@
|
||||
- name: Create Folders
|
||||
include_tasks: create_folders.yml
|
||||
vars:
|
||||
subfolders:
|
||||
- config
|
||||
|
||||
- name: Create folders
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
with_items:
|
||||
- "/data/gitea-runner"
|
||||
- "/data/gitea-runner/config"
|
||||
|
||||
- name: Check that config.yaml exists
|
||||
stat:
|
||||
path: "{{ data_folder }}/gitea-runner/config/config.yaml"
|
||||
path: "/data/gitea-runner/config/config.yaml"
|
||||
register: configyaml
|
||||
|
||||
- name: Create config.yaml file
|
||||
file:
|
||||
path: "{{ data_folder }}/gitea-runner/config/config.yaml"
|
||||
path: "/data/gitea-runner/config/config.yaml"
|
||||
state: touch
|
||||
mode: "0600"
|
||||
access_time: preserve
|
||||
@ -29,12 +32,13 @@
|
||||
# - 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"
|
||||
- "/data/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 }},gtar-latest:docker://{{ debian_latest_image }}"
|
||||
GITEA_RUNNER_LABELS: "alpine-latest:docker://alpine:latest,ubuntu-latest:docker://node:22-trixie,gtar-latest:docker://git.comprofix.com/mmckinnon/debian-latest:latest"
|
@ -1,17 +0,0 @@
|
||||
---
|
||||
# Reusable snippet for pulling Docker images
|
||||
|
||||
- name: Set {{ image_name }} image reference
|
||||
set_fact:
|
||||
"{{ image_var }}_image_ref": "{{ image_ref }}"
|
||||
|
||||
- name: Ensure {{ image_name }} image is pulled
|
||||
community.docker.docker_image:
|
||||
name: "{{ image_ref }}"
|
||||
source: pull
|
||||
register: pulled_image
|
||||
|
||||
- name: Save image result under dynamic key
|
||||
set_fact:
|
||||
container_images: >-
|
||||
{{ container_images | default({}) | combine({ image_var: pulled_image }) }}
|
@ -4,22 +4,28 @@
|
||||
"local>RenovateBot/renovate-config",
|
||||
":semanticCommitTypeAll(chore)"
|
||||
],
|
||||
"automerge": false,
|
||||
"schedule": ["every hour"],
|
||||
"commitBodyTable": true,
|
||||
"ignoreTests": true,
|
||||
"major": {
|
||||
"automerge": false,
|
||||
"commitMessagePrefix": "chore(deps-major): ",
|
||||
"labels": ["dependencies", "breaking"]
|
||||
},
|
||||
"ignoreDeps": ["postgres"],
|
||||
"regexManagers": [
|
||||
{
|
||||
"fileMatch": ["(^|/)tasks/.*\\.ya?ml$", "(^|/)playbooks/.*\\.ya?ml$"],
|
||||
"matchStrings": [
|
||||
"(?<varName>\\w+_image):\\s+\"(?<depName>[\\w./-]+):(?<currentValue>[\\w.-]+)\""
|
||||
"fileMatch": ["group_vars/all.yml"],
|
||||
"matchStrings": ["^(\\s*(?<depName>\\w+_latest_image):\\s*\"?(?<currentValue>[^\"]+)\"?)"],
|
||||
"datasourceTemplate": "docker",
|
||||
"depNameTemplate": "{{ currentValue }}",
|
||||
"versioningTemplate": "docker",
|
||||
"pinDigests": true
|
||||
}
|
||||
],
|
||||
"datasourceTemplate": "docker"
|
||||
"packageRules": [
|
||||
{
|
||||
"managers": ["docker"],
|
||||
"matchPackageNames": ["alpine", "node"],
|
||||
"pinDigests": true
|
||||
},
|
||||
{
|
||||
"managers": ["docker"],
|
||||
"matchPackageNames": ["git.comprofix.com/mmckinnon/debian-latest"],
|
||||
"registryUrls": ["https://git.comprofix.com/v2/"],
|
||||
"pinDigests": true
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user