aboutsummaryrefslogtreecommitdiffstats
path: root/roles/mediagoblin/tasks/main.yml
blob: a5ce4768fddae5fb9f81fe0880e822ea00e74404 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 name: Install mediagoblin dependencies
  apt: name={{item}} state=installed
  with_items:
    - python3-dev
    - python3-lxml
    - python3-imaging 
    - python3-virtualenv
    - automake
  tags:
    - dependencies

- name: Create mediagoblin user
  user: name={{ mediagoblin_user }}
        createhome=yes
        groups=www-data
        system=yes
        home=/var/lib/mediagoblin
        state=present

- name: Create deploy directory
  file: name={{ mediagoblin_basedir }}
        state=directory
        owner={{ mediagoblin_user }}

- name: Create user data directory
  file: name={{ mediagoblin_basedir }}/data
        state=directory
        chmod=0750
        owner={{ mediagoblin_user }}

- name: Checkout git
  git: repo={{ mediagoblin_git_uri }}
       dest={{ mediagoblin_basedir }}/src
       tag={{ mediagoblin_git_tag }}
       accept_hostkey=yes
  sudo: yes
  sudo_user: "{{ mediagoblin_user }}"

- name: git submodules
  shell: 
    git submodule update --init --recursive 
    chdir="{{mediagoblin_basedir}}/src"
    creates="{{mediagoblin_basedir}}/src/.gitmodules"
  sudo: yes
  sudo_user: "{{ mediagoblin_user }}"


- name: Create virtualenv
  shell: 
    virtualenv --python=python3 --system-site-packages . 
    chdir="{{mediagoblin_basedir}}/src"
    creates="{{mediagoblin_basedir}}/src/bin/python"
  sudo: yes
  sudo_user: "{{ mediagoblin_user }}"

- name: Build mediagoblin
  shell:
    ./bootstrap.sh && ./configure –with-python3 && make
    chdir="{{mediagoblin_basedir }}/src"
    creates="{{mediagoblin_basedir}}/src/mediagoblin.egg-info"
  sudo: yes
  sudo_user: "{{ mediagoblin_user }}"

- name: Install flup
  easy_install: 
    name=flup
    virtualenv="{{ mediagoblin_basedir }}"
  sudo: yes
  sudo_user: "{{ mediagoblin_user }}"

- name: Update DB
  shell:
    ./bin/gmg dbupdate
    chdir="{{ mediagoblin_basedir }}/src"
  sudo: yes
  sudo_user: "{{ mediagoblin_user }}"

- name: Copy generic mediagoblin nginx site configuration
  template: src=etc_nginx_sites-available_mediagoblin.j2
            dest=/etc/nginx/sites-available/mediagoblin

- name: Create nginx symlink for default
  file: state=link
        src=/etc/nginx/sites-available/mediagoblin
        dest=/etc/nginx/sites-enabled/mediagoblin
  notify: nginx restart     # reload not sufficient?