このレッスンですること
パソコンやサーバーを手作業で設定すると時間がかかりますし、手順を全部覚えている人もいません。Ansible は、マシンをどんな状態にしたいかを プレイブック(playbook)というファイルに書いておくと、マシンをその状態に合わせてくれるツールです。このレッスンでは、プロジェクトを見て、プレイブックを読み、実行し、マシンの状態を Ansible に尋ねます。プレイブックを完成させることはしません。それはラボ自身の課題です。
始める前に
メモ
このレッスンの上のバーにある ラボを起動 を押してください。このラボは、あなた専用の Ubuntu マシン まるごとです。コンテナより起動に少し時間がかかります。下の 実行 ボタンは、マシンのターミナルにコマンドを順番に入力します。「マシンはまだ起動中です」と出たら、数秒待ってからもう一度押してください。実行の様子を見たり、自分でコマンドを打ったりするときは、バーの ターミナルを開く(新しいタブ) を押します。
1. プロジェクトを見る
ラボは、ホームフォルダに ansible-lab というフォルダを置いています。ls -l で中身の一覧が出ます。site.yml がプレイブックです。inventory.ini は Ansible が管理するマシンを書いたファイルで、ここでは今のマシン1台だけです。ansible.cfg は設定ファイルで、templates には空欄のあるファイルが入っています。
ls -l ansible-labここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
2. プレイブックを読む
プレイブックは タスク(task)の一覧で、YAML という書き方で書きます。このプレイブックのタスクは、メッセージを表示する1つだけです。また 変数(variable)site_name があり、中身は Riverside College です。その下に TODO の行が3つあります。ラボの3つの仕事を書く場所です。
cat ansible-lab/site.ymlここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
3. 実行する
ansible-playbook はプレイブックを読んで、書いてあるとおりに実行します。最後の数行が recap(まとめ)です。ok=2 は2つのタスクがうまくいったこと、changed=0 は何も変わらなかったことを表します。メッセージの表示では何も変わらないからです。マシンが正しい状態になれば、よいプレイブックは何度実行しても changed=0 になります。これを idempotent(何度実行しても同じ結果になること)といいます。
ansible-playbook -i ansible-lab/inventory.ini ansible-lab/site.ymlここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
4. モジュールに質問する
どのタスクも モジュール(module)を使います。モジュールは、1つの仕事をする小さなプログラムです。stat はファイルやフォルダの様子を調べます。ラボが作らせたいフォルダ /etc/ansible-lab について尋ねると、"exists": false と "changed": false が返ります。見ただけで、何も変えていないということです。
ansible localhost -i ansible-lab/inventory.ini -m ansible.builtin.stat -a path=/etc/ansible-labここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ラボに進みましょう
ヒント
足りないものが分かりました。パッケージ、ファイル、ユニットファイルの3つです。これらをプレイブックに加えるのが、このラボの課題です。ターミナルで cat README.md と打って、ホームフォルダの README.md を開いてください。何をするかが書いてありますが、答えは書いてありません。
先生へ
ヒント
このレッスンは ラボで進めるレッスン の小さな例です。手順と 実行 ボタンがレッスンで、ラボは生徒一人ひとりのコピーです。このレッスンは VM ラボで進めます。生徒それぞれが Ansible の入った自分専用の Ubuntu マシンを持ち、実行ボタンはそのターミナルに入力して、出力を表示します。ラボには、生徒のプレイブックを2回実行し、作られたものと、2回目に何も変わらなかったかどうかを採点する確認があります。自分のモジュールにコピーして変更するか、レッスンビルダーの ラボ メニューから一から作ってください。