カフェのメニューを更新する は、小さな playbook を書いた経験があり、ホスト間の実際の違いを管理したい方向けの Ansible 実践プロジェクトです。地域の 2 つのカフェに共通するドリンクメニューを更新しながら、各店舗の名前、営業時間、限定メニュー、既存のスタッフ用ファイルを保持します。
1 つのガイド付き実習で、共通の入力データと再利用可能な JSON テンプレートから、実際のメニュー確認、意図的に起こした設定ドリフトの修復までを学びます。1 つの独立したチャレンジでは、異なる承認済みデータを持つ 2 つのベーカリーに同じ方法を適用します。各単元は、それぞれ独立して準備された環境から始まります。
学習内容
- 共通のメニューデータと、正当な店舗固有の入力やローカルコンテンツを区別する。
- 実際に SSH で管理する 2 つのホストそれぞれの変数コンテキストで、同じテンプレートをレンダリングする。
- 範囲を限定した file/template playbook を適用する前に、対応している変更をプレビューする。
- 実際のメニューページ、来店案内、完全な CSV ダウンロードを確認する。
- 既存の宣言を再適用し、対象ホストでの意図しない変更を修復する。
- ローカルの作業を消したり changed の結果を隠したりせず、設定の収束を確認する。
このコースの対象者
このプロジェクトは、小さくても目に見える設定管理の成果を得たい Ansible 初学者、Linux 学習者、DevOps を目指す方に適しています。
前提知識: 基本的なターミナル操作と、Ansible のインベントリおよび簡単な YAML playbook を読んだ経験が必要です。実習では、ホストとグループのデータ、JSON のレンダリング、check/diff、管理対象ファイルの境界を使用前に説明します。Web 開発やカフェ向けソフトウェアの知識は不要です。
学習環境: LabEx が Ansible を備えた Ubuntu コントローラーと、SSH で管理する 2 つの Linux コンテナーノードを提供します。Controller ターミナルで自動化を記述し、Menu Preview で実際の店舗メニューを開きます。ノードは実習 VM のカーネルを共有します。Web サイト、入力データ、ツールは準備済みなので、ローカルへのインストールは不要です。
よくある質問
カフェの Web サイトも作りますか?
動作するサイトは用意されています。Ansible で実際のメニューデータを管理し、ページとダウンロードを使って結果を確認します。
両店舗をまったく同じにする必要がありますか?
承認済みの通常メニューは共有しますが、名前、営業時間、限定メニュー、来店案内は店舗ごとに保持します。この境界を理解することもプロジェクトの一部です。
チャレンジとガイド付き実習はどう違いますか?
チャレンジには、独立したベーカリーのデータと明確な受け入れ基準があります。新しいツールを探すのではなく、学んだインベントリ変数、テンプレート、playbook の方法を再利用します。完全な参考解答は別に用意されています。
メニューやターミナル出力も翻訳されますか?
学習文書と説明は翻訳されています。準備されたサイト、実際の UI ラベル、データ、コマンド出力は英語のままなので、手順と操作対象が一致します。


