Skip to content

Commit 05db2e2

Browse files
committed
reconfigure ood code-server app
1 parent 58727d8 commit 05db2e2

File tree

4 files changed

+124
-43
lines changed

4 files changed

+124
-43
lines changed

ansible/roles/openondemand/defaults/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,5 @@ openondemand_osc_ood_defaults:
103103
oidc_uri: "{{ openondemand_auth_defaults.oidc.oidc_uri if (openondemand_auth | lower) == 'oidc' else none }}"
104104
ood_auth_openidc: "{{ openondemand_auth_defaults.oidc.ood_auth_openidc if (openondemand_auth | lower) == 'oidc' else none }}"
105105
httpd_auth: "{{ openondemand_auth_defaults[openondemand_auth | lower].httpd_auth }}"
106+
107+
code_server_version: 4.102.2
Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,40 @@
1-
- name: Download code-server binary
2-
get_url:
3-
url: "https://github.com/coder/code-server/releases/download/v4.22.1/code-server-4.22.1-linux-amd64.tar.gz"
4-
dest: "/tmp/code-server.tar.gz"
1+
- name: Download Code Server RPM
2+
ansible.builtin.get_url:
3+
url: "https://github.com/coder/code-server/releases/download/v{{ code_server_version }}/code-server-{{ code_server_version }}-amd64.rpm"
4+
dest: /tmp/code-server.rpm
55
mode: '0644'
66

7-
- name: Extract code-server binary
8-
unarchive:
9-
src: "/tmp/code-server.tar.gz"
10-
dest: "/opt/"
11-
remote_src: yes
7+
- name: Install Code Server
8+
ansible.builtin.dnf:
9+
name: /tmp/code-server.rpm
10+
state: present
11+
disable_gpg_check: yes
1212

13-
- name: Symlink code-server to /usr/local/bin
14-
file:
15-
src: "/opt/code-server-4.22.1-linux-amd64/bin/code-server"
16-
dest: "/usr/local/bin/code-server"
17-
state: link
18-
force: yes
13+
- name: Create module directory for Code Server
14+
ansible.builtin.file:
15+
path: /opt/ohpc/pub/modulefiles/code-server
16+
state: directory
17+
mode: '0755'
18+
recurse: yes
19+
20+
- name: Create modulefile for code-server
21+
copy:
22+
dest: "/opt/ohpc/pub/modulefiles/code-server/{{ code_server_version }}"
23+
mode: "0644"
24+
content: |
25+
#%Module1.0#####################################################################
26+
27+
proc ModulesHelp { } {
28+
puts stderr "This module loads code-server {{ code_server_version }}."
29+
puts stderr "VS Code in the browser. Visit http://127.0.0.1:8080"
30+
}
31+
32+
module-whatis "Name: code-server"
33+
module-whatis "Version: {{ code_server_version }}"
34+
module-whatis "Category: IDE"
35+
module-whatis "Description: Run VS Code in your browser with code-server"
36+
module-whatis "URL: https://github.com/coder/code-server"
37+
38+
set root /usr/bin/code-server
39+
40+
prepend-path PATH $root

ansible/roles/openondemand/tasks/rstudio_compute.yml

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,50 @@
22
# See https://osc.github.io/ood-documentation/latest/tutorials/tutorials-interactive-apps/add-rstudio.html
33
# - Will already have lmod
44

5-
- name: Install EPEL and dependencies
6-
ansible.builtin.yum:
7-
name:
8-
- epel-release
9-
- R
5+
- name: Install R from EPEL
6+
ansible.builtin.dnf:
7+
name: R
108
state: present
119

1210
- name: Download RStudio Server RPM
1311
ansible.builtin.get_url:
14-
url: https://download2.rstudio.org/server/centos8/x86_64/rstudio-server-rhel-2023.12.1-402-x86_64.rpm
12+
url: "https://download2.rstudio.org/server/rhel{{ ansible_distribution_major_version }}/x86_64/rstudio-server-rhel-2025.05.1-513-x86_64.rpm"
1513
dest: /tmp/rstudio-server.rpm
1614
mode: '0644'
1715

1816
- name: Install RStudio Server
19-
ansible.builtin.yum:
17+
ansible.builtin.dnf:
2018
name: /tmp/rstudio-server.rpm
2119
state: present
20+
disable_gpg_check: yes
2221

