126 lines
2.9 KiB
YAML
126 lines
2.9 KiB
YAML
|
---
|
||
|
- name: Set OS dependent variables
|
||
|
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
|
||
|
vars:
|
||
|
params:
|
||
|
files:
|
||
|
- "{{ ansible_distribution | lower }}_{{ ansible_distribution_version | lower }}.yml"
|
||
|
- "{{ ansible_distribution | lower }}_{{ ansible_distribution_major_version | lower }}.yml"
|
||
|
- "{{ ansible_distribution | lower }}.yml"
|
||
|
- "{{ ansible_os_family | lower }}.yml"
|
||
|
- "{{ ansible_system | lower }}.yml"
|
||
|
paths:
|
||
|
- '{{ role_path }}/vars'
|
||
|
ignore_errors: True
|
||
|
|
||
|
- name: OS is supported
|
||
|
ansible.builtin.assert:
|
||
|
that: __os_supported
|
||
|
quiet: True
|
||
|
vars:
|
||
|
__os_supported: "{{ lookup('vars', '{}_os_supported'.format(role_name)) | bool }}"
|
||
|
|
||
|
|
||
|
- name: Install required packages
|
||
|
apt:
|
||
|
pkg:
|
||
|
- git
|
||
|
- sudo
|
||
|
state: latest
|
||
|
|
||
|
- name: Create git group
|
||
|
group:
|
||
|
name: git
|
||
|
state: present
|
||
|
|
||
|
- name: Create git user
|
||
|
user:
|
||
|
name: git
|
||
|
group: git
|
||
|
system: yes
|
||
|
comment: "Git Version Control"
|
||
|
shell: "/bin/bash"
|
||
|
home: /home/git
|
||
|
password_lock: yes
|
||
|
|
||
|
- name: Check whether desired forgejo version has already been downloaded
|
||
|
stat:
|
||
|
path: "/tmp/forgejo-{{ forgejo_version }}"
|
||
|
register: forgejo_binary_dl
|
||
|
|
||
|
# - name: Download desired forgejo version to temporary directory
|
||
|
# get_url:
|
||
|
# url: "TODO"
|
||
|
# dest: "/tmp/forgejo-{{ forgejo_version }}"
|
||
|
# when: forgejo_version is defined and not forgejo_binary_dl.stat.exists
|
||
|
|
||
|
- name: Copy forgejo binary to /usr/local/bin after successful download
|
||
|
copy:
|
||
|
remote_src: yes
|
||
|
src: "/tmp/forgejo-{{ forgejo_version }}"
|
||
|
dest: "/usr/local/bin/forgejo"
|
||
|
mode: 0755
|
||
|
owner: git
|
||
|
group: git
|
||
|
|
||
|
- name: Create config directory
|
||
|
file:
|
||
|
path: "/etc/forgejo"
|
||
|
owner: root
|
||
|
group: git
|
||
|
state: directory
|
||
|
mode: 0770
|
||
|
|
||
|
- name: Create /var/lib directories
|
||
|
file:
|
||
|
path: "{{ item }}"
|
||
|
owner: git
|
||
|
group: git
|
||
|
state: directory
|
||
|
mode: 0750
|
||
|
loop:
|
||
|
- /var/lib/forgejo
|
||
|
- /var/lib/forgejo/custom
|
||
|
- /var/lib/forgejo/data
|
||
|
- /var/lib/forgejo/indexers
|
||
|
- /var/lib/forgejo/public
|
||
|
- /var/lib/forgejo/log
|
||
|
|
||
|
- name: Check whether forgejo has previously been installed
|
||
|
stat:
|
||
|
path: "/etc/forgejo/app.ini"
|
||
|
register: forgejo_config_file
|
||
|
|
||
|
- name: If app.ini exists, update it using the template
|
||
|
template:
|
||
|
src: app.ini.j2
|
||
|
dest: /etc/forgejo/app.ini
|
||
|
when: forgejo_config_file.stat.exists
|
||
|
|
||
|
- name: Explicitly enable port 22 for sshd
|
||
|
copy:
|
||
|
dest: /etc/ssh/sshd_config.d/default.conf
|
||
|
content: "Port 22"
|
||
|
|
||
|
- name: Set forgejo's sshd config
|
||
|
template:
|
||
|
src: forgejo_sshd.conf.j2
|
||
|
dest: /etc/ssh/sshd_config.d/forgejo.conf
|
||
|
|
||
|
- name: Restart sshd
|
||
|
service:
|
||
|
name: sshd
|
||
|
state: restarted
|
||
|
daemon_reload: yes
|
||
|
|
||
|
- name: Set systemd service file
|
||
|
template:
|
||
|
src: forgejo.service.j2
|
||
|
dest: /etc/systemd/system/forgejo.service
|
||
|
|
||
|
- name: Enable and start forgejo service
|
||
|
service:
|
||
|
name: forgejo
|
||
|
state: restarted
|
||
|
enabled: yes
|
||
|
daemon_reload: yes
|