Поиск по сайту:

Как установить Visual Studio Code Cloud IDE на Rocky Linux 8


На этой странице

  1. Предпосылки
  2. Шаг 1. Настройка брандмауэра
  3. Шаг 2. Установите код-сервер
  4. Шаг 3. Настройка сервера кодов
  5. Шаг 4. Установите SSL
  6. Шаг 5. Установите и настройте Nginx
  7. Шаг 6. Используйте код-сервер
  8. Заключение

Visual Studio Code стала одной из самых популярных IDE для написания кода. Он имеет встроенную поддержку Git и Docker, отладчик кода, автодополнение кода, возможность работы с удаленными файлами и поддерживает различные плагины.

Поскольку все перемещается в облако, доступ к выбранной вами среде IDE из любого места идеально подходит для современной разработки. Cloud IDE обеспечивает совместную работу разработчиков в режиме реального времени, что повышает производительность. coder-server — это приложение, которое позволяет запускать Visual Studio Code с удаленного сервера и делает его доступным через любой браузер.

В этом учебном пособии вы узнаете, как установить Visual Studio Code IDE с помощью приложения code-server на вашем сервере Rocky Linux 8. Вы также предоставите его через общедоступный домен вместе с поддержкой SSL.

Предпосылки

  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
    

Шаг 1. Настройте брандмауэр

Первым шагом является настройка брандмауэра. Rocky Linux поставляется с брандмауэром Firewalld.

Проверьте, работает ли брандмауэр.

$ sudo firewall-cmd --state

Следующий вывод доказывает, что брандмауэр работает.

running

Проверьте текущие разрешенные службы/порты.

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

Он должен показать следующий вывод.

dhcpv6-client mdns ssh

Откройте порт 8080 для кода-сервера.

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

Разрешить порты HTTP и HTTPS.

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

Перепроверьте состояние брандмауэра.

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

Вы должны увидеть аналогичный вывод.

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:

Перезагрузите брандмауэр, чтобы изменения вступили в силу.

$ sudo systemctl reload firewalld

Шаг 2 - Установите код-сервер

code-server поставляется со сценарием установки, который может определить версию Linux и установить соответствующий двоичный файл для вашего сервера. Вы можете протестировать сценарий установки, чтобы проверить, будет ли он работать на вашем сервере.

Выполните следующую команду, чтобы выполнить пробный запуск установки.

$ 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

Запустите установку после успешного пробного прогона.

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

Сценарий установки может запросить ваш пароль sudo.

Включите службу кодового сервера.

$ sudo systemctl enable $USER

Если вы хотите обновить свой экземпляр code-server, повторите процесс установки. code-server сохранит ваши файлы и настройки.

Шаг 3 - Настройте код-сервер

code-server хранит свой файл конфигурации в ~/.config/code-server/config.yaml. Откройте его для редактирования.

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

Вот настройки по умолчанию, установленные во время установки.

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

Файл конфигурации по умолчанию обеспечивает следующее поведение:

  • Прослушивание петлевого IP-порта 8080.
  • Включает авторизацию с использованием случайно сгенерированного пароля.
  • Не использует TLS

Вы можете изменить пароль, изменив его значение в файле.

Если вы хотите сохранить хешированную версию пароля, вы должны сначала установить npm. После установки выполните следующую команду, чтобы установить хешированный пароль.

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

Вы получите хешированное значение на своем терминале. Скопируйте его и вставьте в файл конфигурации.

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

Не забудьте заключить хешированный пароль в кавычки. Если вы хотите отключить телеметрию, добавьте в файл следующую строку.

disable-telemetry: false

Есть и другие параметры, которые вы можете определить в файле. Чтобы проверить все другие параметры, которые вы можете добавить, используйте следующую команду, чтобы вывести список всех флагов.

$ code-server --help

Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса после завершения.

Шаг 4 — Установите SSL

Чтобы установить SSL-сертификат с помощью Lets Encrypt, нам нужно загрузить инструмент Certbot. Но сначала нам нужно установить репозиторий EPEL.

Выполните следующие команды, чтобы установить Certbot.

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

Создайте SSL-сертификат.

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

Приведенная выше команда загрузит сертификат в каталог /etc/letsencrypt/live/code-server.example.com на вашем сервере. Обязательно замените [email  своим фактическим адресом электронной почты.

Создайте групповой сертификат Диффи-Хеллмана.

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

Создайте корневой каталог вызова для автоматического обновления Lets Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Создайте задание Cron для обновления SSL. Он будет запускаться каждый день для проверки сертификата и его обновления при необходимости. Для этого сначала создайте файл /etc/cron.daily/certbot-renew и откройте его для редактирования.

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

Вставьте следующий код.

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

Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

Измените права доступа к файлу задачи, чтобы сделать его исполняемым.

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

Шаг 5 — Установите и настройте Nginx

Создайте и откройте файл /etc/yum.repos.d/nginx.repo для создания официального репозитория 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

Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

Установите сервер Nginx.

$ sudo dnf install nginx

Включите службу Nginx.

$ sudo systemctl enable nginx

Создайте файл конфигурации для code-server в каталоге /etc/nginx/conf.d.

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

Вставьте в него следующий код.

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

Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

Проверьте файл конфигурации.

$ sudo nginx -t

Если вы получите следующую ошибку, вам нужно будет отредактировать файл /etc/nginx/nginx.conf, чтобы добавить/настроить размер переменной server_names_hash_bucket_size.

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

Откройте файл /etc/nginx/nginx.conf для редактирования.

$ sudo nano /etc/nginx/nginx.conf

Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса. Проверьте Nginx еще раз.

Запустите сервер Nginx.

$ sudo systemctl start nginx

Шаг 6 - Используйте код-сервер

Запустите домен https://code-server.example.com в своем браузере и введите пароль для аутентификации вашей установки code-server. Введите пароль из файла конфигурации.

code-server запросит настройки VS Code при первом запуске.

Выберите цветовую схему, просмотрите оставшиеся разделы и нажмите «Отметить как готовое», когда закончите.

Заключение

Теперь у вас есть экземпляр Visual Studio Code, установленный на вашем сервере Rocky Linux. Есть определенные оговорки по сравнению с официальным кодом VS. Доступные расширения не являются официальными расширениями, а предлагаются из неофициального репозитория кодовых серверов. Вы можете обратиться к их официальной документации, если хотите установить официальное расширение. Это потребует некоторых усилий. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.