106 lines
2.7 KiB
YAML
106 lines
2.7 KiB
YAML
---
|
|
- name: Frontend setup
|
|
hosts: gitea
|
|
|
|
vars:
|
|
username: matt
|
|
nas_host: nas.localdomain
|
|
|
|
mounts:
|
|
gitea_data:
|
|
local: "/mnt/gitea_data"
|
|
remote: "/var/nfs/shared/gitea_data"
|
|
gitea_repos:
|
|
local: "/mnt/gitea_repos"
|
|
remote: "/var/nfs/shared/gitea_repos"
|
|
gitea_backups:
|
|
local: "/mnt/gitea_backups"
|
|
remote: "/var/nfs/shared/gitea_backups"
|
|
|
|
|
|
|
|
docker_add_repo: true
|
|
docker_users:
|
|
- "{{ username }}"
|
|
|
|
roles:
|
|
- role: geerlingguy.git
|
|
become: true
|
|
- role: geerlingguy.docker
|
|
become: true
|
|
|
|
tasks:
|
|
- name: Create myapp directory in home
|
|
ansible.builtin.file:
|
|
path: "{{ ansible_env.HOME }}/gitea"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Copy the gitea compose file to the host
|
|
ansible.builtin.copy:
|
|
src: gitea/compose.yaml
|
|
dest: "{{ ansible_env.HOME }}/gitea/compose.yaml"
|
|
|
|
# - name: Install NFS client
|
|
# ansible.builtin.apt:
|
|
# name: nfs-common
|
|
# state: present
|
|
# update_cache: true
|
|
# become: true
|
|
|
|
- name: Stop gitea services if running
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ ansible_env.HOME }}/gitea/"
|
|
state: absent
|
|
ignore_errors: true
|
|
|
|
- name: Unmount NFS volumes before creating mountpoint directories
|
|
ansible.posix.mount:
|
|
path: "{{ item.value.local }}"
|
|
state: unmounted
|
|
loop: "{{ mounts | dict2items }}"
|
|
become: true
|
|
|
|
- name: Create mountpoint directories for gitea
|
|
ansible.builtin.file:
|
|
path: "{{ item.value.local }}"
|
|
state: directory
|
|
mode: "0755"
|
|
loop: "{{mounts | dict2items }}"
|
|
become: true
|
|
|
|
- name: Mount an NFS volume for repositories
|
|
ansible.posix.mount:
|
|
src: "192.168.1.160:{{ item.value.remote }}"
|
|
path: "{{ item.value.local }}"
|
|
opts: nfsvers=3,proto=tcp,rw
|
|
state: mounted
|
|
fstype: nfs
|
|
loop: "{{ mounts | dict2items }}"
|
|
become: true
|
|
|
|
|
|
- name: Create and start services
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ ansible_env.HOME }}/gitea/"
|
|
state: present
|
|
|
|
- name: Start watchtower
|
|
community.docker.docker_container:
|
|
name: watchtower
|
|
image: nickfedor/watchtower
|
|
restart_policy: always
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /home/matt/.docker/config.json:/config.json
|
|
command:
|
|
- --cleanup
|
|
- --http-api-update
|
|
- --http-api-token={{ secrets.WATCHTOWER_HTTP_API_TOKEN }}
|
|
- --http-api-periodic-polls
|
|
ports:
|
|
- "8080:8080"
|
|
state: started
|
|
|
|
|