Drkcore

20 11 2014 Linux Tweet

ホストのサーバーを起動したらゲストの仮想マシンが自動起動してそれに乗っかっているサービスも起動するようにする

最近はホストのサーバーに仮想マシン(KVM)を複数たてて、それぞれnginx+supervisord+gunirocrn+Flaskとかnginx+unicorn+RoRみたいなウェブアプリを動かすパターンが多い。というかそれが全部。

面倒くさいのだけど、(自動化するための手間をかけるほうがよりめんどくさかったので)サービスの起動まで手でやっていたのだが、ちょっと同僚に立ち上げをお願いしなきゃいけなくなって、作業手順を繰り返してもらうのもなんか悪いなーと思ったのでサーバー立ち上げればウェブアプリが動くところまで自動で進むようにすることにした。

まぁ、今更感満載だけどね…(僕はインフラエンジニアじゃないのでそっち方面詳しくないのでそういうところまでやろうとするとコストが半端無いからなぁ)と想いつつもで今どきのウェブアプリ書く人は基本として知らなあかんのかなぁとも思うとしんどいですね。

手順としては

  1. ホストサーバー起動
  2. ifupでブリッジとイーサをアクティブにする
  3. GUIのVMマネージャで仮想マシンを立ち上げ
  4. それぞれの仮想マシンにsshで入ってサービス立ち上げ(supervisordとかを起動)

なんだけど、書き出してみるとやっぱり面倒臭い。よく手動で起動していたもんだw

2. ifupでブリッジとイーサをアクティブにする

onboot=yesをつけておく。以前試したんだけど何故かうまくいかなくて放置してたけど、これを見ながらきちんと設定したら動いた。

chkconfig NetworkManager off
chkconfig network on
service NetworkManager stop
service network start

このあたりかな。あとfedora19だとこのあたりをいじるとsystemctlとcheckconfigが混在しててややこしい

3. GUIのVMマネージャで仮想マシンを立ち上げ

GUIのアプリを使って仮想マシンを起動してたんだけど、virsh便利。

sudo virsh autostart [vm_name]

で自動起動できるので、最初からそうしておけばよかった。すでにGUIは使っていない。

4. それぞれの仮想マシンにsshで入ってサービス立ち上げ(supervisordとかを起動)

unicorn+RoRな構成のよくあるRailsアプリだとRedmineをCentOS 7上で動かすーUnicornとNginx編を参考にsystemd用の定義ファイルを用意すればよいです。

supervisord+gunirocrn+Flaskが目下悩み中なのだけど/etc/init.dに書く方法しか見つからなかった。どうせだったらsystemctlコマンドで制御したいので引き続き調べる。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021