継続的な統合とは、プロジェクトを開始した瞬間から、メインへの頻繁なコミットが自動的に展開されることを意味します。継続的な展開とは、プロジェクトを開始した瞬間から、安全なパブリック接続を備えたリモートサーバー上のコンテナにアプリのライブビルドが常にあることを意味します。
Ezinnitを実行した後、WebAppはサーバーで実行され、選択したHTTPSドメインでライブでライブおよびメインブランチへの将来のコミットメントは、ライブアプリに自動的に展開されます。
完全に自動化されたプロセスでは、EzinnitはGitLabリポジトリと展開パイプラインを初期化およびプッシュし、サーバーにDokkuとGitlabランナーをインストールします。 gitlabリポジトリは、メインブランチへのコミットメントをサーバーに自動的に展開するように構成されています。ここでは、アプリがコンテナに自動的に構築され、パブリックHTTPSドメインで提供されます。
Ezinnitには、新しいDjango、Flask、Fastapiプロジェクトのアプリテンプレートが含まれています。これらのテンプレートは、完全に新しいプロジェクトを開始し、展開された作業サイトを作成することを目的としています。
常に展開されているため、展開するアプリを開発します。
ezinnitをダウンロードしてインストールするには:
プロジェクトのルートディレクトリで、実行してください。
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit -P ezinnit
bash ezinnit/ezinnit
あなたは次のように求められます:
- gitlabユーザー名
- gitlabドメイン(アカウントがgitlab.comにある場合、gitlabドメインは
gitlab.comです) - gitlabパーソナルアクセストークン
- アプリ名(gitlabリポジトリ名にもなります)
- リモートサーバーのIPアドレス
- 新しいアプリを指したいドメインまたはサブドメインなど:
mynewapp.mydomain.com - LetsEncryptに登録するために使用するメールアドレス
- オプションのアプリテンプレート:Django、Flask、またはFastapi
要件:
- アプリをインストールしたPython仮想環境(またはDjangoプロジェクトをゼロから作成するには、readmeの底を参照)
- git
- gitlabアカウント(gitlab.comアカウントは、gitlabランナーを使用するために検証する必要がありますが、検証は無料です)
- Ubuntuを実行しているサーバー18.04/20.04/22.04デジタルオーシャンドロップレットの作成方法
- GitLabに登録されているローカルマシンのSSHキーが登録されています
- ローカルマシンのSSHキーは、新しいサーバーの許可ホストに追加されました(デジタルオーシャンチュートリアル)
- ドメインが機能するには、ドメインをサーバーIPアドレスに向けるDNS「A」レコードが必要です(Ezinnitを実行する前にDNS "A"レコードを作成)
警告!
- このスクリプトは、リモートサーバーに新しいSSHキーを作成します!
- アプリテンプレートを選択すると、EzinnitはProcfile、settings.py、main.pyなどを含むファイルを書き留めます。新しいプロジェクトにはテンプレートのみを使用します。
Ezinnitがすること
- ezinnit.configのチェック、それが存在しない場合、それはあなたに値を促し、ezinnit.configファイルを作成します
- プロジェクトディレクトリに.gitignoreがない場合は、toptotalを使用して.gitignoreファイルを作成します
- 1つを選択した場合は、アプリテンプレートスクリプトを実行します(Django、Flask、Fastapiがこのリリースに含まれています)
- プロジェクトディレクトリに自動展開(.gitlab-ci.yml)のためのgitlabパイプラインを作成します
- プロジェクトディレクトリに要件.txtファイルがない場合は、要件を作成します。txtファイル
- GITリポジトリを初期化し、初期ブランチをメインに設定し、リモートを新しいgitlabリポジトリに設定し、gitlabにコミットしてプッシュします
- gitlabから新しいリポジトリのランナートークンを取得します
- ezinnit.configをサーバーにコピーします
- リモートサーバーでサーバー初期化スクリプトを実行します。これは次のとおりです。
- サーバー上に新しいSSHキーを作成します
- gitlabリポジトリにサーバーのSSHキーをアップロードします
- サーバーにdokkuをダウンロードしてインストールします(これには数分かかります)
- サーバー上にDokkuアプリを作成します
- サーバー上のDokkuアプリのドメインを設定します
- アプリポートをサーバー上で80:5000に設定します
- サーバーにGitlabランナーをダウンロードして作成します
- サーバー上のgitlabランナーを登録します
- サーバーにdokku-letsencryptをダウンロードしてインストールします
- サーバー上のTLS証明書を使用してサーバー上のアプリの暗号化を有効にします。
- サーバーにクロンジョブを追加して、TLS証明書を自動的に更新する
- Django、Flask、Fastapiの場合、スクリプトを作成して実行します:
ezrunオープンポートを見つけて開発環境でローカルに実行します - Ezinnitが完了すると、GitLabはアプリのサーバーに自動的に展開を開始します。 Ezinnitは、展開ステータスを確認できる新しいリポジトリへのリンクを提供します。
オープンポートを見つけて、開発環境でローカルにDjango、Flask、またはFastapi Ezinnitテンプレートアプリを実行するには:
今も永遠に展開します
新しいWebAppプロジェクトを開始するたびにEzinnitを使用してください。ボタンを押すと、プロジェクトはGitLabリポジトリから始まり、選択したサーバーのコンテナにメインコミットを自動的に展開します。
これで、アプリが目的とする真の環境のために開発できるようになりました。変化が現実世界の使いやすさにどのように影響するかについての即時フィードバックを使用できます。アプリがコンテナに内蔵され、ライブサーバーでどのように動作するかを即座に知っています。
安全な生産環境はデフォルトであり、開発モードは例外であり、開発を安全にします。
Ezinnitでプロジェクトを開始するとき、あなたは本当にCICDをやっています。初日から、自分のドメインで自分のサーバーでライブアプリを使用して走っている地面にぶつかり、できることに焦点を合わせることができます。
Djangoプロジェクトをゼロから開始するには:
mkdir ezinnit
wget https://raw.githubusercontent.com/johnsyncs/ezinnit/main/ezinnit%20template%20scripts/django.innit -P ezinnit
bash ezinnit/django.innit
ジョン・ヒューイット
ロバート・キャロル