Thứ sáu, 24/01/2020 | 00:00 GMT+7

Cách thiết lập Nền tảng Eclipse Theia Cloud IDE trên CentOS 7

Với các công cụ dành cho nhà phát triển chuyển sang cloud , việc áp dụng các nền tảng IDE (Môi trường phát triển tích hợp) của cloud đang ngày càng phát triển. Cloud IDE có thể truy cập được từ mọi loại thiết bị hiện đại thông qua trình duyệt web và chúng mang lại nhiều lợi thế cho các tình huống cộng tác thời gian thực. Làm việc trong IDE cloud cung cấp môi trường phát triển và thử nghiệm thống nhất cho bạn và group của bạn, đồng thời giảm thiểu sự không tương thích của nền tảng. Có thể truy cập thông qua trình duyệt web, IDE cloud có sẵn từ mọi loại thiết bị hiện đại.

Eclipse Theia là một IDE cloud có thể mở rộng chạy trên server từ xa và có thể truy cập được từ trình duyệt web. Về mặt trực quan, nó được thiết kế để trông và hoạt động tương tự như Microsoft Visual Studio Code , nghĩa là nó hỗ trợ nhiều ngôn ngữ lập trình, có bố cục linh hoạt và có một terminal tích hợp. Điều tách biệt Eclipse Theia với phần mềm IDE cloud khác là khả năng mở rộng của nó; nó có thể được sửa đổi bằng cách sử dụng các tiện ích mở rộng tùy chỉnh, cho phép bạn tạo IDE cloud phù hợp với nhu cầu của bạn .

Trong hướng dẫn này, bạn sẽ triển khai Eclipse Theia tới server CentOS 7 của bạn bằng Docker Compose, một công cụ điều phối containers . Bạn sẽ hiển thị nó tại domain của bạn bằng cách sử dụng nginx-proxy , một hệ thống tự động dành cho Docker giúp đơn giản hóa quá trình cấu hình Nginx để phục vụ như một Reverse Proxy cho containers . Bạn cũng sẽ bảo mật nó bằng chứng chỉ Let's Encrypt TLS miễn phí mà bạn sẽ cung cấp bằng cách sử dụng tiện ích bổ sung chuyên biệt của nó. Cuối cùng, bạn sẽ có Eclipse Theia chạy trên server CentOS 7 của bạn có thông qua HTTPS và yêu cầu user đăng nhập.

Yêu cầu

Bước 1 - Triển khai nginx-proxy với Let's Encrypt

Trong phần này, bạn sẽ triển khai nginx-proxytiện ích bổ sung Let's Encrypt của nó bằng cách sử dụng Docker Compose. Điều này sẽ cho phép cấp phép và gia hạn certificate TLS tự động, để khi bạn triển khai Eclipse Theia, nó sẽ có thể truy cập được tại domain của bạn thông qua HTTPS.

Theo mục đích của hướng dẫn này, bạn sẽ lưu trữ tất cả các file trong ~/eclipse-theia .Tạo folder bằng cách chạy lệnh sau:

  • mkdir ~/eclipse-theia

Điều hướng đến nó:

  • cd ~/eclipse-theia

Bạn sẽ lưu trữ cấu hình Docker Compose cho nginx-proxy trong một file có tên nginx-proxy-compose.yaml . Tạo nó bằng editor của bạn:

  • vi nginx-proxy-compose.yaml

Thêm các dòng sau:

~ / eclipse-theia / nginx-proxy-compos.yaml
version: '2'  services:   nginx-proxy:     restart: always     image: jwilder/nginx-proxy     ports:       - "80:80"       - "443:443"     volumes:       - "/etc/nginx/htpasswd:/etc/nginx/htpasswd"       - "/etc/nginx/vhost.d"       - "/usr/share/nginx/html"       - "/var/run/docker.sock:/tmp/docker.sock:ro"       - "/etc/nginx/certs"    letsencrypt-nginx-proxy-companion:     restart: always     image: jrcs/letsencrypt-nginx-proxy-companion     volumes:       - "/var/run/docker.sock:/var/run/docker.sock:ro"     volumes_from:       - "nginx-proxy" 

