You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
3.1 KiB
YAML

---
- block:
- name: Install the gdebi tool
apt: pkg=gdebi-core state=latest update_cache=yes cache_valid_time=1800
- name: Install the apparmor utilities
apt: pkg=apparmor-utils state=present update_cache=yes cache_valid_time=1800
- name: Download the rstudio server deb package
# get_url: url={{ rstudio_download_url }} dest=/srv/{{ rstudio_file }}
shell: cd /srv ; wget {{ rstudio_download_url }}
args:
creates: /srv/{{ rstudio_file }}
register: rstudio_download
- name: Install the rstudio server package
command: gdebi -n -q /srv/{{ rstudio_file }}
when: rstudio_download is changed
- name: Change the apparmor behaviour to complain, otherwise it cannot read the nslcd socket
shell: RETVAL='' ; if [ -x /usr/sbin/apparmor_status ] ; then APPARMOR_STATE=$( /usr/sbin/apparmor_status ) ; RETVAL=$? ; if [ $RETVAL -eq 0 ] ; then aa-complain /usr/lib/rstudio-server/bin/rserver ; fi ; fi
when: rstudio_enabled
- name: Install bc, needed by the script that kills abusive jobs
apt: pkg=bc state=present update_cache=yes cache_valid_time=3600
when: rstudio_install_kill_script
tags: [ 'rstudio', 'rstudio_server', 'rstudio_kill_rogues' ]
- name: Install a script that kills the abusive job processes
copy: src=kill-rogue-jobs dest=/usr/local/bin/kill-rogue-jobs owner=root group=root mode=0755
when: rstudio_install_kill_script
tags: [ 'rstudio', 'rstudio_server', 'rstudio_kill_rogues' ]
- name: Install a cron job that kills the abusive jobs
cron: name="Kill rogue jobs" job="/usr/local/bin/kill-rogue-jobs" user=root minute="{{ rstudio_kill_script_frequency }}"
when: rstudio_install_kill_script
tags: [ 'rstudio', 'rstudio_server', 'rstudio_kill_rogues' ]
- name: Install the rstudio server configuration
template: src={{ item }}.j2 dest=/etc/rstudio/{{ item }} owner=root group=root mode=0644
with_items:
- rsession.conf
- rserver.conf
notify: Restart Rstudio Server
tags: [ 'rstudio', 'rstudio_server', 'rstudio_server_conf' ]
- name: Ensure that rstudio server is enabled and running
service: name=rstudio-server state=started enabled=yes
when: rstudio_enabled
- name: Ensure that rstudio server is disabled and stopped
service: name=rstudio-server state=stopped enabled=no
when: not rstudio_enabled
when: rstudio_install_server
tags: [ 'rstudio', 'rstudio_server' ]
- block:
- name: Ensure that rstudio server is disabled and stopped
service: name=rstudio-server state=stopped enabled=no
- name: Remove the rstudio-server and gdebi packages
apt: pkg={{ item }} state=absent
with_items:
- gdebi
- rstudio-server
- name: Remove the script that kills the abusive job processes
file: dest=/usr/local/bin/kill-rogue-jobs state=absent
- name: Remove the cron job that kills the abusive jobs
cron: name="Kill rogue jobs" job="/usr/local/bin/kill-rogue-jobs" user=root minute="{{ rstudio_kill_script_frequency }}" state=absent
when: not rstudio_install_server
tags: [ 'rstudio', 'rstudio_server' ]