Как установить Visual Studio Code Cloud IDE на Rocky Linux 8
На этой странице
- Предпосылки
- Шаг 1. Настройка брандмауэра
- Шаг 2. Установите код-сервер
- Шаг 3. Настройка сервера кодов
- Шаг 4. Установите SSL
- Шаг 5. Установите и настройте Nginx
- Шаг 6. Используйте код-сервер
- Заключение
Visual Studio Code стала одной из самых популярных IDE для написания кода. Он имеет встроенную поддержку Git и Docker, отладчик кода, автодополнение кода, возможность работы с удаленными файлами и поддерживает различные плагины.
Поскольку все перемещается в облако, доступ к выбранной вами среде IDE из любого места идеально подходит для современной разработки. Cloud IDE обеспечивает совместную работу разработчиков в режиме реального времени, что повышает производительность. coder-server — это приложение, которое позволяет запускать Visual Studio Code с удаленного сервера и делает его доступным через любой браузер.
В этом учебном пособии вы узнаете, как установить Visual Studio Code IDE с помощью приложения code-server на вашем сервере Rocky Linux 8. Вы также предоставите его через общедоступный домен вместе с поддержкой SSL.
Предпосылки
-
A server running Rocky Linux with at least 2 GB of RAM and 2 CPU cores.
-
A non-root user with sudo privileges.
-
A domain registered and pointed to the server.
-
Nginx installed on your server.
-
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. Доступные расширения не являются официальными расширениями, а предлагаются из неофициального репозитория кодовых серверов. Вы можете обратиться к их официальной документации, если хотите установить официальное расширение. Это потребует некоторых усилий. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.