Ở đây, bạn đang xác định hai dịch vụ mà Docker Compose sẽ chạy, nginx-proxy và đồng hành Let's Encrypt của nó. Đối với proxy, bạn chỉ định jwilder/nginx-proxy làm hình ảnh, ánh xạ các cổng HTTP và HTTPS và xác định các dung lượng sẽ có thể truy cập được trong thời gian chạy.

Tập là các folder trên server của bạn mà dịch vụ đã xác định sẽ có toàn quyền truy cập, mà sau này bạn sẽ sử dụng để cài đặt xác thực user . Để đạt được điều đó, bạn sẽ sử dụng tập đầu tiên từ danh sách, tập bản đồ này ánh xạ folder /etc/nginx/htpasswd local đến cùng một file trong containers . Trong folder đó, nginx-proxy dự kiến sẽ tìm thấy một file có tên chính xác như domain đích, chứa thông tin đăng nhập để xác thực user ở định dạng htpasswd ( username:hashed_password ).

Đối với tiện ích bổ sung, bạn đặt tên cho Docker image và cho phép truy cập vào socket của Docker bằng cách xác định âm lượng. Sau đó, bạn chỉ định rằng tiện ích bổ sung sẽ kế thừa quyền truy cập vào các ổ đĩa được xác định cho nginx-proxy . Cả hai dịch vụ đều được đặt restart thành always , lệnh này ra lệnh cho Docker khởi động lại các containers trong trường hợp gặp sự cố hoặc khởi động lại hệ thống.

Lưu và đóng file .

Triển khai cấu hình bằng lệnh:

  • docker-compose -f nginx-proxy-compose.yaml up -d

Tại đây, bạn chuyển tên file nginx-proxy-compose.yaml vào tham số -f của lệnh docker-compose , chỉ định file sẽ chạy. Sau đó, bạn chuyển động từ up hướng dẫn nó chạy các container . Cờ -d chế độ tách rời, nghĩa là Docker Compose sẽ chạy các containers trong nền.

Kết quả cuối cùng sẽ như thế này:

Output
Creating network "eclipse-theia_default" with the default driver Pulling nginx-proxy (jwilder/nginx-proxy:)... latest: Pulling from jwilder/nginx-proxy 8d691f585fa8: Pull complete 5b07f4e08ad0: Pull complete ... Digest: sha256:dfc0666b9747a6fc851f5fb9b03e65e957b34c95d9635b4b5d1d6b01104bde28 Status: Downloaded newer image for jwilder/nginx-proxy:latest Pulling letsencrypt-nginx-proxy-companion (jrcs/letsencrypt-nginx-proxy-companion:)... latest: Pulling from jrcs/letsencrypt-nginx-proxy-companion 89d9c30c1d48: Pull complete 668840c175f8: Pull complete ... Digest: sha256:a8d369d84079a923fdec8ce2f85827917a15022b0dae9be73e6a0db03be95b5a Status: Downloaded newer image for jrcs/letsencrypt-nginx-proxy-companion:latest Creating eclipse-theia_nginx-proxy_1 ... done Creating eclipse-theia_letsencrypt-nginx-proxy-companion_1 ... done

Bạn đã triển khai nginx-proxy và đồng hành Let's Encrypt của nó bằng Docker Compose. Đến đây bạn sẽ chuyển sang cài đặt Eclipse Theia tại domain của bạn và bảo mật nó.

Bước 2 - Triển khai Dockerized Eclipse Theia

Trong phần này, bạn sẽ tạo một file chứa bất kỳ kết hợp đăng nhập được phép nào mà user cần nhập. Sau đó, bạn sẽ triển khai Eclipse Theia vào server của bạn bằng Docker Compose và hiển thị nó tại domain bảo mật của bạn bằng cách sử dụng nginx-proxy .

Như đã giải thích ở bước trước, nginx-proxy mong đợi các tổ hợp đăng nhập nằm trong một file được đặt tên theo domain hiển thị, ở định dạng htpasswd và được lưu trữ trong folder /etc/nginx/htpasswd trong containers . Thư mục local ánh xạ tới folder ảo không cần phải giống như đã được chỉ định trong cấu hình nginx-proxy .

Để tạo kết hợp đăng nhập, trước tiên bạn cần cài đặt htpasswd bằng cách chạy lệnh sau:

  • sudo yum install httpd-tools

Gói httpd-tools chứa tiện ích htpasswd .

