【更新】2017/02/11
目次
VCCW Ver.3では、デフォルトでMailCatcher動いてます 😄
Checking Email with MailCatcher
※ 注意! こちらはVCCW旧バージョンでのやり方です。Checking Email with MailCatcher
VCCW in MailCatcher最高っす!! あざます!!
ここの所MailCatcherを使うことが多かったので、VCCWを起動後、直ぐに立ち上げたいという欲求が出まして、サクッと起動する方法ないかな〜とあれこれ試してたら、うまく行きました 🙂
※ 上手く動いたのは良かったんですが、宮さんから教えていただいて修正しました。ohaiとか、jqとか勉強になりました。あざます!!
【新】仮想マシンにログイン後、ipを取得してmailcatcherに投げる
vagrant ssh -c で仮想マシンにログイン後、ohaiとjqを使って、ipを取得します。
宮さんから教えていただいたコードはこちら↓↓
activate-mailcatcher/setup.sh at master · vccw-team/activate-mailcatcher
で、ohai と jq 使った方法に書き換えたのがこちら↓↓
チョーシこいてワンライナーにしたのがこちら↓↓
で、以下はohai?jq?だったので、調べてみました。
ohaiとは?
ohaiはChefがサーバー環境の情報収集のために使うソフトウェアです。
収集できる情報はハードウェアからOS、ネットワークまで一通りの物が対象です。
とのこと。ohaiとググってオハイオ州が出てきたのは内緒ですw
実際、Mac上でohaiと打ち込んでも、command not found となってしまい、Macにインストールするところから始めました。
あ、VCCWには初めっから入ってます!!
インストールにあたってはコマンドだとどうしてもうまく行かず、以下のサイトからダウンロードしてインストールしました。
Chef Development Kit | Chef Downloads | Chef
参考: 初心者にお勧めするChefの正しいインストール方法 – Qiita, ohaiを使ってサーバの情報をプログラムで扱おう – インフラエンジニアway – Powered by HEARTBEATS
インストール後、ohaiとコマンド打ち込んでみたら、しっかり出てきました。フォーマットはjsonです。
[code]
ohai
{
"cpu": {
"real": 2,
"total": 4,
"mhz": 2600,
"vendor_id": "GenuineIntel",
"model_name": "Intel(R) Core(TM) i5-4288U CPU @ 2.60GHz",
"model": 69,
"family": 6,
"stepping": 1,
"flags": [
"fpu",
"vme",
"de",
"pse",
"tsc",
"msr",
"pae",
"mce",
"cx8",
"apic",
"sep",
"mtrr",
"pge",
"mca",
"cmov",
"pat",
"pse36",
"clfsh",
"ds",
"acpi",
"mmx",
"fxsr",
"sse",
"sse2",
"ss",
"htt",
"tm",
…と、大量に(^0^;)
[/code]
特にホスト側に入れる必要は無かったんですが、とりあえず入れて確認。
jqとは?
jqとは、コマンドラインからJSONを操作することができるツールです。
curlコマンドとかでJSONレスポンスを取得した場合、データ量が多いと非常に見づらいデータがかえってきたりして困ります。
ってことで、ohai で返ってきたデータをjq使ってフィルタかけて取り出したりできるツールのようです。
参考: jq Manual (development version)
ダウンロード → インストールもあるようですが、僕は今回は brewを使ってインストールしました。
[code]
brew install jq
[/code]
jqは今の僕でもいろいろと使えるかも知れません 🙂
jqの出力はオプションで色つきにもできるようです。
政倉さん、あざます!!
ということで、ohaiとjq使って書き換えました〜 🙂
若干遅いのが気になる所なんですが…。。
【古】site.ymlに設定しているip使って起動する方法
えっと、僕は普段新規にVCCWを立ち上げる場合、site.ymlファイルを編集します。ip: も変更しますし、localhostもipと同じ値に設定してます。
こんな設定で使う人あまり居ないかなぁと思いつつ、vagrant sshせずとも良い場合、このやり方が楽ちんでついっすね…^^;
で、VCCWが立ち上がった後、
- vagrant ssh
- mailcatcher –http-ip VCCW設定のip
と毎回打ち込むんですが、毎度だと面倒になったので、少しでも楽ちんにしたいなぁと言うことで、エイリアス作ってみました。
これです 🙂
因みに、site.ymlがあるディレクトリでやらないと動かないっす。
やってる内容
- grep “ip:” site.yml でsite.ymlファイル内のip: がある行を取得
- tr -d “ip: ” 取り出した行の内容から”ip: “を削除(コレでipのみになる)
- 順番前後するけど、このipを変数IPへ代入
- 変数IP使って、vagrant ssh -c “”で、vagrant にsshログイン後、””内のコマンドを実行
- mailcatcher –http-ip ${IP} 変数IP(site.ymlのip部分)を代入
上記の内容をやってます。ってことでsite.ymlのip:記述が無くならない限り使えます ^^;
他にVCCWで使ってるエイリアス
それくらいやれよ…。。
な内容ですが、ワリと便利に使ってます。
site.ymlを先ず開く(新規VCCW設定の場合)
[code]
# vccw site.yml setup
alias vvccww=’cd vccw; cp provision/default.yml site.yml; vim site.yml’
[/code]
vagrant upしてエディタを開く
[code]
#vccw quick up
alias vccw-quick=’vagrant up; cd www/wordpress; pstorm . ‘
[/code]
;で繋いでるだけっすけどね 😛
MailCatcherの終了はブラウザから?
[code]
Starting MailCatcher
==> smtp://127.0.0.1:1025
==> http://192.168.19.181:1080
*** MailCatcher runs as a daemon by default. Go to the web interface to quit.
[/code]
っと起動時に既にweb interfaceからやってねって書いてあるので他にはないのかな。。
あと、複数VCCWを立ち上げちゃってる場合は、-http-port PORT, –smtp-port PORT とかやった方が良いのかも。最近は同時に起動とかあまりしなくなったけど 😛
スクリプト作っといても
Run pre/post provisioning scripts
You can place shell scripts, so it will run at pre/post provisioning.
provision-pre.sh
– Run before chef provisioning.provision-post.sh
– Run after chef provisioning.
とかカスタマイズしても良いのかも。
ワンライナーを真似して作ってみた 🙂
GitHubに置いてワンライナーで行けるかどうかやってみた。
ばっちり 🙂
readmeには書いたけど、site.ymlのあるディレクトリに移動して
[code]
curl https://raw.githubusercontent.com/marushu/start-mailcatcher/master/start-mailcatcher.sh | bash
[/code]
でOK。GitHubに置いとくと何かと便利なんだなぁと置いてみてわかった次第。
ワンライナーってこうやって作るんすね〜!! 楽しい 🙂