プロジェクトを設計する:Role と Inventory
デプロイ用リポジトリ全体を構成します。
「プロジェクトを設計する:Role と Inventory」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
総合課題の目標
本格的な多層アプリを、ローリングデプロイとダウンタイムゼロでリリースしましょう。最初のステップは、プロジェクトの構成を設計することです。🚀
ロールで考える
システムをロールに分割します。common、web、app、db、loadbalancer のように、関心事ごとに1つのロールを作成します。それぞれを個別に再利用・テストできます。
トップレベルの構成
整理されたリポジトリでは、ルートにインベントリ、group_vars、roles、site.yml エントリープレイブックを配置します。誰でも必要なものをすぐに見つけられます。
deploy/
site.yml
inventory/
group_vars/
host_vars/
roles/site.yml ですべてをつなぐ
マスタープレイブック site.yml は、層ごとのプレイを順番にインポートします。スタック全体をデプロイするための単一のコマンドです。
- import_playbook: plays/loadbalancer.yml
- import_playbook: plays/db.yml
- import_playbook: plays/app.yml
- import_playbook: plays/web.yml層をグループに対応させる
インベントリでは、lb、db、app、web という層ごとのグループを定義します。各プレイは、自身が管理するホストだけを正確に対象にします。
[lb]
lb1
[web]
web1
web2
[app]
app1
app2
[db]
db1層ごとに group_vars を設定する
層の設定を group_vars に保存します。Webのポート、アプリのバージョン、DBの認証情報などを定義すれば、ホストが自動的に継承するため、コピー&ペーストは不要です。
group_vars/web.yml:
nginx_port: 80
upstream: app:8080特殊な設定には host_vars を使う
1台のホストだけ設定が異なる場合は、上書き設定を host_vars に配置します。たとえばプライマリDBには、他のホストにはないレプリケーション設定を持たせる場合があります。
host_vars/db1.yml:
postgresql_role: primaryアプリのバージョンを固定する
リリースバージョンはハードコードした文字列ではなく、変数にします。変更箇所を1つにまとめることで、数秒でロールフォワードやロールバックを実行できます。
group_vars/all.yml:
app_version: "2.4.1"環境を分離する
環境ごとにインベントリフォルダーを分け、ステージングと本番でホストを共有しないようにします。同じロールを使い、対象だけを変えます。
inventory/
staging/hosts
production/hosts依存関係を固定する
外部のGalaxyロールを requirements.yml に記載し、チームメンバーやCIの実行環境がまったく同じオートメーションコードをインストールするようにします。
roles:
- name: geerlingguy.nginx
version: 3.1.4先にアーキテクチャを考える価値
よく考えられた構成により、難しいデプロイも予測可能な数個のコマンドで実行できるようになります。今の構造化が、後のトラブル対応を減らします。🧱
確認問題
設定を正しい場所に配置してみましょう。
まとめ
リポジトリを設計しました。層ごとのロール、インベントリグループ、group_vars と host_vars、そしてデプロイ全体を実行する site.yml を用意しました。✅
よくある質問
「プロジェクトを設計する:Role と Inventory」レッスンは無料ですか?
はい。「プロジェクトを設計する:Role と Inventory」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「プロジェクトを設計する:Role と Inventory」で何を学びますか?
デプロイ用リポジトリ全体を構成します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「プロジェクトを設計する:Role と Inventory」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロジェクトを設計する:Role と Inventory
- ホストのプロビジョニング・堅牢化・初期設定
- Load Balancer 配下でのローリングデプロイ
- Smoke Test、ロールバック、通知