よく考えたら、Vagrantばっかり使ってて、Chef-Soloを実行できる環境をリモートマシンへ設定する方法がわかってなかったので、
それの勉強がてら、Capistranoでスクリプトを作っておいた。
まっさらなUbuntuを落としてきてから、Chef-soloを実行できるようにするまで(正確にはknife prepareを実行できるようにするまで)下記の手順を踏めばよかった。
手順
ローカルマシン側
sshをインストールする。
knife-solo(0.3.0)をインストールする。
下記コマンドでインストールできます。
sudo gem install knife-solo --pre
- capistrano(2.15.4)をインストールする。(その前にRubyもインストールする) ホントはversionがどれじゃないとダメ、とか知らないけど、とりあえずこれで動きました。
sudo gem install capistrano
リモートマシン側
- リモートマシンにSSHをインストール
sudo apt-get install openssh-server
- aptのアップデート
sudo apt-get update
-
sudo
をパスワード無しで実行できるようにする。下記ファイルに追記。rasennはsudoができるユーザ名(適宜変えてください)
rasenn ALL=(ALL) NOPASSWD:ALL
- パスワード無しでSSHログインできるようにする。
ローカルマシンの
~/.ssh/id_rsa.pub
をリモートマシンにアップロードし、内容をリモートマシンの~/.ssh/authorized_keys
に追記する。リモートマシンにアップロード後、下記コマンドを実行すればよい。
cat id_rsa.pub >> ~/.ssh/authorized_keys
最後に確認
これで準備が整ったので、ローカルマシンで下記コマンドを打って、エラーが出なければ万々歳。[host]はリモートマシン名。
knife solo prepare [host]
今回作ったCapistranoのファイルは下記にあります。
https://github.com/rasenn/capistrano
config/chef_solo.rb
が該当のスクリプトです。
簡単なはずなのに、ちょいちょいこけて手間取ってしまった。。。