vagrantでLaravelウェブアプリを作る(2-2)
つづき。
というか本来なら
1.実行環境(PHP、Python、node/nvm)の準備
2.ウェブサーバ(nginx)の準備
3.ソース管理(Git)の準備
を行うべきなのだが、前々準備なことをやっている。
本来ならこういう構成をしたいのだが、プロキシやLB、WAFまで手が回らないのでとりあえずnode1/2を置いて実行環境やweb、DBサーバ置いて、LaravelやVueのデフォを動かしたらホスト(☁印)からアクセスできるよね。
ってところが確認できればOK。というマイルストーンで考えている。
しかし。
ここでふと思ったのが起動や処理をしたとき、本当に正しく起動し、動き、停止したかという動きをチェックする必要がある。
Vagrantでプロビジョニング(設備準備)を行う場合 config.vm.provisionでインストールや設定をシェル(インライン又は外部ファイル)、Puppet、Chef、Ansible、Dockerが使え、runオプションで always、never、無し が設定できて、毎回実行するか否かを明示的に指示できる。
更にnodeごとにプロビジョニング内容を変えることも出来る。
今回の場合ならnode1が動いていればいいわけだが、node2の状態を見たい。またGuestOSの起動、シャットダウンを繰り返したりするわけなので、都度都度コマンドを打って状態を確認するのは本当に面倒臭い。Zabbixなど監視ツールは無事起動した後の運用時に使うもので大がかりすぎる。
そこでここでお手製のシェルを作って起動させたら各状態を確認しにいき、レポートファイルを見たら状態が一見できるようにしたい。
作り始めたは良いがここでポカミス。わりと四苦八苦してしまった。
(ちょっと調べものを鵜呑みにし過ぎたかも)
目的は起動チェッカー、ステータスレポート作成。そして作成したレポートは共有のところに格納。格納先は年、月、nodeの階層でディレクトリを作成し、年月日時分秒のサフィックスを付けたレポートファイルを格納する。
というところまでが出来た。
当初目標は
*起動の都度、毎回実行するプロビジョニング
・GuestOSのアップデート
・ホスト側、対抗node側の疎通確認
・各ミドル起動確認
nginx、posgtresql、mongoDB
apache-http、ElasticSearch、(MySQL、SQLite)
・Git状態確認
・ログ状態確認
・ヘルスチェック
・ログ状態確認
・ログ未送致分の確認
・通知(ノーティフィケーション)状態確認
・通知未送致分の確認
・各ミドルのライフタイム切れ事前通知
これらを一括で行いレポートに出力させたい。
とはいっても俺のことなので3つ目くらいまでで息切れしそうだけど。
次は頭から3行目あたりのことをshellに実装していく。
(参考)
Basic Usage - Provisioning | Vagrant by HashiCorp
( https://www.vagrantup.com/docs/provisioning/basic_usage )