library/roles/smartgears/r_connector: Role that installs the smartgears r-connector.

library/roles/smartgears/smartgears-nginx-frontend/templates: nginx virtualhosts for the rstudio servers.
This commit is contained in:
Andrea Dell'Amico 2016-07-21 14:58:46 +02:00
parent 38e69bec93
commit bd1808560c
6 changed files with 117 additions and 0 deletions

View File

@ -0,0 +1,12 @@
---
gcube_repository: 'gcube-staging'
r_connector_install: False
r_connector_ver: 2.0.1-4.0.0-128766
r_connector_name: r-connector
r_connector_filename: '{{ r_connector_name }}-{{ r_connector_ver }}.war'
r_connector_url: 'http://maven.research-infrastructures.eu/nexus/content/repositories/{{ gcube_repository }}/org/gcube/data/analysis/{{ r_connector_name }}/{{ r_connector_ver}}/{{ r_connector_filename }}'
r_connector_war_file: '{{ r_connector_name }}.war'
r_connector_usershome: /home/
r_connector_userconfig: userconfig.csv
r_connector_adduserscript: /usr/local/bin/rusersadd
r_connector_rstudio_cookie_key: /var/lib/rstudio-server/secure-cookie-key

View File

@ -0,0 +1,29 @@
---
- block:
- name: Remove the installed R connector before upgrading
file: dest={{ item }} state=absent
with_items:
- '{{ smartgears_instance_path }}/webapps/r-connector'
- '{{ smartgears_instance_path }}/webapps/r-connector.war'
when: smartgears_upgrade or not r_connector_install
- name: Get the R connector war file
get_url: url={{ ckan_connector_url }} dest={{ smartgears_instance_path }}/webapps/{{ ckan_connector_war_file }}
- name: Unpack the R connector war file
shell: mkdir {{ smartgears_instance_path }}/webapps/r-connector ; cd {{ smartgears_instance_path }}/webapps/r-connector ; jar xf {{ smartgears_instance_path }}/webapps/{{ ckan_connector_war_file }}
args:
creates: '{{ smartgears_instance_path }}/webapps/r-connector/WEB-INF/web.xml'
- name: Obtain the permission to read the Rstudio secure cookie key
file: dest={{ r_connector_rstudio_cookie_key }} mode=640 group={{ smartgears_user }}
- name: Install the R connector web.xml template
template: src=r-web.xml.j2 dest={{ smartgears_instance_path }}/webapps/r-connector/WEB-INF/web.xml mode=0440
notify: Restart smartgears
become: True
become_user: '{{ smartgears_user }}'
when: r_connector_install
tags: [ 'smartgears', 'r_connector', 'tomcat' ]

View File

@ -0,0 +1,29 @@
<web-app>
<context-param>
<param-name>usersHome</param-name>
<param-value>{{ r_connector_usershome }}</param-value>
</context-param>
<context-param>
<param-name>filename</param-name>
<param-value>{{ r_connector_userconfig }}</param-value>
</context-param>
<context-param>
<param-name>addUserScript</param-name>
<param-value>{{ r_connector_adduserscript }}</param-value>
</context-param>
<context-param>
<param-name>storedKeyPath</param-name>
<param-value>{{ r_connector_rstudio_cookie_key }}</param-value>
</context-param>
<context-param>
<param-name>rStudioAddress</param-name>
<param-value>{{ ansible_fqdn }}</param-value>
</context-param>
<servlet>
<servlet-name>org.gcube.data.analysis.rconnector.RConnector</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>org.gcube.data.analysis.rconnector.RConnector</servlet-name>
<url-pattern>/gcube/service/*</url-pattern>
</servlet-mapping>
</web-app>

View File

@ -0,0 +1,19 @@
#!/bin/bash
USER="$1"
HDIR="{{ r_connector_usershome }}/$USER"
if [ -d $HDIR ] ; then
#echo "user dir exist"
exit 0
else
if id -u $USER >/dev/null 2>&1
then
#"echo "ldap user first login"
/bin/su - $USER
exit 0
else
#echo "user does not exist and is not ldap"
/usr/sbin/useradd -m -s /bin/false $USER
fi
fi

View File

@ -0,0 +1,27 @@
server {
listen {{ http_port }};
server_name {{ ansible_fqdn }};
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
proxy_read_timeout 600;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
proxy_set_header Host $http_host;
proxy_redirect off;
{% for instance in tomcat_m_instances %}
{% for context in instance.app_contexts %}
location /{{ context }} {
proxy_pass http://localhost:{{ item.http_port }}/{{ context }};
}
{% endfor %}
{% endfor %}
location / {
proxy_pass http://localhost:{{ rstudio_http_port }}/;
}
}

View File

@ -0,0 +1 @@
rstudio-dev.d4science.org-virtualhost.j2