クラウドへのVisualStudioコードのインストール



クラウドサービスは長く緊密に私たちの生活に入ってきました。今では、クラウドサービスなしでデジタル空間に現代的な存在を想像することは不可能です。クラウドサービスは、生活を大幅に簡素化し、小規模企業のITに参入するためのしきい値を下げ、独自のインフラストラクチャを購入して構成する必要をなくします。スマートフォンやコンピューターはクラウドに接続されており、ますます多くのデータやサービスがクラウドに転送されています。



IDEもクラウドへの移行を免れていません。約10年前はギミックで、Cloud IDEは開発を始めたばかりでしたが、IT業界の最大のプレーヤーが注目を集めました。 



AmazonはCloud9サービスを購入して開発してます





GoogleはCloudShellEditorをクラウドプラットフォームに組み込んでいます





マイクロソフトは最初に独自のクラウドベースの開発プラットフォームを作成しましたが、GitHubが現在準備しているソリューションを支持してそれを放棄しました- コードスペース





それらはすべて、「どこでも、どのプラットフォームでも開発ツールを使用できる」という1つのアイデアによって統合されています。 IDEのパフォーマンスはもはやパーソナルコンピュータに依存していません。強力で高価なデスクトップやさらに高価なラップトップを購入する必要はありません。クラウドがコンピューティングを行います。また、ユーザーは自分のシステムに依存せず、ローカル構成を必要としない開発環境を受け取ります。マウスとキーボードを接続すれば、タブレットでもクラウドIDEで作業できます。そして、それは平均的なコンソールを介したviではなく、本格的なGUIアプリケーションになります。 



また、CodePenのような単純なサンドボックスから、Red Hatが主導権を握っているCodenvyのようなより深刻なものまで 、あまり一般的ではないクラウドベースの開発環境もあります



しかし、これらすべてのソリューションには、さらにいくつかの共通点があります。それらは独自のサーバーで実行されます。一部の機能には支払いが必要です。彼らのインターフェースは慣れるのに時間がかかります。レンタルしたVPSに使い慣れたCloudIDEをインストールすることで、これらの問題を解決できます。支払いは、必要な容量を備えたサーバーをレンタルする場合にのみ行われ、機能に制限はありません。また、インターフェイスはMicrosoft Visual Studioコードに他ならないため、多くの開発者に馴染みのあるものになり ますこの機会は、コードサーバープロジェクトのおかげで最近現れました この記事では、RuVDS仮想サーバーへのVCコードのインストールを段階的に説明します。



サーバーのインストールの準備



まず、テストVPSを選択して実行する必要があります デモンストレーションでは、pingを減らすためにモスクワのRUCLOUD仮想サーバーを選択しました。 





ping -c4 194.87.103.124
PING 194.87.103.124 (194.87.103.124) 56(84) bytes of data.
64 bytes from 194.87.103.124: icmp_seq=1 ttl=55 time=4.98 ms
64 bytes from 194.87.103.124: icmp_seq=2 ttl=55 time=5.27 ms
64 bytes from 194.87.103.124: icmp_seq=3 ttl=55 time=14.3 ms
64 bytes from 194.87.103.124: icmp_seq=4 ttl=55 time=5.30 ms

--- 194.87.103.124 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 4.984/7.487/14.384/3.984 ms

      
      





SSDディスクシステムで最も手頃なオプション:





これは、Cloud IDEの機能をテストし、多くの計算能力を必要としない最も単純なプロジェクトで作業するのに十分です。 rootユーザー



新しいサーバーに接続した後 、初期構成を実行してみましょう。まず、私たちは、新しいユーザーが作成されます 。<ユーザー名>とに追加のsudoグループ  [無効ルートユーザ許可 このため、SSH経由での、には、/ etc / ssh / sshd_configファイル、 変更のPermitRootLoginをyesとのパラメータを ていません



adduser <user-name>

adduser <user-name> sudo











 nano /etc/ssh/sshd_config

      
      





説明を簡単にするために、キーを生成せずにパスワードエントリを残しておきましょう。次に、「sudo:ホストを解決できませんruvds-xx12x:名前またはサービスが不明です」という警告が表示されないように、仮想マシンの名前を追加してホストファイルを修正します



echo 127.0.0.1 $HOSTNAME >> /etc/hosts

      
      





その後、サーバーから切断し、新しいユーザーとして接続



し、ファイアウォールのルールを設定して構成を  完了します。



sudo ufw allow OpenSSH
sudo ufw enable

      
      





sudo ufwstatusコマンドで設定を確認しましょう



sudo ufw status

      
      





プログラムの出力は次のようになります。



Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

      
      





システムを更新して、nginxWebサーバーをインストールしましょう



sudo apt update
sudo apt upgrade
sudo apt install nginx

      
      





その後、いくつかの新しいプロファイルがファイアウォールに追加されます。これは、コマンド sudo ufw applistで表示できます。



sudo ufw app list

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

      
      





Webサーバーの設定を確認するには、両方のタイプの接続が必要です。それらをアクティブにします。 



sudo ufw allow 'Nginx Full'

      
      





すべてが正しく含まれていることを確認しましょう:



sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

      
      





Webサーバーが実行されていることを確認します。



systemctl status nginx

      
      





出力は次のように なります。サーバーがサイトページを提供しているかどうかをブラウザーで確認します( <your_server_ip>はVPSのアドレスです)。  次のテキストが表示されます。



nginx.service - A high performance web server and a reverse proxy server

   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)

   Active: active (running) since Fri 2020-04-20 16:08:19 UTC; 3 days ago

     Docs: man:nginx(8)

 Main PID: 2369 (nginx)

    Tasks: 2 (limit: 1153)

   Memory: 3.5M

   CGroup: /system.slice/nginx.service

           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

           └─2380 nginx: worker process











