2024年5月2日木曜日

GCEに「NGINX Unit」を入れる ver.2024

前回の記事は、こちら

https://yamayoshi.blogspot.com/2020/04/gcenginx-unitweb.html

セキュリティが強化されたようで、config.json に user を追加しています。

一旦動いてしまえば、Unit 最高。

 [Flask]

$ cd
$ mkdir project1 && cd project1
$ python3 -m venv venv
$ source venv/bin/activate
V pip install Flask
V nano main.py
--
from flask import Flask
application = Flask(__name__)
@application.route("/")
def index():
 return "Hello Project1!"
if __name__ == "__main__":
 application.run()
--
V deactivate

[Unit] Ubunt22.04
$ cd
$ sudo -i
# curl --output /usr/share/keyrings/nginx-keyring.gpg https://unit.nginx.org/keys/nginx-keyring.gpg
# nano /etc/apt/sources.list.d/unit.list
--
deb [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ jammy unit
deb-src [signed-by=/usr/share/keyrings/nginx-keyring.gpg] https://packages.nginx.org/unit/ubuntu/ jammy unit
--
# apt update
# apt install unit unit-dev unit-python3.10
# systemctl restart unit

# nano config.json
--
{
 "listeners": {
  "*:80": {
   "pass": "applications/flask_app"
  }
 },
 "applications": {
  "flask_app": {
   "type": "python",
   "user": "<user>",
   "path": "/home/<user>/project1",
   "home": "/home/<user>/project1/venv",
   "module": "main"
  }
 }
}
--
# curl -X PUT --data-binary @config.json --unix-socket /var/run/control.unit.sock http://localhost/config
# service unit restart

以上です。

2024年4月27日土曜日

GCE に VSCode で接続する

 多分、この手順が一番簡単。

参考

https://medium.com/@liu.peng.uppsala/safe-way-to-connect-your-vscode-to-compute-engine-from-google-cloud-platform-using-ssh-4e64c70fbb45

1. GCE インスタンス作成

2. VSCode Remote Development 拡張機能追加

3. ローカルPC からコマンド入力

$ gcloud compute ssh {インスタンス名} --zone={ゾーン名} --tunnel-through-iap --dry-run

4. 出力結果を VSCodeに貼り付け

以上です。

2024年2月23日金曜日

Chromebook GAE開発環境 (ver.2024)

前回とは、びみょうに変わってる感じ。

公式サイト

Python3 仮想環境

$ sudo apt update && sudo apt upgrade
$ sudo apt install python3-venv python3-pip
$ cd my-app
$ python3 -m venv env
$ source env/bin/activate
V cd my-project
V pip3 install -r requirements.txt

Google SDK

※本家の手順そのまま
https://cloud.google.com/sdk/docs/install-sdk?hl=ja#chromebook

$ sudo apt install google-cloud-cli-app-engine-python
$ sudo apt install google-cloud-cli-datastore-emulator 

2023年5月5日金曜日

ChatGPT すげぇ〜。

 早速、リファクタリング、やってみました。

とにかく、すげぇ〜。

これまで、(独学と言えば聞こえは良いが・・・要は適当に、) 見様見真似でコード書いてたのが、先人の知見をお借りして、どんどんと良いコードになっていく感じ。最高です。

リスト内包表記を(勝手に)提案してくれるし、変数名を(勝手に)変更してくれるし。

PEPなんちゃらと(言い訳しながら)、とにかく、的確なご指摘ありがとうごさいます。

とりあえず、こんな感じでプロンプトしてます。

「次のコードを視認性良く、リファクタリングして。〜自分のコード〜」

いや〜、良い時代です。



2023年5月2日火曜日

ChatGPT 始めました。

 Google アカウント + SMS で、サクッと開始。

今日は、多分、記念日になると思う。

2021年5月3日月曜日

WebARENA/VPSに、moshでリモート接続する。

mosh を使うと、リモート接続での作業が、とても快適になります。
切れないしレスポンスも良いので、もう、素のsshには戻れません。

mosh(モバイルシェル)とは

インストール
# apt install mosh

セキュリティグループ (VPSファイヤーウォール)
udp:60000,61000,ip4:0.0.0.0/0

リモート接続 (local -> VPS)
$ mosh --ssh="ssh -i .ssh/(鍵ファイル名).pem" ubuntu@(IPアドレス)

2021年5月1日土曜日

WebARENA/VPSで、Webサーバ構築

 格安VPSのWebARENAは、いつもインスタンスの在庫不足で、申込みが出来ませんでした。

https://arena.secure.customer.ne.jp/signup/vpsc/zone

たまたま、申込みが出来たので、Webサーバ構築の手順をメモしておきます。


申し込みページ

https://arena.secure.customer.ne.jp/signup/vpsc/zone


お客様番号とか、契約者IDとか、サービスIDとか、とても分かり辛いですが、適当に入力して申込み完了。手順は全然思い出せませんが..


インスタンスタイプ

・メモリ  1GB

・CPU   仮想1コア

・ディスク SSD 20GB


躓きどころ

・ログイン

 Ubuntuを選択した場合、初期ユーザ名は「ubuntu」です。

 「root」ではログインできません。

・セキュリティグループ

 要は、ファイヤーウォールです。

 デフォルトでは、全てのポートを閉じているので、設定必須です。


SSHで接続できれば、後は、いつものUbuntuです。


参考

http://yamayoshi.blogspot.com/2020/04/gcenginx-unitweb.html


$ sudo apt update

$ sudo apt upgrade

$ sudo apt install python3-venv python-pip


仮想環境 & Flaskインストール

$ cd

$ mkdir project1 && cd project1

$ python3 -m venv venv

$ source ./venv/bin/activate

V pip install Flask


アプリケーション

V nano main.py

--

from flask import Flask

application = Flask(__name__)

@application.route("/")

def index():

  return "Hello Project1!"

if __name__ == "__main__":

  application.run()

--


動作確認

V python3 main.py

 →コンソールをもう1つ開いて動作確認

  $ curl http://127.0.0.1:5000/


V deactivate


Nginx  (Webサーバ)

http://unit.nginx.org/installation/#ubuntu-1804


(インストール準備)

キー取得

$ sudo -i   *rootで作業

# curl -sL https://nginx.org/keys/nginx_signing.key | apt-key add -


リポジトリ追加 *Ubuntu18.04 = bionic

# nano /etc/apt/sources.list.d/unit.list

--

deb https://packages.nginx.org/unit/ubuntu/ bionic unit

deb-src https://packages.nginx.org/unit/ubuntu/ bionic unit

--


インストール

# apt update

# apt install unit unit-dev unit-python3.6


コンフィグ

https://unit.nginx.org/howto/flask/


ソケットの場所を調べる

# unitd --help

 --control ADDRESS

  set address of control API socket

  default: "unix:/var/run/control.unit.sock"


現在の設定をファイルに出力

# curl --unix-socket /var/run/control.unit.sock http://localhost/config/ > config.json


Flask用の設定

# nano config.json

--

{

 "listeners": {

  "*:80": {

   "pass": "applications/flask_app"

  }

 },

 "applications": {

  "flask_app": {

   "type": "python",

   "path": "/home/ubuntu/project1/",

   "home": "/home/ubuntu/project1/venv/",

   "module": "main"

  }

 }

}

--

*説明

 listeners: ポート *80(HTTP)

 type: 言語

 path: プログラムの場所

 home: 仮想環境の場所

 module: プログラム本体(ファイル拡張子を除く)


設定を上書き

# curl -X PUT --data-binary @config.json --unix-socket /var/run/control.unit.sock http://localhost/config


再起動

# service unit restart


ブラウザから動作確認。

おつかれさまでした。