23-
- name: Ensure rstudio-server service is disabled and stopped
24-
ansible.builtin.service:
25-
name: rstudio-server
26-
enabled: false
27-
state: stopped
22+
- name: Create module directory for RStudio Server
23+
ansible.builtin.file:
24+
path: /opt/ohpc/pub/modulefiles/rstudio-server
25+
state: directory
26+
mode: '0755'
27+
recurse: yes
28+
29+
- name: Write modulefile for RStudio Server
30+
ansible.builtin.copy:
31+
dest: /opt/ohpc/pub/modulefiles/rstudio-server/2025.05.1
32+
mode: '0644'
33+
content: |
34+
#%Module1.0#####################################################################
35+
36+
proc ModulesHelp { } {
37+
puts stderr " "
38+
puts stderr "This module loads RStudio Server 2025.05.1"
39+
puts stderr "\nRStudio Server provides a browser-based interface to R.\n"
40+
}
41+
42+
module-whatis "Name: rstudio-server"
43+
module-whatis "Version: 2025.05.1"
44+
module-whatis "Category: IDE"
45+
module-whatis "Description: RStudio Server - IDE for R"
46+
module-whatis "URL: https://www.rstudio.com"
47+
48+
set version 2025.05.1
49+
set root /usr/lib/rstudio-server
50+
51+
prepend-path PATH $root/bin

environments/common/inventory/group_vars/all/openondemand.yml

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,10 @@ openondemand_apps_rstudio_default:
194194
label: RStudio module
195195
required: true
196196
cachable: true
197-
help: Choose your RStudio module - 2023.09 is only for el8 partitions
197+
help: Choose your RStudio module
198198
widget: select
199199
options:
200-
- ["RStudio-Server/2022.07.2+576-foss-2022a-Java-11-R-4.2.1", "RStudio-Server/2022.07.2+576-foss-2022a-Java-11-R-4.2.1"]
201-
- ["RStudio-Server/1.4.1717-foss-2021a-Java-11-R-4.1.0", "RStudio-Server/1.4.1717-foss-2021a-Java-11-R-4.1.0"]
202-
- ["RStudio-Server/2023.09.1+494-foss-2023a-Java-11-R-4.3.2", "RStudio-Server/2023.09.1+494-foss-2023a-Java-11-R-4.3.2"]
200+
- ["rstudio-server/2025.05.1","rstudio-server/2025.05.1"]
203201
extra_modules_script:
204202
label: Extra modules script
205203
help: If you'd like to load additional modules alongside RStudio-Server, put the 'module load ...' commands into a text file (one 'module load...' per line) and specify its path here
@@ -297,21 +295,51 @@ openondemand_apps_matlab_default:
297295
openondemand_apps_matlab: "{{ {'matlab':openondemand_apps_matlab_default} if openondemand_matlab_partition | default(none) else {} }}"
298296

299297
openondemand_apps_codeserver_default:
300-
title: Codeserver
301-
description: Request a Codeserver
298+
title: Code Server
299+
description: Request a Code Server
302300
cluster: slurm
303301
form:
304302
- bc_queue
305303
- bc_num_hours
306-
- num_cores
307-
- node
308-
attributes: # TODO
309-
num_cores:
310-
label: Number of cores FOO
311-
value: 1
304+
- codeserver_module
305+
- cores
306+
- ram
307+
attributes:
308+
codeserver_module:
309+
label: Code Server module
310+
required: true
311+
cachable: true
312+
help: Choose your Code Server module
313+
widget: select
314+
options:
315+
- ["code-server/4.102.2","code-server/4.102.2"]
312316
bc_queue:
313317
value: "{{ openondemand_codeserver_partition | default(none) }}"
314-
node: ""
318+
cores:
319+
label: Number of CPU cores
320+
help: How many CPU cores to reserve for your session. NB Ensure this is within the maximum allowed by your chosen partition.
321+
widget: number_field
322+
min: 1
323+
max: 48
324+
step: 1
325+
value: 1
326+
cachable: true
327+
ram:
328+
widget: number_field
329+
label: RAM in GB
330+
help: How much RAM to reserve for your session. NB Ensure this is within the maximum allowed by your chosen partition
331+
min: 4
332+
max: 700
333+
step: 1
334+
value: 4
335+
cachable: true
336+
bc_num_hours:
337+
widget: number_field
338+
help: Maximum runtime in hours for your session. NB Ensure this is within the maximum allowed by your chosen partition
339+
min: 1
340+
max: 240
341+
step: 1
342+
value: 30
315343
submit: |
316344
---
317345
batch_connect:
@@ -321,9 +349,14 @@ openondemand_apps_codeserver_default:
321349
script:
322350
job_name: "ood-codeserver"
323351
native:
324-
- <%= "--nodes=1" %>
325-
- <%= "--ntasks=#{num_cores}" %>
326-
- <%= "--nodelist=#{node}" %>
352+
- "--partition"
353+
- "<%= bc_queue %>"
354+
- "--ntasks"
355+
- "1"
356+
- "--mem"
357+
- "<%= ram.blank? ? 4 : ram.to_i %>G"
358+
- "--cpus-per-task"
359+
- "<%= cores.blank? ? 1 : cores.to_i %>"
327360
openondemand_apps_codeserver: "{{ {'codeserver':openondemand_apps_codeserver_default} if openondemand_codeserver_partition | default(none) else {} }}"
328361

329362
# osc.ood:ood_apps - see https://github.com/OSC/ood-ansible#ood_apps

0 commit comments

Comments
 (0)