http://<your_server_ip>













初期設定が完了しましたので、開発環境のインストールを始めましょう。



まず、すべてのIDEデータが保存されるディレクトリを作成してそこに移動しましょう。 



mkdir ~/code-server
cd ~/code-server

      
      





次に、プロジェクトリリースの最新バージョンをダウンロードして解凍します。リリース番号は、https//github.com/cdr/code-server/releasesにあります現時点ではv3.8.0であり、そのファイルの名前は code-server-3.8.0-linux-amd64.tar.gzです。



wget https://github.com/cdr/code-server/releases/download/v3.8.0/code-server-3.8.0-linux-amd64.tar.gz
tar -xzvf code-server-3.8.0-linux-amd64.tar.gz

      
      





結果のディレクトリは/ usr / lib / code-serverにコピーする必要があり ます



sudo cp -r code-server-3.8.0-linux-amd64 /usr/lib/code-server

      
      





次に、IDE実行可能ファイルへのsim-linkを作成し、ユーザーデータが保存されるディレクトリを作成します。



sudo ln -s /usr/lib/code-server/bin/code-server /usr/bin/code-server
sudo mkdir /var/lib/code-server

      
      





クラウド開発環境サービスをセットアップする時が来ました。エディタでファイルcode-server.serviceを作成し、 そこに次の行を追加します。 必ずパスワード<your_password>を設定してください 。これはIDEへのログインに使用されます。アカウントのパスワードと一致しないものを選択することをお勧めします。  ほとんどすべての準備が整いました。サービスを開始できます。 



sudo nano /lib/systemd/system/code-server.service



[Unit]

Description=code-server

After=nginx.service



[Service]

Type=simple

Environment=PASSWORD=<your_password>

ExecStart=/usr/bin/code-server --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --auth password

Restart=always



[Install]

WantedBy=multi-user.target















sudo systemctl start code-server

      
      





彼女の仕事の状況を確認しましょう。 



sudo systemctl status code-server

      
      





すべてが正しく行われた場合、 アクティブになります 。アクティブ(実行中)障害が発生した場合にサービスが自動的に再起動するには、次のコマンドを実行します。 



code-server.service - code-server

     Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled)

     Active: active (running) since Mon 2020-12-21 07:28:53 MSK; 4s ago

   Main PID: 32357 (node)

      Tasks: 22 (limit: 1094)

     Memory: 55.6M

     CGroup: /system.slice/code-server.service

             ├─32357 /usr/lib/code-server/lib/node /usr/lib/code-server --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --aut>

             └─32390 /usr/lib/code-server/lib/node /usr/lib/code-server --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --aut>











sudo systemctl enable code-server

      
      





ドメインをサーバーにバインドし、Let's Encryptからの証明書をインストールしてドメインを保護し、Nginxがそれと連携するように構成する必要があります。無料のドメインはhttps://www.freenom.comで簡単に入手 でき、環境を稼働させるのに十分です。バインドする方法については、RuVDSヘルプセクションで読むことができます



エディタで構成ファイルを作成します。 



sudo nano /etc/nginx/sites-available/code-server.conf

      
      





そして、そこに次の行を追加します。 の代わりに <VC-code.domain>あなたがIDEに登録されていること、あなたのドメインを置換する必要があります。構成を機能させるには、/ etc / nginx / sites-enabledディレクトリに構成へのシンボリックリンクを作成する必要があります



server {

    listen 80;

    listen [::]:80;



    server_name <vc-code.domain>;



    location / {

      proxy_pass http://localhost:8080/;

      proxy_set_header Upgrade $http_upgrade;

      proxy_set_header Connection upgrade;

      proxy_set_header Accept-Encoding gzip;

    }

}











sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf

      
      





念のため、設定の有効性を確認しましょう。 



sudo nginx -t

      
      





すべてが正常である場合、コンソールに次のテキストが表示されます。



nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

      
      





過去数年間、サイトは保護され、HTTPSプロトコルで動作する必要があると教えられてきました。SSLなしで動作するサイトは奇妙に見え、管理者がコンソールに数行書くのが面倒であるかのように見えます。したがって、有名な会社Let's Encryptから証明書を取得し 、クラウドIDEを使用できるようになります。 



最も一般的なセットアップボットの1つをインストールしましょう: 



sudo apt install certbot python3-certbot-nginx

      
      





そして、その助けを借りて、私たちは、ドメインの証明書を登録し、インストールします <VC-code.domain>



sudoのcertbot --nginx -d <VC-code.domain>



設定プロセスの間に、我々はいくつかの質問に回答する必要があります:あなたのメールアドレスを入力してください電子メールを送信し、利用規約に同意し、電子フロンティアと電子メールアドレスを共有(または共有しない)し、HTTPSへの強制リダイレクトを設定します(推奨)。フォローアップとして、Gitをインストールできます。



sudo apt install git

      
      





すべての準備ができました!



ブラウザでWebサイトを開くと、VCコードから、構成ファイルで指定されたパスワードを入力するための招待状が届きます。





環境が実行されているので、おなじみのVCコードインターフェイスが表示されます。





あなたは仕事に取り掛かることができます。テストとして、標準のNginxプロンプトを使用してファイルを編集してみましょう。





nginxVCコードに置き換えて、IPアドレスへの直接呼び出しに応答してサーバーが発行するページを更新ましょう





すべてが機能しています!



これは完全に機能し、使い慣れたVCコードであり、バージョン制御システムで動作します。





プラグインをそれに接続できます:





IDEは、リモートサーバーで実行され、ブラウザーで実行されることを除いて、デスクトップアプリケーションと同じです。





クラウドで頑張ってください!:)










All Articles