Ricerca nel sito web

Come installare Visual Studio Code Cloud IDE su Rocky Linux 8


Su questa pagina

  1. Prerequisiti
  2. Passaggio 1: configurazione del firewall
  3. Passaggio 2 - Installa il server del codice
  4. Passaggio 3 - Configura il server del codice
  5. Passaggio 4 - Installa SSL
  6. Passaggio 5 - Installa e configura Nginx
  7. Passaggio 6 - Usa il server del codice
  8. Conclusione

Visual Studio Code è diventato uno degli IDE più popolari per la codifica. Ha integrato il supporto Git e Docker, un debugger del codice, il completamento automatico del codice, la capacità di lavorare con file remoti e supporta vari plugin.

Con tutto il passaggio al cloud, avere accesso all'IDE di tua scelta da qualsiasi luogo è perfetto per lo sviluppo moderno. Cloud IDE consente la collaborazione in tempo reale tra gli sviluppatori, migliorando così la produttività. coder-server è un'applicazione che permette di eseguire Visual Studio Code da un server remoto e lo rende accessibile tramite qualsiasi browser.

Questo tutorial ti insegnerà come installare Visual Studio Code IDE utilizzando l'applicazione code-server sul tuo server Rocky Linux 8. Lo esporrai anche tramite un dominio pubblico insieme al supporto SSL.

Prerequisiti

  1. A server running Rocky Linux with at least 2 GB of RAM and 2 CPU cores.

  2. A non-root user with sudo privileges.

  3. A domain registered and pointed to the server.

  4. Nginx installed on your server.

  5. Ensure everything is updated.

    $ sudo dnf update
    

Passaggio 1: configurare il firewall

Il primo passo è configurare il firewall. Rocky Linux viene fornito con il firewall Firewalld.

Controlla se il firewall è in esecuzione.

$ sudo firewall-cmd --state

Il seguente output dimostra che il firewall è in esecuzione.

running

Controlla gli attuali servizi/porte consentiti.

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

Dovrebbe mostrare il seguente output.

dhcpv6-client mdns ssh

Apri la porta 8080 per il server del codice.

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

Consenti porte HTTP e HTTPS.

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

Ricontrolla lo stato del firewall.

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

Dovresti vedere un output simile.

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:

Ricarica il firewall per abilitare le modifiche.

$ sudo systemctl reload firewalld

Passaggio 2: installare il server del codice

code-server viene fornito con uno script di installazione in grado di rilevare la versione di Linux e installare il binario appropriato per il tuo server. Puoi testare lo script di installazione per verificare se funzionerà o meno sul tuo server.

Eseguire il seguente comando per eseguire un'esecuzione a secco dell'installazione.

$ 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 $USER
Or, if you don't want/need a background service you can run:
  code-server

Eseguire l'installazione dopo il corretto funzionamento a secco.

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

Lo script di installazione potrebbe richiedere la tua password sudo.

Abilita il servizio del server del codice.

$ sudo systemctl enable $USER

Se desideri aggiornare la tua istanza di code-server, ripeti il processo di installazione. code-server conserverà i tuoi file e le tue impostazioni.

Passaggio 3: configurare il server del codice

code-server memorizza il suo file di configurazione in ~/.config/code-server/config.yaml. Aprilo per la modifica.

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

Di seguito sono riportate le impostazioni predefinite impostate durante l'installazione.

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

Il file di configurazione predefinito consente il seguente comportamento:

  • Ascolta sulla porta IP di loopback 8080
  • Abilita l'autorizzazione della password con una password generata casualmente
  • Non utilizza TLS

È possibile modificare la password modificandone il valore nel file.

Se desideri archiviare una versione con hash della password, devi prima installare npm. Una volta installato, eseguire il seguente comando per impostare la password con hash.

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

Otterrai il valore hash sul tuo terminale. Copialo e incollalo nel file di configurazione.

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

Assicurati di racchiudere la password con hash tra virgolette. Se vuoi disabilitare la telemetria, aggiungi la riga seguente nel file.

disable-telemetry: false

Ci sono altre opzioni che puoi definire nel file. Per controllare tutte le altre opzioni che puoi aggiungere, usa il seguente comando per elencare tutti i flag.

$ code-server --help

Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta terminato.

Passaggio 4: installa SSL

Per installare un certificato SSL utilizzando Lets Encrypt, dobbiamo scaricare lo strumento Certbot. Ma prima, dobbiamo installare il repository EPEL.

Eseguire i seguenti comandi per installare Certbot.

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

Genera il certificato SSL.

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

Il comando precedente scaricherà un certificato nella directory /etc/letsencrypt/live/code-server.example.com sul tuo server. Assicurati di sostituire [email  con il tuo vero indirizzo email.

Genera un certificato di gruppo Diffie-Hellman.

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

Crea una directory webroot di verifica per il rinnovo automatico di Lets Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Crea un Cron Job per rinnovare l'SSL. Verrà eseguito ogni giorno per controllare il certificato e rinnovarlo se necessario. Per questo, per prima cosa, crea il file /etc/cron.daily/certbot-renew e aprilo per modificarlo.

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

Incolla il seguente codice.

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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Modificare le autorizzazioni sul file dell'attività per renderlo eseguibile.

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

Passaggio 5: installa e configura Nginx

Crea e apri il file /etc/yum.repos.d/nginx.repo per creare il repository Nginx ufficiale.

[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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Installa il server Nginx.

$ sudo dnf install nginx

Abilita il servizio Nginx.

$ sudo systemctl enable nginx

Crea un file di configurazione per code-server nella directory /etc/nginx/conf.d.

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

Incolla il seguente codice al suo interno.

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;
	   }
}

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Convalida il file di configurazione.

$ sudo nginx -t

Se ricevi il seguente errore, dovrai modificare il file /etc/nginx/nginx.conf per aggiungere/regolare la dimensione della variabile server_names_hash_bucket_size.

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

Apri il file /etc/nginx/nginx.conf per la modifica.

$ sudo nano /etc/nginx/nginx.conf

Aggiungere la riga seguente prima della riga include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Salva il file premendo Ctrl + X e inserendo Y quando richiesto. Convalida di nuovo Nginx.

Avvia il server Nginx.

$ sudo systemctl start nginx

Passaggio 6: utilizzare il server del codice

Avvia il dominio https://code-server.example.com nel tuo browser e inserisci la password per autenticare l'installazione del server del codice. Immettere la password dal file di configurazione.

code-server chiederà le impostazioni di VS Code la prima volta che lo avvii.

Scegli una combinazione di colori, scorri le sezioni rimanenti e fai clic su Contrassegna come completato al termine.

Conclusione

Ora hai un'istanza di Visual Studio Code installata sul tuo server Rocky Linux. Ci sono alcuni avvertimenti con questo rispetto al codice VS ufficiale. Le estensioni disponibili non sono le estensioni ufficiali ma offerte dal repository non ufficiale dei server di codice. Puoi consultare i loro documenti ufficiali se desideri installare l'estensione ufficiale. Ci vorrà un certo sforzo. Se hai domande, pubblicale nei commenti qui sotto.