プレイブックはYAML形式を使用して、1つ以上のプレイを定義します。 プレイとは、Webサーバーのセットアップやアプリケーションの本番環境へのデプロイなど、プロセスを自動化する方法で配置された一連の順序付けられたタスクです。

プレイブックファイルでは、プレイはYAMLリストとして定義されます。 典型的な遊びは、どのホストがその特定のセットアップのターゲットであるかを決定することから始まります。 これは、 hosts 指令。

の設定 hosts 指令 all を実行することで実行時にプレイのターゲットを制限できるため、これは一般的な選択です。 ansible-playbook とのコマンド -l パラメータ。 これにより、プレイブックファイルを毎回変更することなく、異なるサーバーまたはグループで同じプレイブックを実行できます。

練習用プレイブックを保存できる新しいディレクトリをホームフォルダに作成することから始めます。 まず、Ubuntuユーザーのホームディレクトリにいることを確認します。 そこから、という名前のディレクトリを作成します ansible-practice 次に、そのディレクトリに移動します。 cd 指図:

  1. cd ~
  2. mkdir ansible-practice
  3. cd ansible-practice

すべての前提条件を満たしている場合は、作業中のインベントリファイルがすでにあるはずです。 そのファイルを新しいファイルにコピーできます ansible-practice 今ディレクトリ。 たとえば、テストインベントリファイルを ansible ホームフォルダのディレクトリで、次のコマンドを使用してファイルを新しいディレクトリにコピーできます。

  1. cp ~/ansible/inventory ~/ansible-practice/inventory

次に、新しいプレイブックファイルを作成します。

  1. nano playbook-01.yml

次のプレイブックは、プレイターゲティングを定義しています all 特定のインベントリからのホスト。 これには、デバッグメッセージを出力するための単一のタスクが含まれています。

:このシリーズの次のセクションでタスクについて詳しく学習します。

次のコンテンツを playbook-01.yml ファイル:

〜/ ansible-practice / playbook-01.yml
---
- hosts: all
  tasks:
    - name: Print message
      debug:
        msg: Hello Ansible World

完了したら、ファイルを保存して閉じます。 使用している場合 nano、入力することでそれを行うことができます CTRL+X、 それから YENTER 確認するために。

インベントリファイルで設定したサーバーでこのプレイブックを試すには、次を実行します。 ansible-playbook このシリーズの紹介で接続テストを実行するときに使用したのと同じ接続引数を使用します。 ここでは、という名前のインベントリファイルを使用します inventory およびsammyユーザーはリモートサーバーに接続しますが、これらの詳細を変更して、自分のインベントリファイルと管理ユーザーに合わせてください。

  1. ansible-playbook -i inventory playbook-01.yml -u sammy

次のような出力が表示されます。

Output
PLAY [all] *********************************************************************************** TASK [Gathering Facts] *********************************************************************** ok: [203.0.113.10] TASK [Update apt cache] ********************************************************************** ok: [203.0.113.10] => { "msg": "Hello Ansible World" } PLAY RECAP *********************************************************************************** 203.0.113.10 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

プレイブック内で1つのタスクのみを定義したにもかかわらず、2つのタスクが再生出力にリストされていることに気付いたかもしれません。 各プレイの開始時に、Ansibleはデフォルトで、リモートノードに関する情報( facts と呼ばれる)を収集する追加のタスクを実行します。 ファクトはプレイブックで使用してタスクの動作をより適切にカスタマイズできるため、ファクト収集タスクは他のタスクを実行する前に実行する必要があります。

Ansibleの事実については、このシリーズの後半のセクションで詳しく説明します。