クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

手順書でマシンを同じに整える

このレッスンのあとで: 手順書の計画を読んで、何度実行しても同じ結果になるかを判断できる。

45分のレッスンコマンド3件Ansible のラボ:プレイブックでマシンを設定する(ブラウザーで)

十台のパソコンを同じにする

学校のパソコン室に、新しいパソコンが十台届きました。全部に同じソフトを入れて、同じ設定にしなければなりません。

手で一台ずつやると、一台目と十台目で微妙に違ってしまいます。手順を文章に書いておき、機械に実行させれば、毎回同じになります。

このレッスンのゴール

メモ

手順書の計画を読んで、何度実行しても同じ結果になるかを判断できる。

重要な言葉

ことばいみれい
プレイブックマシンをどうしたいかを書いた手順書
タスク手順書の中の、仕事一つ分パッケージを入れる
モジュール決まった仕事をする、部品になった命令package
冪等何度実行しても、結果が同じになる性質
テンプレート変数を後で差し込む、ひな形のファイル

学生が入力するセルは、このプレビューでは空白です。

やり方ではなく、あるべき姿を書く

手順書には「こうしなさい」ではなく、「こうなっていてほしい」と書きます。たとえば「tree というソフトが入っている」です。

すでに入っていれば、何もしません。入っていなければ、入れます。だから、同じ手順書を何度流しても安全です。

例:手順書を表で読む

順番タスクの名前モジュールあるべき姿
1挨拶を表示するdebugメッセージを一行出す
2tree を入れるpackagetree が入っている
3案内文を作るtemplate決めた場所に、ひな形から作ったファイルがある

学生が入力するセルは、このプレビューでは空白です。

Ansibleの版を見る

コマンド
ansible --version | head -1

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

このマシンに話しかける

コマンド
cd ~/ansible-lab && ansible all -m ping

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

二回目は何も変えない

手順書を流すと、最後に結果の要約が出ます。変えたタスクの数は changed、すでに目的の状態だったものは ok です。

一回目は changed が増えます。二回目で changed=0 なら、手順書は冪等です。二回目にも変わるなら、毎回何かを書き換えている印です。

例:二回流したときの要約

回okchanged読み取れること
一回目12二つ変えて、目的の姿になった
二回目30何も変えていない。冪等で良い
二回目(悪い例)21毎回何かを書き換えている

学生が入力するセルは、このプレビューでは空白です。

変えずに様子を見る

コマンド
cd ~/ansible-lab && ansible-playbook site.yml --check

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

よくある間違い

注意

shell で命令を並べれば、手順書と同じだと思いがちです。shell はいつも「実行した」ことにしかならず、すでに目的の状態かを確かめません。決まったモジュールを使えば、確かめてから動きます。

変数でひな形を埋める

店ごとに名前だけが違う案内文を作るときは、テンプレートを使います。ひな形の中に {{ site_name }} と書いておくと、変数の値がそこへ入ります。

変数を変えるだけで、同じ手順書から、別の店の案内文ができます。

例:同じひな形、別の店

変数 site_nameできる案内文
駅前店ようこそ、駅前店へ
みなと店ようこそ、みなと店へ

学生が入力するセルは、このプレビューでは空白です。

さらに挑戦:消す手順書

「tree が入っていない」という、あるべき姿も書けます。この手順書を流すと、入っていれば消し、入っていなければ何もしません。

この手順書は冪等ですか。理由を一文で書きましょう。

このラボとソースについて: Ansible のラボ:プレイブックでマシンを設定する(ブラウザーで)

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。