created: 2022-10-12T00:50:45.172Z

複数台の Raspberry Pi を ansible で管理するためのインベントリファイル/playbook

役割の違う複数の Raspberry Pi を ansible で管理するときのインベントリファイル(yaml)の書き方をメモ。

all:
  # 共通の変数を all 配下に vars で記述する
  vars:
    ansible_connection: ssh
    ansible_ssh_user: pi
    ansible_ssh_private_key_file: "./credentials/local_raspi_id_rsa"
    ansible_python_interpreter: /usr/bin/python3.9
  # children キーは設定ファイルの仕様上必須。この配下にマシンごとの変数やhostsなどを書く
  children:
    fileserver:
      hosts:
        fileserver.local
    recordserver:
      hosts:
        recordserver.local

参考

公式ドキュメントがとても丁寧でわかりやすかった。

その他

playbook ファイルは、マシンごとにファイルを用意するようにして、タイムゾーンや言語などの共通の処理を common_tasks.yml とかに切り出すと具合がよかった。

$ ls -1 ansible/*.yml
ansible/common_tasks.yml
ansible/fileserver.yml
ansible/recordserver.yml
ansible/hosts.yml
ansible/requirements.yml

本当は ansible の規約に沿ったディレクトリに配置すればいいのだろうけれども、それはもう少し管理台数が多くなってからの宿題にしておく。

ユーザーの問題解決とプロダクトの成功を導く エンジニアのためのドキュメントライティング
[ad] ユーザーの問題解決とプロダクトの成功を導く エンジニアのためのドキュメントライティング
ジャレッド・バーティ, ザッカリー・サラ・コ―ライセン (単行本)