aboutsummaryrefslogblamecommitdiffstats
path: root/roles/cgit/tasks/main.yml
blob: f84e7e8ca4a50e1dbbc525f545f61c08329d7296 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                   



















                                             
                  














                                                                 

                                                                              












































                                                                                                             




                                        

# cgit ~~ roles/cgit/tasks/main.yml
# cgit web interface

---

- name: ensure cgit is installed
  package:
    name: cgit
    state: present

- name: generate cgit configuration file
  template:
    src: cgitrc.j2
    dest: /var/www/conf/cgitrc
    owner: "{{ user_root }}"
    group: "{{ group_root }}"
    mode: 0644

- name: generate cgit configuration for httpd
  template:
    src: cgit.httpd.conf.j2
    dest: /etc/httpd.d/cgit.conf
    owner: "{{ user_root }}"
    group: "{{ group_root }}"
    mode: 0644

- name: copy utility in httpd chroot
  copy:
    src: "/bin/{{ item }}"
    dest: /var/www/bin
    mode: preserve
    remote_src: true
  loop:
    - "sh"
    - "cat"

- name: copy about-filter generator
  copy:
    src: about-filter.sh
    dest: /var/www/bin/about-filter.sh
    owner: "{{ user_root }}"
    group: "{{ group_root }}"
    mode: 0755

- name: unmount potential existing filesystem in target directory
  shell: "umount /var/www/{{ cgit_git_dir_chroot }}"
  register: result
  failed_when: result.rc != 0 and "not currently mounted" not in result.stderr

- name: ensure cgit web directory exists
  file:
    path: /var/www/{{ cgit_git_dir_chroot }}
    owner: www
    group: daemon
    mode: 0644
    state: directory

- name: enable shared git directory in /etc/exports
  lineinfile:
    path: /etc/exports
    regexp: "^{{ cgit_git_dir }}"
    line: "{{ cgit_git_dir }} -mapall=root -alldirs -network=127.0.0.1 -mask=255.255.255.255 -ro"
    owner: "{{ user_root }}"
    group: "{{ group_root }}"
    mode: 0644
    create: true

- name: enable shared git directory in /etc/exports
  lineinfile:
    path: /etc/fstab
    regexp: "^localhost:{{ cgit_git_dir }}"
    line: "localhost:{{ cgit_git_dir }} /var/www/{{ cgit_git_dir_chroot }} nfs rw,nodev,nosuid,soft,intr 0 0"

- name: start and enable share directory
  service:
    name: "{{ item }}"
    state: restarted
    enabled: true
  loop:
    - "portmap"
    - "nfsd"

- name: start and enable mountd
  shell: |
    rcctl enable mountd
    pkill -9 mountd
    rcctl start mountd

- name: ensure nfs volume is mounted
  shell: mount -A
  register: result
  failed_when: result.rc != 0 and "Device busy" is not in result.stderr

- name: start and enable slowcgi service
  service:
    name: slowcgi
    state: restarted
    enabled: true
remember that computers suck.