概要
立派な Chef になりたいので、Vagrant を導入し、仮想環境で Chef Solo のお勉強をしてみたいと思います。
まずは Vagrant と Chef の導入を行ってみます。
Chef とか全く触ったことない!とりあえず触ってみたいけど、試しに触るための導入ってどうしたら良いの!?と言った人向けです。
環境は OS X Yosemite 10.10.4 で行っています。
Vagrant
まずは Vagrant を導入します。環境構築を便利にしてくれる素敵なツールです。
インストール
以下の2つのソフトを公式サイトからダウンロードしインストールします。
- VirtualBox
- Vagrant
インストールができているかどうかvagrant -v
を叩いてみて確認してみます。
$ vagrant -v
Vagrant 1.7.3
入りました!
Vagrant box add
仮想イメージ Bento から Vagrant に追加します。
Vagrant 用 OS イメージは「box」と呼ばれるているそうです。
今回は CentOS 7.1 を選択します。
$ vagrant box add opscode-centos-7.1 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.1_chef-provisionerless.box
Vagrant up
まずはvagrant init
を叩き Vagrantfile という設定ファイルをカレントディレクトリに作成します。
カレントディレクトリにできるとのことだったので、~/work/chef-exercise
というディレクトリを作ってそこで実行しました。
$ vagrant init opscode-centos-7.1
Vagrantfile のファイルの中身な以下のコードと大量のコメントとなっていました。
Vagrant.configure(2) do |config|
config.vm.box = "opscode-centos-7.1"
end
ちゃんと設定したくなったら色々読んでみます。
vagrant up
を叩けば仮想サーバが起動します。
$ vagrant up
仮想サーバへのログインはvagrant ssh
で行えます。
$ vagrant ssh
Last login: Sat Apr 4 08:04:39 2015 from 10.0.2.2
[vagrant@localhost ~]$
入れました!
ちなみに、サーバの停止はvagrant halt
、サーバの破棄はvagrant destroy
で行えるそうです。
SSH configuration
ssh <hostname>
でログインしたいので、~/.ssh/config
に設定を記載します。
ssh config 用の設定はvagrant ssh-config
で出力できるそうです。
$ vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/necojackarc/work/chef-exercise/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
下記の通り叩けば、~/.ssh/config
に設定を追記できます。
今回はホスト名をchef-ex
としました。
$ vagrant ssh-config --host chef-ex >> ~/.ssh/config
試しに入ってみます。
$ ssh chef-ex
Last login: Thu Jul 16 05:12:38 2015 from 10.0.2.2
[vagrant@localhost ~]$
ログイン大成功!
Network configuration
現在 localhost の 2222番ポートに接続しているので、プライベートネットワーク設定を行い、Private IP を割り当てます。
Vagrant のプライベートネットワーク設定に関する説明は以下の記事が良さそうでした。
Vagrantfile 内で network で検索したら該当箇所が見つかったため、これのコメントアウトを外します。
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.10"
設定反映のために再起動します。
$ vagrant halt
$ vagrant up
試しに接続してみます。
$ ssh -i /Users/necojackarc/work/chef-exercise/.vagrant/machines/default/virtualbox/private_key vagrant@192.168.33.10
Last failed login: Thu Jul 16 05:34:15 UTC 2015 from 192.168.33.1 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Thu Jul 16 05:33:18 2015 from 10.0.2.2
[vagrant@localhost ~]$
できましたー!!
Chef Solo
仮想マシンにログインし、Chef をインストールします。
Chef Solo は Chef に付属しているそうです。
$ vagrant ssh
$ curl -L https://www.opscode.com/chef/install.sh | sudo bash
動作確認します。
$ chef-solo -v
Chef: 12.4.1
入った入った!
まとめ
導入はあっさり終わりました。
次は資料を参考に実際に Chef を触ってみたいと思います。
立派なシェフ目指して進み始めます……!