aboutsummaryrefslogtreecommitdiffstats
path: root/roles/mediagoblin/tasks/mediagoblin.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/mediagoblin/tasks/mediagoblin.yml')
-rw-r--r--roles/mediagoblin/tasks/mediagoblin.yml98
1 files changed, 98 insertions, 0 deletions
diff --git a/roles/mediagoblin/tasks/mediagoblin.yml b/roles/mediagoblin/tasks/mediagoblin.yml
new file mode 100644
index 0000000..b7df031
--- /dev/null
+++ b/roles/mediagoblin/tasks/mediagoblin.yml
@@ -0,0 +1,98 @@
+- name: Install mediagoblin dependencies
+ apt: name={{item}} state=installed
+ with_items:
+ - python3-dev
+ - python3-lxml
+ - python3-pil
+ - python3-virtualenv
+ - python3-babel
+ - virtualenv
+ - automake
+ - npm # XXX: really? UGH
+ - nodejs-legacy
+ 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 mediagoblin base directory
+ file: name={{ mediagoblin_basedir }}
+ state=directory
+ owner={{ mediagoblin_user }}
+
+- name: Create user data directory
+ file: name={{ mediagoblin_basedir }}/data
+ state=directory
+ mode=0750
+ owner={{ mediagoblin_user }}
+
+- name: Checkout git
+ git: repo={{ mediagoblin_git_uri }}
+ dest={{ mediagoblin_basedir }}/src
+ version={{ mediagoblin_git_ref }}
+ recursive=yes
+ accept_hostkey=yes
+ sudo: yes
+ sudo_user: "{{ mediagoblin_user }}"
+
+- name: Create mediagoblin user_dev directory
+ file: name={{ mediagoblin_basedir }}/src/user_dev
+ state=directory
+ owner={{ 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 in virtualenv
+ easy_install:
+ name=flup
+ virtualenv="{{ mediagoblin_basedir }}"/src
+ 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 mediagoblin config
+ template: src=mediagoblin_local.ini.j2
+ dest=/srv/mediagoblin/src/mediagoblin_local.ini
+
+- name: Copy mediagoblin paste config
+ template: src=paste_local.ini.j2
+ dest=/srv/mediagoblin/src/paste_local.ini
+
+- name: Copy generic mediagoblin nginx site configuration
+ template: src=etc_nginx_sites-available_mediagoblin.j2
+ dest=/etc/nginx/sites-available/mediagoblin
+
+# XXX: TODO: how to create a systemd unit?
+
+- 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?
+