【PlayBook概要】構築方法 1章: Playbookについて
Playbookについて
- Playbookとは、
アドホックタスク実行モード
とは完全に異なる方法でAnsibleを使用する。 - Playbookはは、既存のものとは異なり、非常にシンプルな構成管理とマルチマシンデプロイメントシステムの基礎
となりますが、
複雑なアプリケーションのデプロイメントに非常
に適しています。 - Playbookは構成を宣言できますが
特定の順序でマシンセット間でのさまざまなステップを往復する必要がある場合でも
手動で指定したプロセスのステップ
を調整することも出来ます。同期または非同期で、タスクを起動可能 - アドホックタスク用にメインの
/usr.bin/ansible
プログラムを実行する場合がありますが Playbookはソース管理に保持され、構成をプッシュしたり、リモートシステムの構成が仕様どおりであることを確認したりするためのに使用される可能性が高くなります。
ansible-examples repositoryで、これらの手法を多数説明している
Playbookの全セットもあります。
単語帳
アドホックタスク
プロセス作成時に定義しきれなかった隠れたタスクを、プロセスの実行中に追加することのできるタスクです。
デプロイメント
コンピューターネットワークを通じて提供されるアプリケーションやウェブ上のサービスを、利用可能な状態にすること
Playbook言語の例
- 各Playbookは、リストにある1つ以上の
Plays
から構成 Play
の目的は、ホストのグループを、Ansibleではタスクと呼ばれるもに代表される 明確に定義されたロールにマッピング
することです。 基本的なレベルでは、タスクはAnsibleモジュールを呼び出します。- 複数の
Play
のPlaybookを作成することにより、マルチマシンデプロイメントを調整して webserversグループのすべてのマシンで特定のすステップを実行し 次にdatabaseサーバグループで特定のステップを実行し さらにwebserversグループでさらに多くのコマンドを実行できる。 Play
は多かれ少なかれスポーツに似ています。 さまざまな事を行うために、システムに影響を与える多くのplay
を持つことが出来ます。 特定の状態またはモデル定義するだけではなく、様々なplay
を同時に実行することが可能。
単語帳
ロールマッピング
実行時にユーザまたはグループをセキュリティロールに動的に割り当てるプロセス。
Playbookには複数のプレイ
を含めることが出来ます。
最初にWebサーバを対象として、
次にデータベースサーバを対象とするPlaybookがある場合
例:
- hosts: webservers remote_user: root tasks: - name: ensure apache is at the latest version yum: name: httpd state: latest - name: write the apache config file template: src: /srv/httpd.j2 dest: /etc/httpd.conf - hosts: databases remote_user: root tasks: - name: ensure postgresql is at the latest version yum: name: postgresql state: latest - name: ensure that postgresql is started service: name: postgresql state: started
この方法を使用して
対象とするホストグループ、リモートサーバにログインすユーザ名
sudoを使用するかどうかなどを切り替える事ができます。
play
はタスクと同様に、Playbookで指定された順序で上から下に実行されます。