Cách cài đặt Visual Studio Code Cloud IDE trên Rocky Linux 8

theanh

Administrator
Nhân viên
Visual Studio Code đã trở thành một trong những IDE phổ biến nhất để lập trình. Nó tích hợp hỗ trợ Git và Docker, trình gỡ lỗi mã, tự động hoàn thành mã, khả năng làm việc với các tệp từ xa và hỗ trợ nhiều plugin khác nhau.

Với mọi thứ đang chuyển sang đám mây, việc truy cập vào IDE theo lựa chọn của bạn từ bất kỳ đâu là hoàn hảo cho quá trình phát triển hiện đại. Cloud IDE cho phép cộng tác theo thời gian thực giữa các nhà phát triển, do đó nâng cao năng suất.coder-server là một ứng dụng cho phép bạn chạy Visual Studio Code từ máy chủ từ xa và có thể truy cập thông qua bất kỳ trình duyệt nào.

Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt Visual Studio Code IDE bằng ứng dụng code-server trên máy chủ Rocky Linux 8 của bạn. Bạn cũng sẽ công khai nó thông qua một miền công cộng cùng với hỗ trợ SSL.

Điều kiện tiên quyết​


  1. Một máy chủ chạy Rocky Linux với ít nhất 2 GB RAM và 2 lõi CPU.

  2. Một người dùng không phải root có quyền sudo.

  3. Một miền đã đăng ký và trỏ đến máy chủ.

  4. Nginx đã cài đặt trên máy chủ của bạn.

  5. Đảm bảo mọi thứ được cập nhật.
    Mã:
    $ sudo dnf update

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Rocky Linux đi kèm với tường lửa Firewalld.

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo firewall-cmd --state
Kết quả đầu ra sau đây chứng minh rằng tường lửa đang chạy.
Mã:
đang chạy
Kiểm tra các dịch vụ/cổng hiện được phép.
Mã:
$ sudo firewall-cmd --permanent --list-services
Kết quả đầu ra sau đây sẽ hiển thị.
Mã:
dhcpv6-client mdns ssh
Mở cổng 8080 cho code-server.
Mã:
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Cho phép các cổng HTTP và HTTPS.
Mã:
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Kiểm tra lại trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --permanent --list-all
Bạn sẽ thấy kết quả tương tự.
Mã:
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:
Tải lại tường lửa để kích hoạt các thay đổi.
Mã:
$ sudo systemctl reload firewalld

Bước 2 - Cài đặt code-server​

code-server đi kèm với một tập lệnh cài đặt có thể phát hiện phiên bản Linux và cài đặt tệp nhị phân phù hợp cho máy chủ của bạn. Bạn có thể kiểm tra tập lệnh cài đặt để xem nó có hoạt động trên máy chủ của bạn hay không.

Chạy lệnh sau để chạy thử cài đặt.
Mã:
$ curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-runRocky Linux 8.4 (Green Obsidian)Cài đặt v3.12.0 của gói amd64 rpm từ 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.rpmgói rpm đã được cài đặt.Để systemd khởi động code-server ngay bây giờ và khởi động lại khi khởi động: sudo systemctl enable --now code-server@$USERHoặc, nếu bạn không muốn/cần dịch vụ nền, bạn có thể chạy: code-server
Chạy thiết lập sau khi chạy thử thành công.
Mã:
$ curl -fsSL https://code-server.dev/install.sh | sh
Tập lệnh cài đặt có thể yêu cầu mật khẩu sudo của bạn.

Bật dịch vụ code-server.
Mã:
$ sudo systemctl enable code-server@$USER
Nếu bạn muốn cập nhật phiên bản code-server của mình, hãy lặp lại quy trình cài đặt. code-server sẽ giữ nguyên các tệp và cài đặt của bạn.

Bước 3 - Cấu hình code-server​

code-server lưu trữ tệp cấu hình của nó tại ~/.config/code-server/config.yaml. Mở nó để chỉnh sửa.
Mã:
$ sudo nano ~/.config/code-server/config.yaml
Sau đây là các thiết lập mặc định được thiết lập trong quá trình cài đặt.
Mã:
bind-addr: 127.0.0.1:8080auth: passwordpassword: a4768b3439e5e93b5d62489bcert: false
Tệp cấu hình mặc định cho phép hành vi sau:
  • Lắng nghe trên cổng IP vòng lặp 8080
  • Cho phép xác thực mật khẩu bằng mật khẩu được tạo ngẫu nhiên
  • Không sử dụng TLS
Bạn có thể thay đổi mật khẩu bằng cách thay đổi giá trị của mật khẩu trong tệp.

