Deploy gites
This commit is contained in:
23
ansible/playbooks/day1_deploy_gitea.yml
Normal file
23
ansible/playbooks/day1_deploy_gitea.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
# ------------------------------------------------------------------------------
|
||||
# FILE: ansible/playbooks/day1_deploy_gitea.yml
|
||||
# DESCRIPTION: Deploys Gitea + PostgreSQL on mad-tea-party (10.1.71.129)
|
||||
# Role chain: common → docker-host → gitea
|
||||
#
|
||||
# USAGE:
|
||||
# ansible-playbook -i ansible/inventory.yml ansible/playbooks/day1_deploy_gitea.yml
|
||||
#
|
||||
# SECRETS REQUIRED IN VAULT (group_vars/all/vault):
|
||||
# vault_gitea_db_password
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
- name: Deploy Gitea on mad-tea-party
|
||||
hosts: gitea_servers
|
||||
become: true
|
||||
|
||||
vars:
|
||||
gitea_db_password: "{{ vault_gitea_db_password }}"
|
||||
|
||||
roles:
|
||||
- role: docker-host
|
||||
- role: gitea
|
||||
@@ -14,6 +14,5 @@
|
||||
become: true
|
||||
|
||||
roles:
|
||||
- common
|
||||
- docker-host
|
||||
- traefik
|
||||
|
||||
31
ansible/playbooks/roles/gitea/defaults/main.yml
Normal file
31
ansible/playbooks/roles/gitea/defaults/main.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
# ------------------------------------------------------------------------------
|
||||
# FILE: ansible/playbooks/roles/gitea/defaults/main.yml
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Directory layout on mad-tea-party
|
||||
gitea_compose_dir: /opt/gitea
|
||||
|
||||
# Gitea application settings
|
||||
gitea_domain: git.mk-labs.cloud
|
||||
gitea_root_url: "https://{{ gitea_domain }}"
|
||||
gitea_http_port: 3000
|
||||
gitea_ssh_port: 2221
|
||||
|
||||
# Trusted proxy (lightning-lane)
|
||||
gitea_trusted_proxies: 10.1.71.35
|
||||
|
||||
# Timezone
|
||||
gitea_timezone: America/Chicago
|
||||
|
||||
# Database
|
||||
gitea_db_name: gitea
|
||||
gitea_db_user: gitea
|
||||
|
||||
# Traefik dynamic config destination on lightning-lane
|
||||
traefik_dynamic_config_dir: /opt/traefik/dynamic
|
||||
|
||||
# DNS
|
||||
gitea_cname_name: git
|
||||
gitea_cname_domain: mk-labs.cloud
|
||||
gitea_cname_target: mad-tea-party.local.mk-labs.cloud
|
||||
10
ansible/playbooks/roles/gitea/handlers/main.yml
Normal file
10
ansible/playbooks/roles/gitea/handlers/main.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
# ------------------------------------------------------------------------------
|
||||
# FILE: ansible/playbooks/roles/gitea/handlers/main.yml
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
- name: restart gitea
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ gitea_compose_dir }}"
|
||||
state: present
|
||||
recreate: always
|
||||
63
ansible/playbooks/roles/gitea/tasks/main.yml
Normal file
63
ansible/playbooks/roles/gitea/tasks/main.yml
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
# ------------------------------------------------------------------------------
|
||||
# FILE: ansible/playbooks/roles/gitea/tasks/main.yml
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# ── Directories ────────────────────────────────────────────────────────────────
|
||||
|
||||
- name: Create Gitea compose directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ gitea_compose_dir }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
|
||||
# ── Compose & env ──────────────────────────────────────────────────────────────
|
||||
|
||||
- name: Deploy Gitea compose file from boilerplate
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../../boilerplates/gitea/compose.yaml"
|
||||
dest: "{{ gitea_compose_dir }}/compose.yaml"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify: restart gitea
|
||||
|
||||
- name: Deploy .env file with secrets from vault
|
||||
ansible.builtin.template:
|
||||
src: env.j2
|
||||
dest: "{{ gitea_compose_dir }}/.env"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
notify: restart gitea
|
||||
|
||||
# ── Compose stack ──────────────────────────────────────────────────────────────
|
||||
|
||||
- name: Start Gitea stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ gitea_compose_dir }}"
|
||||
state: present
|
||||
recreate: always
|
||||
|
||||
# ── Traefik route ──────────────────────────────────────────────────────────────
|
||||
|
||||
# - name: Deploy Traefik dynamic config for Gitea
|
||||
# ansible.builtin.copy:
|
||||
# src: "{{ playbook_dir }}/../../boilerplates/traefik/dynamic/gitea.yml"
|
||||
# dest: "{{ traefik_dynamic_config_dir }}/gitea.yml"
|
||||
# owner: root
|
||||
# group: root
|
||||
# mode: "0644"
|
||||
# delegate_to: localhost
|
||||
|
||||
# ── DNS ────────────────────────────────────────────────────────────────────────
|
||||
|
||||
# - name: Create DNS CNAME for Gitea
|
||||
# ansible.builtin.include_role:
|
||||
# name: add_service_route
|
||||
# vars:
|
||||
# service_name: "{{ gitea_cname_name }}"
|
||||
# service_domain: "{{ gitea_cname_domain }}"
|
||||
# target_host: "{{ gitea_cname_target }}"
|
||||
7
ansible/playbooks/roles/gitea/templates/env.j2
Normal file
7
ansible/playbooks/roles/gitea/templates/env.j2
Normal file
@@ -0,0 +1,7 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# FILE: ansible/playbooks/roles/gitea/templates/env.j2
|
||||
# DESCRIPTION: Environment file for Gitea Docker Compose stack.
|
||||
# Populated from Ansible Vault at deploy time.
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
DATABASE_PASSWORD={{ gitea_db_password }}
|
||||
Reference in New Issue
Block a user