最初のAnsiblePlaybookの作成と実行
プレイブックはYAML形式を使用して、1つ以上のプレイを定義します。 プレイとは、Webサーバーのセットアップやアプリケーションの本番環境へのデプロイなど、プロセスを自動化する方法で配置された一連の順序付けられたタスクです。
プレイブックファイルでは、プレイはYAMLリストとして定義されます。 典型的な遊びは、どのホストがその特定のセットアップのターゲットであるかを決定することから始まります。 これは、 hosts
指令。
の設定 hosts
指令 all
を実行することで実行時にプレイのターゲットを制限できるため、これは一般的な選択です。 ansible-playbook
とのコマンド -l
パラメータ。 これにより、プレイブックファイルを毎回変更することなく、異なるサーバーまたはグループで同じプレイブックを実行できます。
練習用プレイブックを保存できる新しいディレクトリをホームフォルダに作成することから始めます。 まず、Ubuntuユーザーのホームディレクトリにいることを確認します。 そこから、という名前のディレクトリを作成します ansible-practice
次に、そのディレクトリに移動します。 cd
指図:
- cd ~
- mkdir ansible-practice
- cd ansible-practice
すべての前提条件を満たしている場合は、作業中のインベントリファイルがすでにあるはずです。 そのファイルを新しいファイルにコピーできます ansible-practice
今ディレクトリ。 たとえば、テストインベントリファイルを ansible
ホームフォルダのディレクトリで、次のコマンドを使用してファイルを新しいディレクトリにコピーできます。
- cp ~/ansible/inventory ~/ansible-practice/inventory
次に、新しいプレイブックファイルを作成します。
- nano playbook-01.yml
次のプレイブックは、プレイターゲティングを定義しています all
特定のインベントリからのホスト。 これには、デバッグメッセージを出力するための単一のタスクが含まれています。
注:このシリーズの次のセクションでタスクについて詳しく学習します。
次のコンテンツを playbook-01.yml
ファイル:
---
- hosts: all
tasks:
- name: Print message
debug:
msg: Hello Ansible World
完了したら、ファイルを保存して閉じます。 使用している場合 nano
、入力することでそれを行うことができます CTRL+X
、 それから Y
と ENTER
確認するために。
インベントリファイルで設定したサーバーでこのプレイブックを試すには、次を実行します。 ansible-playbook
このシリーズの紹介で接続テストを実行するときに使用したのと同じ接続引数を使用します。 ここでは、という名前のインベントリファイルを使用します inventory
およびsammyユーザーはリモートサーバーに接続しますが、これらの詳細を変更して、自分のインベントリファイルと管理ユーザーに合わせてください。
- ansible-playbook -i inventory playbook-01.yml -u sammy
次のような出力が表示されます。
OutputPLAY [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の事実については、このシリーズの後半のセクションで詳しく説明します。