
クラウドサービスは長く緊密に私たちの生活に入ってきました。今では、クラウドサービスなしでデジタル空間に現代的な存在を想像することは不可能です。クラウドサービスは、生活を大幅に簡素化し、小規模企業の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プロンプトを使用してファイルを編集してみましょう。

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

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

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

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

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

