昨日の続き。
vagrant + chefのインストール
ここはvagrant + chefをwindowsで使えるようにした - わすれっぽいきみえとまったく同じ作業。
各種設定について次から見ていく。
vagrantにおける公開鍵認証の検証
> vagrant ssh cygwin warning: MS-DOS style path detected: D:/Users/kimikimi714/.vagrant.d/insecure_private_key Preferred POSIX equivalent is: /cygdrive/d/Users/kimikimi714/.vagrant.d/insecure_private_key CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames [vagrant@vagrant-centos64 ~]$
まずログインはできる。じゃあ今度はvagrant ssh
ではなくssh vagrant
できるようにしよう。
cwRsyncでインストールされたsshが読み込む.ssh/config
ファイルはデフォルトだと/home/kimikimi714
下になってしまうので、
windowsのユーザー環境変数に次を追加する。
> set HOME="%USERPROFILE%" > echo "%HOME%" "D:\User\kimikimi714"
ここの%USERPROFILE%
は環境変数で、cmdで単にset
と打ってやれば確認できる。
昨日の記事
でレジストリの変更を行っておいたおかげで"D:\User\kimikimi714"
が設定されている状態。%USERPROFILE%
が見つからなければ直接set HOME="D:\User\kimikimi714"
としてやってもいい。
今後はD:\User\kimikimi714\.ssh
下にあるconfigファイルを読み込むようになる。
configファイルの設定を行うために次のコマンドを実行。
> vagrant ssh-config --host vagrant Host vagrant HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile D:/Users/kimie/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL
ここのHostName 127.0.0.1
をVagrantfileのconfig.vm.network
で設定した値に変え、
Port 2222
をPort 22
に変更、LogLevel
の行を削除してD:\User\kimikimi714\.ssh\config
に追記。
そのうえでssh実行。
> ssh vagrant cygwin warning: MS-DOS style path detected: D:/Users/kimikimi714/.vagrant.d/insecure_private_key Preferred POSIX equivalent is: /cygdrive/d/Users/kimikimi714/.vagrant.d/insecure_private_key CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames [vagrant@vagrant-centos64 ~]$
できた。
chefのレシピが流し込めるか
ssh vagrant
と実行しただけでvagrantインタンスにログインできるようになったので、これを使ってchefのレシピを流し込めるようにする。
とりあえずsandboxモードにしておこう。
> vagrant sandbox on 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% > vagrant sandbox status [default] Sandbox mode is on
chefのリポジトリを準備。
> knife solo init chef-repo > cd chef-repo > knife solo prepare vagrant Bootstrapping Chef... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 14101 100 14101 0 0 2101 0 0:00:06 0:00:06 --:--:-- 23540 Downloading Chef 11.6.0 for el... downloading https://www.opscode.com/chef/metadata?v=11.6.0&prerelease=false&p=el &pv=6&m=x86_64 to file /tmp/install.sh.1737/metadata.txt trying curl... url https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.6. 0-1.el6.x86_64.rpm md5 *** sha256 *** downloaded metadata file looks valid... downloading https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-1 1.6.0-1.el6.x86_64.rpm to file /tmp/install.sh.1737/chef-11.6.0.x86_64.rpm trying curl... Checksum compare with sha256sum succeeded. Installing Chef 11.6.0 installing with rpm... warning: /tmp/install.sh.1737/chef-11.6.0.x86_64.rpm: Header V4 DSA/SHA1 Signatu re, key ID 83ef826a: NOKEY Preparing... ########################################### [100%] 1:chef ########################################### [100%] Thank you for installing Chef! Generating node config 'nodes/vagrant.json'...
おお!いけそういけそう!
nodes\vagrant.jsonにはよしなにレシピを書いておいてknife solo
を実行してみる。
> knife solo cook vagrant (なんかいろいろ) Chef Client finished, 21 resources updated
ひとまずhttp://localhost/にアクセスしてapacheのデフォルト画面が見れることを確認できた! 本当はいろいろ書いてるレシピだったけど、そこは割愛で。
前回のknife soloよりよくなったところ
いちいち鍵の指定をしなくてよくなったことだと思う。
鍵が一体どこにあって、どこに鍵の設定ファイルがあるのかを環境変数とかでちゃんと指定してやらんといけないところが前よりはきれいになったんじゃないかな。
-i
オプションとか正直めっちゃ面倒くさかったし、えーこれvagrantインスタンス作るたびに設定しなきゃいけないのー?って自分でも思ってたから設定できてよかった。
今度チャレンジしてみたいこと
- Multi-Machine - Vagrant Documentationに書かれてるんだが、サーバ間通信を多数のvagrantインスタンスを立ち上げることでいろいろ遊べる*1と書いてあって、目的ごとに違うchefのレシピを作り、それを各vagrantインスタンスに流し込んで通信させるみたいなことをして遊べるんじゃないかなぁと思った。そこらへんができたら前に書いたRabbitMQの話だったり、HUBOTの話だったりいろいろ突っ込んで遊べるなぁと。
- 今回特に思ったのが、レシピが正しくサーバに反映されているか確認するというのが非常に重要だなぁと。そしてその手段としてのserverspecを触ってみたいなぁと思った。
- レシピだのなんだの言ってるけど、そもそもrubyの勉強そんなにしてないわーという根本的問題。
- centosばっか使ってて、ほかのunix系OSはmac以外使ってないからほかも触ってみたいな。
これでクリーンインストール終わったけれども、まぁSSDの寿命って2から5年ってところだという話だし、そもそもSSD買い替え考えたほうがいいかもしれない。
1TBのHDDはうまくやればまだ使えそうだけど、データがいつ何時ぶっ飛んでもいいようにしておかないとな。
それにいまやwindows8.1がある時代だし。とはいえヨドバシまで行ってちょこっとデモを触ってみた感じ、あっwin7でいいやって思ってしまった。
参考リンク
- 3.環境変数 (4)環境変数一覧 〜全部見せます〜 【コマンドプロンプト、バッチファイルを使わなきゃならなくなった人向けのメモ】 - みちしるべ
- http://www.unixuser.org/~euske/doc/openssh/jman/ssh_config.html
- Vagrant
- Chef | IT automation for speed and awesomeness | Chef
- Serverspec - Home
*1:ああ、すみません。遊べるとは書いてないです。いろいろテストできるよって書いてあります。ついワクワク感が先行してしまって