Vagrant+Virtualboxで作った環境を、どうやって他のホストに移すか?
関係する全ディレクトリを丸々コピーも考えたが、ホストのユーザー名が変わったりとか、環境によって云々とか、そもそもVagrantの内部の動作をよくわかっていない状態でそんなことして大丈夫なのかとか、全く以って不安が尽きない。
色々と調べたところ、どうもpackageコマンドを使って、現在の環境を完全にbox化して、Vagrantfileと一緒にそれを持っていくのが一番手っ取り早く安全っぽいので、そういうスクリプトを書こうと心に決めた。
2014/10/04 今日読んだもの
VPNサーバー構築(OpenVPN)
Vagrantでpublic_networkで作った仮想マシンに一通り設定を流して、ルーターのポートフォワードだけであっさりとVPN完成。非常に楽だけど、得られる効果が抜群ですごい助かる。
2014/10/02 今日読んだもの
vagrant-vbox-snapshot プラグインで Vagrant のスナップショットを管理する
もうちょっと早めにスナップショットのプラグインを探しておけば、ここ数日の作って壊しての手間が減っていた。
2014/09/29 今日読んだ記事
CentOS6をホストとしていて、かつ.ssh/configに頼ったAnsibleは動かない
ansible-tutorial/wiki/SSH
RH系の環境では、Ansibleのssh接続にデフォルトでparamikoを使うので、~/.ssh/configを見に行かないって話。解決にかなり時間かかったけど、Twitterでアドバイスとか貰ってここに辿りつけた。助かった。
[Vagrant] Vagrant で複数のVM を立ち上げて、お互いに通信できるようにするには [VirtualBox]
なるほど、これでVagrantfileの記述が減る。というか、Vagrantfileをgit管理するのに一括で済んで非常に楽。
2014/09/28 今日読んだもの
bennojoy/mysql
https://github.com/bennojoy/mysql
なるほど、こうやってAnsibleで環境ごとの違いを吸収するのか、と理解
2014/09/26 今日読んだもの
下書きだけして公開を忘れてた
Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで)
http://qiita.com/emadurandal/items/a60886152a4c99ce1017
ちょい情報古いけど、参考にしてRailsの開発環境つくった。それにしても、bundlerは便利だけどrbenvは超めんどくせえなこれ。
tmux内のvimでclipboardにunnamedが含まれるとヤンク・コピーができない
面倒なことこの上ない
Ruby on Rails チュートリアル
http://railstutorial.jp/
ちょっとずつ読んでく
4.6.7. 権限の変更が反映するタイミング
http://dev.mysql.com/doc/refman/5.1/ja/privilege-changes.html
しらんかった
2014/09/25 今日読んだ記事
Tokyo Nomad Work|AYAKOの東京ノマドカフェ図鑑
http://hlywd.co.jp/cafe/
近くLT大会をやるので、会場探しに検索してたらなんかいいかんじのページ見つけたのでしばらく読んでた
fdiskって、2Tを超えるHDDにパーティション切れないんだね
正確には2Tかどうか調べてないけど、fdiskコマンドは容量の大きなストレージに対してパーティションが切れない
自分の運用では特にパーティションが必要なかったため、次のコマンドでディスク自体をフォーマット。いいのか悪いのかはいまいちわからないけど、とりあえず動いている。
mkfs -t ext4 /dev/sdb
partedというコマンドを使うとパーティションが切れるらしいが、aptitude search しても一発で出てこなかったのと、特に今はパーティション必要ないので、後日調べる。
2014/09/24 今日読んだもの
あまりにも忘れすぎるので、毎日読んだものを記録するように努力する
テキストからの評判分析と 機械学習
http://www.iip.ist.i.kyoto-u.ac.jp/sigfpai/past/sigfpai73-kaji.pdf
少し古いけど、昔読んだのを再読
Option型のmapとflatMapがようやくわかった(Scalaの話)
Scalaを始めて1ヶ月と少し。Option型のmapとflatMapを使う場面が現れ、一体こいつが何なのかを理解するのに時間がかかった。
mapは、A => B の関数を引数に取る。Option[A]の中身を取り出して、Some(A)の場合はA => B を適用し、Option化して返す。
内側でやっていることは
@inline filan def map(f: A => B): Option[B] =
if(isEmpty) None else Some(f(this.get))
で、一番頭を悩ませたのがflatMapで、一体こいつは何のために居るのかで悩んだ。
flatMapの定義はこんなかんじ
@inline final def flatMap[B](f: A => Option[B]): Option[B] =
if(isEmpty) None else f(this.get)