Tạo folder /etc/nginx/htpasswd :

  • sudo mkdir -p /etc/nginx/htpasswd

Tạo một file sẽ lưu trữ thông tin đăng nhập cho domain của bạn:

  • sudo touch /etc/nginx/htpasswd/theia.your-domain

Hãy nhớ thay thế theia.your-domain bằng theia.your-domain Eclipse Theia của bạn.

Để thêm kết hợp tên user và password , hãy chạy lệnh sau:

  • sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username

Thay thế username bằng tên user bạn muốn thêm. Bạn cần nhập password hai lần. Sau khi cung cấp, htpasswd sẽ thêm tên user và cặp password băm vào cuối file . Bạn có thể lặp lại lệnh này cho bao nhiêu lần đăng nhập tùy thích.

Bây giờ, bạn sẽ tạo cấu hình để triển khai Eclipse Theia. Bạn sẽ lưu trữ nó trong một file có tên eclipse-theia-compose.yaml . Tạo nó bằng editor của bạn:

  • vi eclipse-theia-compose.yaml

Thêm các dòng sau:

~ / eclipse-theia / eclipse-theia-compos.yaml
version: '2.2'  services:   eclipse-theia:     restart: always     image: theiaide/theia:next     init: true     environment:       - VIRTUAL_HOST=theia.your-domain       - LETSENCRYPT_HOST=theia.your-domain 

Trong cấu hình này, bạn xác định một dịch vụ duy nhất được gọi là eclipse-theia với restart được đặt thành alwaystheiaide/theia:next là containers images . Bạn cũng đặt init thành true để hướng dẫn Docker sử dụng init làm trình quản lý tiến trình chính khi chạy Eclipse Theia bên trong containers .

Sau đó, bạn chỉ định hai biến môi trường trong phần environment : VIRTUAL_HOSTLETSENCRYPT_HOST . Cái trước được chuyển cho nginx-proxy và cho nó biết containers sẽ được hiển thị ở domain nào, trong khi cái sau được sử dụng bởi tiện ích bổ sung Let's Encrypt của nó và chỉ định domain nào sẽ certificate request TLS. Trừ khi bạn chỉ định ký tự đại diện làm giá trị cho VIRTUAL_HOST , chúng phải giống nhau.

Hãy nhớ thay theia.your-domain bằng theia.your-domain bạn muốn, sau đó lưu file .

Bây giờ triển khai Eclipse Theia bằng lệnh:

  • docker-compose -f eclipse-theia-compose.yaml up -d

Kết quả cuối cùng sẽ giống như sau:

Output
... Pulling eclipse-theia (theiaide/theia:next)... next: Pulling from theiaide/theia 63bc94deeb28: Pull complete 100db3e2539d: Pull complete ... Digest: sha256:c36dff04e250f1ac52d13f6d6e15ab3e9b8cad9ad68aba0208312e0788ecb109 Status: Downloaded newer image for theiaide/theia:next Creating eclipse-theia_eclipse-theia_1 ... done

Sau đó, trong trình duyệt của bạn, chuyển đến domain bạn đang sử dụng cho Eclipse Theia. Trình duyệt của bạn sẽ hiển thị cho bạn dấu nhắc yêu cầu bạn đăng nhập. Sau khi cung cấp thông tin đăng nhập chính xác, bạn sẽ vào Eclipse Theia và ngay lập tức thấy GUI editor của nó. Trong thanh địa chỉ của bạn, bạn sẽ thấy một ổ khóa cho biết rằng kết nối được bảo mật. Nếu bạn không thấy điều này ngay lập tức, hãy đợi vài phút để certificate TLS cung cấp, sau đó reload trang.

Eclipse Theia GUI

Đến đây bạn có thể truy cập IDE cloud một cách an toàn, bạn sẽ bắt đầu sử dụng editor trong bước tiếp theo.

Bước 3 - Sử dụng giao diện Eclipse Theia

Trong phần này, bạn sẽ khám phá một số tính năng của giao diện Eclipse Theia.

Ở phía bên trái của IDE, có một hàng dọc gồm bốn nút mở các tính năng thường được sử dụng nhất trong console bên.

Eclipse Theia GUI -  Control panel

