ansible-role-gitea/tasks/gitea.yml

126 lines
3.8 KiB
YAML

---
- block:
- name: Create the gitea service user
user: name={{ gitea_user }} home=/srv/gitea createhome=yes shell=/bin/bash system=yes
when: gitea_create_service_user
- name: Create the gitea directory tree
file: dest={{ gitea_data_dir }}/{{ item }} state=directory owner={{ gitea_user }} group={{ gitea_group }}
with_items: '{{ gitea_data_subdirs }}'
when: gitea_create_service_user
- name: Create the gitea subdirs when we are using a pre existing user
become: True
become_user: '{{ gitea_user }}'
file: dest={{ gitea_data_dir }}/{{ item }} state=directory
with_items: '{{ gitea_data_subdirs }}'
when: not gitea_create_service_user
- name: Create the gitea conf directory
file: dest={{ gitea_conf_dir }} state=directory owner=root group={{ gitea_group }} mode=0750
- name: Create the gitea socket directory
file:
dest: '{{ gitea_socket_dir }}'
state: directory
owner: '{{ gitea_user }}'
group: '{{ gitea_group }}'
mode: 0755
- name: Create the gitea log directory
file:
dest: '{{ gitea_log_dir }}'
state: directory
owner: '{{ gitea_user }}'
group: '{{ gitea_group }}'
mode: 0755
- name: Download the gitea binary
get_url:
url: '{{ gitea_download_url }}'
dest: '{{ gitea_bin_path }}'
owner: root
group: '{{ gitea_group }}'
mode: 0750
notify: restart gitea
- name: Force the download of the gitea binary to upgrade it
get_url:
url: '{{ gitea_download_url }}'
dest: '{{ gitea_bin_path }}'
owner: root
group: '{{ gitea_group }}'
mode: 0750
force: true
when: gitea_force_binary_download
- name: Install the required packages
package: state=present use=auto name={{ gitea_required_packages }}
- name: Install the gitea configuration file. At install time only
template: src=app.ini.j2 dest={{ gitea_conf_dir }}/app.ini owner={{ gitea_user }} group={{ gitea_group }} mode=0640 force=no
notify: restart gitea
- name: Change the gitea configuration. After the installation
ini_file:
path: '{{ gitea_conf_dir }}/app.ini'
section: '{{ item.section }}'
option: '{{ item.option }}'
value: '{{ item.value }}'
state: '{{ item.state }}'
owner: '{{ gitea_user }}'
group: '{{ gitea_group }}'
mode: '0640'
create: no
loop: '{{ gitea_app_configurations }}'
when: gitea_app_configurations is defined
notify: restart gitea
tags: [ 'git', 'gitea', 'gitea_conf' ]
- name: Prometheus metrics
ini_file:
path: '{{ gitea_conf_dir }}/app.ini'
section: '{{ item.section }}'
option: '{{ item.option }}'
value: '{{ item.value }}'
state: '{{ item.state }}'
owner: '{{ gitea_user }}'
group: '{{ gitea_group }}'
mode: '0640'
create: no
loop: '{{ gitea_prometheus_conf }}'
notify: restart gitea
tags: [ 'git', 'gitea', 'gitea_conf' ]
- name: Create the tmpfile entry for the gitea socket directory
template:
src: tmpfile_gitea.conf.j2
dest: /usr/lib/tmpfiles.d/gitea.conf
owner: root
group: root
mode: 0644
- name: Create some custom subdirectories
become: true
become_user: '{{ gitea_user }}'
file:
dest: '{{ gitea_data_dir }}/custom/{{ item }}'
state: directory
loop:
- 'templates/custom'
- 'public/css'
tags: [ 'git', 'gitea', 'gitea_conf' ]
- name: Install the gitea systemd unit
template: src=gitea.service.systemd.j2 dest=/etc/systemd/system/gitea.service
register: gitea_systemd_unit
- name: Reload the systemd configuration
command: systemctl daemon-reload
when: gitea_systemd_unit is changed
- name: Ensure that the gitea service is running and enabled
service: name=gitea state=started enabled=yes
tags: [ 'git', 'gitea' ]