@fujiwaraさんが作っているurume/mezasiがどうなってるのか知りたかったので読んだ。libvirtとdnsmasq、知らなかったものを知れたので勉強になった。
https://github.com/fujiwara/Urume
ざっくり読んだメモ
app.psgi
Urume::Web
Urume::Notify
というのがあるのかー
そこにアクセスするクライアントが、bin/mezasi
Urume::Notify
bin/mezasiでwaitオプションをつけるとここで提供しているAPIが叩かれるのかー
例えば、vmを立ち上がるのを待って、それが終わったらレスポンスを返すみたいな感じ
Urume::Storage
Redisにデータを保存したりpublishしてるのかー
dnsmasq.conf作ったりしてる。
dnsmasq_events_ch, host_events_chなどにpublishしたりしてる。
dnsmasqagent
Urume::DnsmasqAgentをrunしてる
Urume::DnsmasqAgent
subscribeしていてdnsmasq_events_chにpublishされたら、設定ファイルを書き換えてrestartしてるのかー
hostagent
Urume::HostAgentをrunしておりますなー
Urume::HostAgent
host_events_chをsubscribeしていて、publishされたらcommandによってvirshを実行する。
standalone_server
Proclet使って、よしなに立ち上げてる。
まとめ
読みやすいのでオススメです。