--- - 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' ]