Nếu bạn muốn lưu trữ phiên bản băm của mật khẩu, trước tiên bạn phải cài đặt npm. Sau khi cài đặt, hãy chạy lệnh sau để đặt mật khẩu băm.
Mã:
$ echo -n "thisismypassword" | npx argon2-cli -e$argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4
Bạn sẽ nhận được giá trị băm tại thiết bị đầu cuối của mình. Sao chép và dán vào tệp cấu hình.
Mã:
auth: passwordhashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"
Đảm bảo đặt mật khẩu đã băm trong dấu ngoặc kép. Nếu bạn muốn tắt Telemetry, hãy thêm dòng sau vào tệp.
Mã:
disable-telemetry: false
Có các tùy chọn khác mà bạn có thể xác định trong tệp. Để kiểm tra tất cả các tùy chọn khác mà bạn có thể thêm, hãy sử dụng lệnh sau để liệt kê tất cả các cờ.
Mã:
$ code-server --help
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Bước 4 - Cài đặt SSL​

Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần tải xuống công cụ Certbot. Nhưng trước tiên, chúng ta cần cài đặt kho lưu trữ EPEL.

Chạy các lệnh sau để cài đặt Certbot.
Mã:
$ sudo dnf install epel-release$ sudo dnf install certbot
Tạo chứng chỉ SSL.
Mã:
$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d code-server.example.com -m [emailprotected]
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/code-server.example.com trên máy chủ của bạn. Hãy đảm bảo thay thế [emailprotected] bằng email thực tế của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Tạo thư mục webroot thử thách để tự động gia hạn Let's Encrypt.
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Dán mã sau.
Mã:
#!/bin/shcertbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Thay đổi quyền trên tệp tác vụ để làm cho tệp đó có thể thực thi được.
Mã:
$ sudo chmod +x /etc/cron.daily/certbot-renew

Bước 5 - Cài đặt và Cấu hình Nginx​

Tạo và mở tệp /etc/yum.repos.d/nginx.repo để tạo kho lưu trữ Nginx chính thức.
Mã:
[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt máy chủ Nginx.
Mã:
$ sudo dnf install nginx
Kích hoạt dịch vụ Nginx.
Mã:
$ sudo systemctl enable nginx
Tạo tệp cấu hình cho code-server trong thư mục /etc/nginx/conf.d.
Mã:
$ sudo nano /etc/nginx/conf.d/code-server.conf
Dán mã sau vào nó.
Mã:
server { lắng nghe 80; lắng nghe [::]:80; tên máy chủ code-server.example.com; trả về 301 https://$host$request_uri;}server { tên máy chủ code-server.example.com; lắng nghe 443 ssl http2; lắng nghe [::]:443 ssl http2; nhật ký truy cập /var/log/nginx/code-server.access.log; nhật ký lỗi /var/log/nginx/code-server.error.log; chứng chỉ ssl /etc/letsencrypt/live/code-server.example.com/fullchain.pem; khóa chứng chỉ ssl /etc/letsencrypt/live/code-server.example.com/privkey.pem; chứng chỉ ssl đáng tin cậy /etc/letsencrypt/live/code-server.example.com/chain.pem; ssl_session_timeout 1 ngày; ssl_session_cache được chia sẻ: MozSSL: 10 phút; ssl_session_tickets tắt; 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 bật; ssl_stapling_verify bật; ssl_dhparam /etc/ssl/certs/dhparam.pem; vị trí / { proxy_pass http://localhost:8080/; proxy_set_header Máy chủ $host; proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Nâng cấp kết nối; proxy_set_header Mã hóa chấp nhận gzip; }}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác thực tệp cấu hình.
Mã:
$ sudo nginx -t
Nếu bạn gặp lỗi sau, bạn sẽ cần chỉnh sửa tệp /etc/nginx/nginx.conf để thêm/điều chỉnh kích thước của biến server_names_hash_bucket_size.
Mã:
nginx: [emerg] không thể xây dựng server_names_hash, bạn nên tăng server_names_hash_bucket_size
Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Xác thực Nginx một lần nữa.

Khởi động máy chủ Nginx.
Mã:
$ sudo systemctl start nginx

Bước 6 - Sử dụng code-server​

Khởi chạy miền https://code-server.example.com trong trình duyệt của bạn và nhập mật khẩu để xác thực cài đặt code-server của bạn. Nhập mật khẩu từ tệp cấu hình.



code-server sẽ yêu cầu Cài đặt VS Code khi bạn khởi chạy lần đầu tiên.



Chọn một bảng màu, Xem qua các phần còn lại và nhấp vào Đánh dấu xong khi hoàn tất.


Kết luận​

Bây giờ bạn đã cài đặt phiên bản Visual Studio Code trên máy chủ Rocky Linux của mình. Có một số lưu ý khi so sánh với VS Code chính thức. Các tiện ích mở rộng có sẵn không phải là tiện ích mở rộng chính thức mà được cung cấp từ kho lưu trữ không chính thức của code-server. Bạn có thể tham khảo tài liệu chính thức của họ nếu muốn cài đặt tiện ích mở rộng chính thức. Sẽ mất một chút công sức. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên