ゆるい感じのプログラムを書きたい。

プログラムの敷居を下げて、多くの人が開発出来るように色々書いていきます!

【PlayBook概要】構築方法 1章: Playbookについて

Playbookについて

  1. Playbookとは、アドホックタスク実行モードとは完全に異なる方法でAnsibleを使用する。
  2. Playbookはは、既存のものとは異なり、非常にシンプルな構成管理とマルチマシンデプロイメントシステムの基礎 となりますが、複雑なアプリケーションのデプロイメントに非常に適しています。
  3. Playbookは構成を宣言できますが 特定の順序でマシンセット間でのさまざまなステップを往復する必要がある場合でも 手動で指定したプロセスのステップを調整することも出来ます。同期または非同期で、タスクを起動可能
  4. アドホックタスク用にメインの/usr.bin/ansibleプログラムを実行する場合がありますが Playbookはソース管理に保持され、構成をプッシュしたり、リモートシステムの構成が仕様どおりであることを確認したりするためのに使用される可能性が高くなります。

ansible-examples repositoryで、これらの手法を多数説明している
Playbookの全セットもあります。

単語帳

アドホックタスク

プロセス作成時に定義しきれなかった隠れたタスクを、プロセスの実行中に追加することのできるタスクです。

デプロイメント

コンピューターネットワークを通じて提供されるアプリケーションやウェブ上のサービスを、利用可能な状態にすること


Playbook言語の例

  1. 各Playbookは、リストにある1つ以上のPlaysから構成
  2. Playの目的は、ホストのグループを、Ansibleではタスクと呼ばれるもに代表される 明確に定義されたロールにマッピングすることです。 基本的なレベルでは、タスクはAnsibleモジュールを呼び出します。
  3. 複数のPlayのPlaybookを作成することにより、マルチマシンデプロイメントを調整して webserversグループのすべてのマシンで特定のすステップを実行し 次にdatabaseサーバグループで特定のステップを実行し さらにwebserversグループでさらに多くのコマンドを実行できる。
  4. 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で指定された順序で上から下に実行されます。