ansible-role-gitea/tasks/main.yml

176 lines
4.6 KiB
YAML

---
# vim: set expandtab tabstop=2 shiftwidth=2:
- name: install dependencies
when: '"apk" == ansible_pkg_mgr|lower'
apk:
name:
- postgresql
- postgresql-client
- py3-psycopg2
- nginx
- gnutls-utils
- py3-openssl
- gitea
- ruby
- ruby-dev
- name: apt-based
when: '"apt" == ansible_pkg_mgr|lower'
block:
- name: install dependencies
apt:
name:
- postgresql
- postgresql-client
- python-psycopg2
- nginx
- gnutls-bin
- python-openssl
- ruby
- ruby-dev
- name: create git-group
group:
name: git
- name: create git-user
user:
name: git
comment: git & gitea
group: git
shell: /bin/bash
createhome: yes
home: /home/git
move_home: no
skeleton: no
- name: create gitea-dirs
file:
dest: '{{item}}'
state: directory
force: yes
owner: git
mode: 0755
with_items:
- /var/lib/gitea
- /var/log/gitea
- /srv/gitea
- /srv/gitea/custom
- /etc/gitea
- name: create links
file:
dest: '{{item.key}}'
src: '{{item.value}}'
state: link
force: yes
with_dict:
/srv/gitea/data: /var/lib/gitea
/srv/gitea/custom/conf: /etc/gitea
- name: "download gitea-{{ gitea_version }}-{{ ansible_architecture }}"
get_url:
url: "{{ gitea_download_uri }}"
dest: "/srv/gitea/gitea-{{ gitea_version }}-{{ ansible_architecture }}"
mode: 0600
- name: "link gitea to gitea-{{ gitea_version }}-{{ ansible_architecture }}"
copy:
src: "/srv/gitea/gitea-{{ gitea_version }}-{{ ansible_architecture }}"
dest: /srv/gitea/gitea
remote_src: yes
mode: 0755
- name: install asciidoctor
gem:
name: asciidoctor
- name: install gitea-service for systemd
when: ansible_service_mgr == "systemd"
copy:
src: gitea.service
dest: /etc/systemd/system/
owner: root
group: root
mode: 0644
- name: systemctl daemon-reload
when: ansible_service_mgr == "systemd"
systemd:
daemon-reload: yes
- name: started postgresql
service:
state: started
name: postgresql
- name: create db gitea
become_user: postgres
become: true
postgresql_db:
name: gitea
encoding: UTF-8
template: template0
- name: create db-user git
become_user: postgres
become: true
no_log: true
postgresql_user:
db: gitea
name: git
password: NULL
#- name: create ldap-auth
# become: yes
# become_user: git
# shell: psql gitea
# args:
# stdin: |
# PREPARE upsert_login_source (varchar, int, bool, text) AS -- name, type, is_actived, cfg
# INSERT INTO login_source (name, type, is_actived, cfg) VALUES ($1, $2, $3, $4)
# ON CONFLICT (name) DO UPDATE SET type = $2, is_actived = $3, cfg = $4
# WHERE login_source.type <> $2 OR login_source.is_actived <> $3 OR login_source.cfg <> $4;
# EXECUTE upsert_login_source ('ldap', 5, 'true', '{"Name":"ldap","Host":"ldap.technikum-wien.at","Port":389,"SecurityProtocol":2,"SkipVerify":false,"BindDN":"ou=People,dc=technikum-wien,dc=at","BindPassword":"","UserBase":"","UserDN":"uid=%s,ou=People,dc=technikum-wien,dc=at","AttributeUsername":"uid","AttributeName":"givenName","AttributeSurname":"sn","AttributeMail":"mail","AttributesInBind":false,"Filter":"(\u0026(objectClass=posixAccount)(uid=%s))","AdminFilter":"","GroupEnabled":false,"GroupDN":"","GroupFilter":"","GroupMemberUID":"","UserUID":"","Enabled":true}');
# failed_when: "'ERROR:' in ldap_auth_sql.stderr"
# changed_when: "'INSERT 0 0' not in ldap_auth_sql.stdout"
# register: ldap_auth_sql
- name: create gitea-config
template:
src: gitea.ini.j2
dest: /etc/gitea/app.ini
owner: git
#- name: create tls-dir
# file:
# dest: '{{item}}'
# state: directory
# force: yes
# owner: root
# mode: 0700
# with_items:
# - /etc/nginx/tls
- name: copy nginx-sites
when: '"apt" == ansible_pkg_mgr|lower'
template:
src: "nginx.j2"
dest: "/etc/nginx/sites-available/gitea"
- name: enable nginx-sites
when: '"apt" == ansible_pkg_mgr|lower'
file:
state: link
src: "../sites-available/gitea"
dest: "/etc/nginx/sites-enabled/gitea"
- name: copy nginx-sites
when: '"apk" == ansible_pkg_mgr|lower'
template:
src: "nginx.j2"
dest: "/etc/nginx/conf.d/gitea.conf"
- name: systemctl daemon-reload
when: ansible_service_mgr == "systemd"
systemd:
daemon-reload: yes
- name: enable services
service:
name: '{{item}}'
enabled: true
state: restarted
with_items:
- nginx
- gitea