From 9d9fe107d0de34602775cbee2ca5208d604e0c5b Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Mon, 21 Sep 2015 18:48:19 +0200 Subject: Replace gitweb with cgit. --- roles/git/tasks/cgit.yml | 111 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 roles/git/tasks/cgit.yml (limited to 'roles/git/tasks/cgit.yml') diff --git a/roles/git/tasks/cgit.yml b/roles/git/tasks/cgit.yml new file mode 100644 index 0000000..a8be1fc --- /dev/null +++ b/roles/git/tasks/cgit.yml @@ -0,0 +1,111 @@ +- name: Install cgit + apt: pkg={{ item }} + with_items: + - cgit + - highlight + - uwsgi + +- name: Configure cgit + copy: src=etc/cgitrc + dest=/etc/cgitrc + owner=root group=root + mode=0644 + register: r1 + notify: + - Restart uWSGI + +- name: Copy /usr/lib/cgit/filters/syntax-highlighting2.sh + copy: src=usr/lib/cgit/filters/syntax-highlighting2.sh + dest=/usr/lib/cgit/filters/syntax-highlighting2.sh + owner=root group=root + mode=0755 + register: r2 + notify: + - Restart uWSGI + +- name: Create a user 'cgit' + user: name=cgit system=yes + home=/var/www + shell=/usr/sbin/nologin + password=! + state=present + register: r3 + notify: + - Restart uWSGI + +- name: Create /etc/uwsgi/apps-available/{cgit,git-http-backend}.ini + copy: src=etc/uwsgi/apps-available/{{ item }}.ini + dest=/etc/uwsgi/apps-available/{{ item }}.ini + owner=root group=root + mode=0644 + register: r4 + with_items: + - cgit + - git-http-backend + notify: + - Restart uWSGI + +- name: Create /etc/uwsgi/apps-enabled/{cgit,git-http-backend}.ini + file: src=../apps-available/{{ item }}.ini + dest=/etc/uwsgi/apps-enabled/{{ item }}.ini + owner=root group=root + state=link force=yes + register: r5 + with_items: + - cgit + - git-http-backend + notify: + - Restart uWSGI + +- name: Start uWSGI + service: name=nginx state=started + when: not (r1.changed or r2.changed or r3.changed or r4.changed or r5.changed) + +- meta: flush_handlers + +- name: Add 'cgit' & 'www-data' to the group 'gitolite' + user: name={{ item }} groups=gitolite append=yes + with_items: + # for the cgit interface + - cgit + # for pulls over HTTP/HTTPS + - www-data + + +- name: Generate a private key and a X.509 certificate for Nginx + command: genkeypair.sh x509 + --pubkey=/etc/nginx/ssl/git.fripost.org.pem + --privkey=/etc/nginx/ssl/git.fripost.org.key + --ou=WWW --cn=git.fripost.org --dns=git.fripost.org + -t rsa -b 4096 -h sha512 + register: r1 + changed_when: r1.rc == 0 + failed_when: r1.rc > 1 + notify: + - Restart Nginx + tags: + - genkey + +- name: Copy /etc/nginx/sites-available/git + copy: src=etc/nginx/sites-available/git + dest=/etc/nginx/sites-available/git + owner=root group=root + mode=0644 + register: r2 + notify: + - Restart Nginx + +- name: Create /etc/nginx/sites-enabled/git + file: src=../sites-available/git + dest=/etc/nginx/sites-enabled/git + owner=root group=root + state=link force=yes + register: r3 + notify: + - Restart Nginx + +- name: Start Nginx + service: name=nginx state=started + when: not (r1.changed or r2.changed or r3.changed) + +- meta: flush_handlers -- cgit v1.2.3