【Ansible】プレイブックとインベントリーとは?

f:id:hira98:20190710000346p:plain

【結論】

  • インベントリーは管理対象機器の接続情報のリストをまとめたファイル。

  • プレイブックとは管理対象に対して行う操作の一覧を記述したフィル。

【目次】

はじめに

Ansibleで平仮名の「あ」を書いてみたので、ブログにまとめました。

Pythonで書いた場合のイメージ

Ansibleでの自動化処理は、「プログラミングをやったことがない人でも簡単に書ける。」という夢に向かって、開発者が日々頑張っています。

しかし、自称プログラマーの私に取って、分岐とループを使って処理を考えた方が分かりやすいです。

なので、Ansibleのソースを説明する前に、似たような処理をPythonで書いてみました。

# インベントリ
inventory = {
  "test_servers":[
    "192.168.10.1", # IPアドレスは適当
    "192.168.10.2", # 同上
  ]
}

# プレイブック
for host in inventory["test_servers"]:
  print(f"ping {host}") #仮でログ出力

上記処理はAnsibleの動作イメージを把握するためのソースです。test_serversに記載されたIPアドレスのリストに対してpingコマンドを実行しているイメージです。

Ansibleのソースファイル

Pythonで書いたサンプルソースをAnsibleで書く場合は2つのファイルに分けて記述します。

インベントリ(.ini形式のファイル)

[test_servers]
192.168.10.1
192.168.10.2

プレイブック(.yml形式のファイル)

---
- hosts: test_servers
  tasks:
  - name: ping test
    ping:

Pythonで書いたソースが全てを語っているので、Ansibleのソースについては何も触れません。

というか、触れれません😭

プレイブックを実行するためのコマンド

$ ansible-playbook -i [インベントリファイルのパス] [プレイブックファイルのパス]

参考情報

Ansible実践ガイド 第2版 - インプレスブックス

さいごに

睡魔に負けず、Youtubeの誘惑にも負けず、今日のブログもなんとか書けました。