Cómo instalar Visual Studio Code Cloud IDE en Rocky Linux 8

Solicitud de contrase√Īa del servidor de c√≥digos

Visual Studio Code se ha convertido en uno de los IDE más populares para la codificación. Tiene compatibilidad integrada con Git y Docker, un depurador de código, autocompletado de código, la capacidad de trabajar con archivos remotos y admite varios complementos.

Con todo moviéndose a la nube, tener acceso al IDE de su elección desde cualquier lugar es perfecto para el desarrollo moderno. Cloud IDE permite la colaboración en tiempo real entre desarrolladores, lo que mejora la productividad. code-server es una aplicación que le permite ejecutar Visual Studio Code desde un servidor remoto y lo hace accesible a través de cualquier navegador.

Este tutorial le ense√Īar√° c√≥mo instalar Visual Studio Code IDE utilizando la aplicaci√≥n de servidor de c√≥digo en su servidor Rocky Linux 8. Tambi√©n lo expondr√° a trav√©s de un dominio p√ļblico junto con soporte SSL.

requisitos previos

  1. Un servidor que ejecuta Rocky Linux con al menos 2 GB de RAM y 2 n√ļcleos de CPU.
  2. Un usuario no root con privilegios sudo.
  3. Un dominio registrado y apuntado al servidor.
  4. Nginx instalado en su servidor.
  5. Aseg√ļrate de que todo est√© actualizado.
    $ sudo dnf update
    

Paso 1: configurar el cortafuegos

El primer paso es configurar el cortafuegos. Rocky Linux viene con el cortafuegos Firewalld.

Compruebe si el cortafuegos se est√° ejecutando.

$ sudo firewall-cmd --state

El siguiente resultado demuestra que el cortafuegos se est√° ejecutando.

running

Compruebe los servicios/puertos permitidos actualmente.

$ sudo firewall-cmd --permanent --list-services

Debería mostrar el siguiente resultado.

dhcpv6-client mdns ssh

Abra el puerto 8080 para el servidor de códigos.

$ sudo firewall-cmd --permanent --add-port=8080/tcp

Permitir puertos HTTP y HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Vuelva a comprobar el estado del cortafuegos.

$ sudo firewall-cmd --permanent --list-all

Deberías ver una salida similar.

public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports: 8080/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Vuelva a cargar el firewall para habilitar los cambios.

$ sudo systemctl reload firewalld

Paso 2: instalar el servidor de códigos

code-server viene con un script de instalación que puede detectar la versión de Linux e instalar el binario apropiado para su servidor. Puede probar el script de instalación para comprobar si funcionará o no en su servidor.

Ejecute el siguiente comando para realizar una ejecución en seco de la instalación.

$ curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
Rocky Linux 8.4 (Green Obsidian)
Installing v3.12.0 of the amd64 rpm package from GitHub.

+ mkdir -p ~/.cache/code-server
+ curl -#fL -o ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete -C - https://github.com/cdr/code-server/releases/download/v3.12.0/code-server-3.12.0-amd64.rpm
+ mv ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete ~/.cache/code-server/code-server-3.12.0-amd64.rpm
+ sudo rpm -i ~/.cache/code-server/code-server-3.12.0-amd64.rpm

rpm package has been installed.

To have systemd start code-server now and restart on boot:
  sudo systemctl enable --now [email protected]$USER
Or, if you don't want/need a background service you can run:
  code-server

Ejecute la configuración después de la ejecución de prueba exitosa.

$ curl -fsSL https://code-server.dev/install.sh | sh

El script de instalaci√≥n puede solicitar su contrase√Īa de sudo.

Habilite el servicio de servidor de códigos.

$ sudo systemctl enable [email protected]$USER

Si desea actualizar su instancia de Code-Server, repita el proceso de instalación. code-server conservará sus archivos y configuraciones.

Paso 3: configurar el servidor de códigos

code-server almacena su archivo de configuraci√≥n en ~/.config/code-server/config.yaml. √Ābralo para editarlo. Publicidad

$ sudo nano ~/.config/code-server/config.yaml

Estos son los ajustes predeterminados establecidos durante la instalación.

bind-addr: 127.0.0.1:8080
auth: password
password: a4768b3439e5e93b5d62489b
cert: false

El archivo de configuración predeterminado permite el siguiente comportamiento:

  • Escuche en el puerto IP loopback 8080
  • Habilita la autorizaci√≥n de contrase√Īa con una contrase√Īa generada aleatoriamente
  • No usa TLS

Puede cambiar la contrase√Īa cambiando su valor en el archivo.

Si desea almacenar una versi√≥n cifrada de la contrase√Īa, primero debe instalar npm. Una vez instalado, ejecute el siguiente comando para establecer la contrase√Īa cifrada.