Thanh này có thể tùy chỉnh để bạn có thể di chuyển các chế độ xem này sang một thứ tự khác hoặc xóa chúng khỏi thanh. Theo mặc định, chế độ xem đầu tiên sẽ mở bảng Explorer cung cấp chuyển dạng cây về cấu trúc của dự án. Bạn có thể quản lý các folder và file của bạn tại đây — tạo, xóa, di chuyển và đổi tên chúng nếu cần.

Sau khi tạo file mới thông qua menu Tệp , bạn sẽ thấy file trống mở trong tab mới. Sau khi lưu, bạn có thể xem tên file trong console bên Explorer. Để tạo folder , nhấp chuột phải vào thanh bên Explorer và nhấp vào Thư mục mới . Bạn có thể mở rộng một folder bằng cách nhấp vào tên của nó cũng như kéo và thả các file và folder lên các phần trên của hệ thống phân cấp để di chuyển chúng đến một vị trí mới.

Eclipse Theia GUI - Thư mục mới

Hai tùy chọn tiếp theo cung cấp quyền truy cập vào chức năng tìm kiếm và thay thế. Sau đó, phần tiếp theo cung cấp một cái nhìn về các hệ thống điều khiển nguồn mà bạn có thể đang sử dụng, chẳng hạn như Git .

Chế độ xem cuối cùng là tùy chọn trình gỡ lỗi, cung cấp tất cả các hành động phổ biến để gỡ lỗi trong console . Bạn có thể lưu cấu hình gỡ lỗi trong file launch.json .

Chế độ xem trình gỡ lỗi khi mở launcher.json

Phần trung tâm của GUI là editor , bạn có thể phân tách phần này theo các tab để chỉnh sửa mã của bạn . Bạn có thể thay đổi chế độ xem chỉnh sửa của bạn thành hệ thống lưới hoặc các file song song. Giống như tất cả các IDE hiện đại, Eclipse Theia hỗ trợ tô sáng cú pháp cho mã của bạn.

Chế độ xem lưới  editor

Bạn có thể truy cập vào một terminal bằng lệnh CTRL+SHIFT+` hoặc bằng cách nhấp vào Thiết bị terminal ở menu phía trên và chọn Thiết bị terminal mới . Thiết bị terminal sẽ mở trong console phía dưới và folder làm việc của nó sẽ được đặt thành không gian làm việc của dự án, nơi chứa các file và folder được hiển thị trong console bên Explorer.

Mở nhà ga

Bạn đã khám phá tổng quan cấp cao về giao diện Eclipse Theia và xem xét một số tính năng thường được sử dụng nhất.

Kết luận

Đến đây bạn đã có Eclipse Theia, một IDE cloud đa năng, được cài đặt trên server CentOS 7 của bạn bằng Docker Compose và nginx-proxy . Bạn đã bảo mật nó bằng certificate Let's Encrypt TLS miễn phí và cài đặt version để yêu cầu thông tin đăng nhập từ user . Bạn có thể làm việc trên mã nguồn và tài liệu của bạn với nó riêng lẻ hoặc cộng tác với group của bạn. Bạn cũng có thể thử xây dựng version Eclipse Theia của riêng mình nếu bạn cần thêm chức năng. Để biết thêm thông tin về cách thực hiện điều đó, hãy truy cập tài liệu Theia .


Tags:

Các tin liên quan

Cách thiết lập ứng dụng Node.js để sản xuất trên CentOS 7
2019-10-28
Cách cấu hình Cụm Galera với MariaDB trên server CentOS 7
2019-07-10
Cách sử dụng Chế độ độc lập của Certbot để lấy chứng chỉ SSL của Let's Encrypt trên CentOS 7
2019-05-31
Cách cài đặt và cấu hình Zabbix để giám sát an toàn server từ xa trên CentOS 7
2019-05-29
Cách tạo một cụm Kubernetes bằng Kubeadm trên CentOS 7
2019-04-24
Cách cài đặt và sử dụng ClickHouse trên CentOS 7
2019-04-15
Cách thu thập số liệu cơ sở hạ tầng với Metricbeat trên CentOS 7
2019-03-27
Các bước được đề xuất bổ sung cho server CentOS 7 mới
2019-02-20
Cách cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên CentOS 7
2018-12-10
Cách lấy chứng chỉ SSL Wildcard của Let's Encrypt bằng cách sử dụng CloudFlare Validation trên CentOS 7
2018-08-16