--- # tasks file for ffdo.gitit - name: Ensure group for gitit exists group: name={{gitit_group}} - name: Ensure user for gitit exists user: name: "{{ gitit_user }}" createhome: no home: "{{ gitit_data_dir }}" group: "{{ gitit_group }}" - name: Ensure gitit ssh dir exists file: dest: "{{ gitit_data_dir }}/.ssh" state: directory mode: 0700 owner: "{{ gitit_user }}" group: "{{ gitit_group }}" - name: Ensure gitit ssh key is up to date copy: content: "{{ wiki_git_private_key }}" dest: "{{ gitit_data_dir }}/.ssh/id_rsa" mode: 0600 owner: "{{ gitit_user }}" group: "{{ gitit_group }}" - name: Ensure gitconfig exists template: src: gitconfig.j2 dest: "{{ gitit_data_dir }}/.gitconfig" owner: "{{ gitit_user }}" group: "{{ gitit_group }}" - name: Ensure prerequisites for gitit are instaled apt: name={{ item }} state=present update_cache=yes cache_valid_time=3600 with_items: - git - gitit - name: Install gitit configuration template: src: conf.j2 dest: "{{ gitit_data_dir }}/gitit.conf" owner: "{{ gitit_user }}" notify: - Restart gitit - name: Ensure static content directories exists file: dest: "{{ gitit_data_dir }}/static/{{item}}" state: directory owner: "{{ gitit_user }}" with_items: - css - img - name: Ensure template directory exists file: dest: "{{ gitit_data_dir }}/templates" state: directory owner: "{{ gitit_user }}" - name: Ensure custom footer exists template: src: footer.st.j2 dest: "{{ gitit_data_dir }}/templates/footer.st" owner: "{{ gitit_user }}" - name: Ensure custom css exists template: src: custom.css.j2 dest: "{{ gitit_data_dir }}/static/css/custom.css" owner: "{{ gitit_user }}" - name: Ensure wikidata directory exists file: dest: "{{ gitit_data_dir }}/wikidata" state: directory owner: "{{ gitit_user }}" - name: Clone wiki repo git: repo: "{{ gitit_wiki_repo }}" dest: "{{ gitit_data_dir }}/wikidata" key_file: "{{ gitit_data_dir }}/.ssh/id_rsa" accept_hostkey: yes umask: "002" - name: Ensure git hooks are in place copy: src: "{{ item }}" dest: "{{ gitit_data_dir }}/wikidata/.git/hooks/{{ item }}" owner: "{{ gitit_user }}" mode: 0776 with_items: - post-commit - post-update - name: Create systemd units for wiki updates template: src: sync_wiki.{{ item }}.j2 dest: /etc/systemd/system/sync_wiki.{{ item }} with_items: - "service" - "timer" - name: Reload systemd units systemd: daemon_reload: yes name: sync_wiki.{{ item }} enabled: yes state: started with_items: - "service" - "timer" # TODO restore user data - name: Let acmetool generate a key and a certificate become: yes shell: /usr/bin/acmetool want --batch {{ wiki_domain }} notify: Restart nginx - name: Install nginx configs template: src: "nginx.j2" dest: "/etc/nginx/sites-available/wiki" notify: - Restart nginx - name: Activate nginx configurations file: src: /etc/nginx/sites-available/wiki dest: /etc/nginx/sites-enabled/wiki state: link notify: - Restart nginx - name: Install systemd unit register: gitit_systemd_unit template: src: systemd.j2 dest: /etc/systemd/system/gitit.service - name: Systemd daemon-reload when: gitit_systemd_unit|changed shell: systemctl daemon-reload - name: Ensure gitit is started and enabled service: name=gitit state=started enabled=yes