$ echo -n "thisismypassword" | npx argon2-cli -e
$argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4

Obtendrá el valor hash en su terminal. Cópielo y péguelo en el archivo de configuración.

auth: password
hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"

Aseg√ļrese de envolver la contrase√Īa cifrada con comillas. Si desea deshabilitar la telemetr√≠a, agregue la siguiente l√≠nea en el archivo.

disable-telemetry: false

Hay otras opciones que puede definir en el archivo. Para verificar todas las otras opciones que puede agregar, use el siguiente comando para enumerar todas las banderas.

$ code-server --help

Guarde el archivo presionando Control + X y entrando Y cuando se le solicite una vez terminado.

Paso 4 – Instalar SSL

Para instalar un certificado SSL usando Let’s Encrypt, necesitamos descargar la herramienta Certbot. Pero primero, necesitamos instalar el repositorio EPEL.

Ejecute los siguientes comandos para instalar Certbot.

$ sudo dnf install epel-release
$ sudo dnf install certbot

Genere el certificado SSL.

$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d code-server.example.com -m [email protected]

El comando anterior descargar√° un certificado en el directorio /etc/letsencrypt/live/code-server.example.com de su servidor. Aseg√ļrese de reemplazar [email¬†protected] con su correo electr√≥nico real.

Generar un grupo Diffie-Hellman certificado.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Cree un directorio webroot de desaf√≠o para la renovaci√≥n autom√°tica de Let’s Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Cree un trabajo cron para renovar el SSL. Se ejecutará todos los días para verificar el certificado y renovarlo si es necesario. Para eso, primero, cree el archivo /etc/cron.daily/certbot-renew y ábralo para editarlo.

$ sudo nano /etc/cron.daily/certbot-renew

Pegue el siguiente código.

#!/bin/sh
certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

Cambie los permisos en el archivo de tareas para que sea ejecutable.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Paso 5: instalar y configurar Nginx

Cree y abra el archivo /etc/yum.repos.d/nginx.repo para crear el repositorio oficial de Nginx.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

Instale el servidor Nginx.

$ sudo dnf install nginx

Habilite el servicio Nginx.

$ sudo systemctl enable nginx

Cree un archivo de configuración para el servidor de códigos en el directorio /etc/nginx/conf.d.

$ sudo nano /etc/nginx/conf.d/code-server.conf

Pegue el siguiente código en él.

server {
    	listen 80; listen [::]:80;
	    server_name code-server.example.com;
    	return 301 https://$host$request_uri;
}

server {
        server_name code-server.example.com;

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        access_log /var/log/nginx/code-server.access.log;
        error_log /var/log/nginx/code-server.error.log;

        ssl_certificate /etc/letsencrypt/live/code-server.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/code-server.example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/code-server.example.com/chain.pem;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
 
	   location / {
	       proxy_pass http://localhost:8080/;
	       proxy_set_header Host $host;
	       proxy_set_header Upgrade $http_upgrade;
	       proxy_set_header Connection upgrade;
	       proxy_set_header Accept-Encoding gzip;
	   }
}

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

Valide el archivo de configuración.

$ sudo nginx -t

Si recibe el siguiente error, deber√° editar el archivo /etc/nginx/nginx.conf para agregar/ajustar el tama√Īo de la variable server_names_hash_bucket_size.

nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size

Abra el archivo /etc/nginx/nginx.conf para editarlo.

$ sudo nano /etc/nginx/nginx.conf

Agregue la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite. Vuelva a validar Nginx.

Inicie el servidor Nginx.

$ sudo systemctl start nginx

Paso 6: use el servidor de códigos

Inicie el dominio https://code-server.example.com en su navegador e ingrese la contrase√Īa para autenticar la instalaci√≥n de su servidor de c√≥digos. Introduzca la contrase√Īa del archivo de configuraci√≥n.

Solicitud de contrase√Īa del servidor de c√≥digos

code-server le pedirá la configuración del código VS la primera vez que lo inicie.

Pantalla de configuración del servidor de código

Elija un esquema de color, vaya a las secciones restantes y haga clic en marcar como hecho cuando esté terminado.

Inicio del servidor de código

Conclusión

Ahora tiene una instancia de Visual Studio Code instalada en su servidor Rocky Linux. Hay ciertas advertencias con esto en comparación con el Código VS oficial. Las extensiones disponibles no son las extensiones oficiales sino que se ofrecen desde el repositorio no oficial de Code-Server. Puede consultar sus documentos oficiales si desea instalar la extensión oficial. Tomará un poco de esfuerzo. Si tiene alguna pregunta, publíquela en los comentarios a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *