AnsiblePlaybookでタスクを定義する方法
タスクは、Ansibleプレイブックを使用して自動化できるアクションの最小単位です。 プレイブックには通常、Webサーバーのセットアップや、リモート環境へのアプリケーションの展開など、目標を達成するための一連のタスクが含まれています。
Ansibleは、プレイブック内で定義されているのと同じ順序でタスクを実行します。 LEMPサーバーのセットアップなどの手順を自動化する前に、すべてを完了するために必要な手動の手順と、それらを完了する必要がある順序を評価する必要があります。 次に、必要なタスクと、より少ないステップで目標を達成するために使用できるモジュールを決定できます。
Modules は、生のbashコマンドとして実行する必要がある操作を実行するためのショートカットを提供します。 これらは、さまざまなオペレーティングシステム間でコマンドを抽象化するためにもよく使用されます。
このガイドの前の部分で最初のプレイブックを作成したときに、debug
を使用してメッセージを出力する単一のタスクを定義しました。 そのプレイブックをもう一度見てみましょう。 cat
コマンドを使用して、検査のためにそのファイルの内容を印刷できます。
cat ~/ansible-practice/playbook-01.yml
このプレイブックには、プレイの出力にメッセージを出力する単一のタスクが含まれています。
〜/ ansible-practice / playbook-01.yml
--- - hosts: all tasks: - name: Print message debug: msg: Hello Ansible World
タスクは、プレイ内のtasks
という名前のリストとして定義され、そのプレイのターゲットを定義するhosts
ディレクティブと同じレベルにあります。 name
プロパティは、そのタスクが実行されようとしているときに出力される出力を定義します。
サンプルタスクは、debug
モジュールを呼び出します。これにより、プレイ中にメッセージを表示できます。 これらのメッセージは、たとえば、変数の内容やコマンドによって返される出力メッセージなどのデバッグ情報を表示するために使用できます。
各モジュールには、独自のオプションとプロパティのセットがあります。 debug
モジュールは、メッセージを含むmsg
という名前のプロパティが出力されることを想定しています。 msg
はdebug
内のプロパティである必要があるため、インデント(2スペース)に特に注意してください。