Merge branch 'airavata-3230'
diff --git a/dev-tools/ansible/django.yml b/dev-tools/ansible/django.yml
index cdd26ae..0d90bfa 100644
--- a/dev-tools/ansible/django.yml
+++ b/dev-tools/ansible/django.yml
@@ -35,6 +35,8 @@
when: inventory_hostname == groups['django_' + ansible_hostname][0]
- role: letsencrypt
when: inventory_hostname == groups['django_' + ansible_hostname][0]
+ - role: django_setup
+ when: inventory_hostname == groups['django_' + ansible_hostname][0]
# Create a django virtual host
- hosts: django
diff --git a/dev-tools/ansible/roles/django/tasks/main.yml b/dev-tools/ansible/roles/django/tasks/main.yml
index 5c8f6d2..37ded3e 100644
--- a/dev-tools/ansible/roles/django/tasks/main.yml
+++ b/dev-tools/ansible/roles/django/tasks/main.yml
@@ -77,25 +77,35 @@
# when: not docker_result.can_talk_to_docker
# run_once: true
-- name: build Docker image for building the JS
+- name: build airavata-django-portal Docker image
local_action:
module: docker_image
- path: "{{ airavata_django_portal_tempdir.path }}/scripts/docker-build/"
- name: airavata-django-build
+ path: "{{ airavata_django_portal_tempdir.path }}/"
+ name: airavata-django-portal
force: true
# source: build
run_once: true
-- name: build Django JS code in Docker container
+- name: create Docker container so we can copy built files out of it
local_action:
module: docker_container
- name: ansible-airavata-django-build
- image: airavata-django-build
- cleanup: true
- detach: false
+ # Don't need to start the container, just create it
+ state: present
+ name: ansible-airavata-django-portal
+ image: airavata-django-portal
volumes:
- - "{{ airavata_django_portal_tempdir.path }}:/code"
- - "{{ lookup('env', 'HOME') }}/.npm:/root/.npm"
+ - "{{ airavata_django_portal_tempdir.path }}/django_airavata/settings_local.py.sample:/code/django_airavata/settings_local.py"
+ run_once: true
+
+- name: copy built JS files from Docker container
+ local_action: command docker cp ansible-airavata-django-portal:/code/. {{ airavata_django_portal_tempdir.path }}
+ run_once: true
+
+- name: remove Docker container
+ local_action:
+ module: docker_container
+ state: absent
+ name: ansible-airavata-django-portal
run_once: true
- name: rsync build Django code to {{ airavata_django_checkout }}
@@ -240,3 +250,10 @@
become: yes
notify:
- restart uwsgi
+
+- name: remove Django portal clone temp directory
+ local_action:
+ module: file
+ state: absent
+ path: "{{ airavata_django_portal_tempdir.path }}"
+ run_once: true
diff --git a/dev-tools/ansible/roles/django_setup/tasks/main.yml b/dev-tools/ansible/roles/django_setup/tasks/main.yml
index 297e568..a689d29 100644
--- a/dev-tools/ansible/roles/django_setup/tasks/main.yml
+++ b/dev-tools/ansible/roles/django_setup/tasks/main.yml
@@ -49,5 +49,15 @@
# sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
# sudo yum install nodejs
-# TODO: disable package-lock.json creation for the pga user
-# npm config set package-lock false
+# Install yarn
+- name: Add yarn yum repository on CentOS
+ get_url:
+ url: "https://dl.yarnpkg.com/rpm/yarn.repo"
+ dest: "/etc/yum.repos.d/yarn.repo"
+ become: yes
+ when: ansible_distribution == 'CentOS'
+
+- name: Install yarn (RedHat)
+ yum: name=yarn state=latest update_cache=yes
+ become: yes
+ when: ansible_os_family == "RedHat"