Vagrant の Box を作る

Redmine を使う環境を構築しようと思ったが、せっかくなので掲題を試してみようと思った次第。
検索すると、以下のサイト様の通りで全然OKで言うことなかった。すごいね。

Vagrant の VirtualBox 用 Base Box ファイルを手動で作ってみる | CUBE SUGAR STORAGE

CentOS7の通常DVDイメージを使ってインストールした。
f:id:yossk:20151025213722j:plain

NICの設定とかはインストール時にやってしまった。

今回、勉強も兼ねて itamae を使って設定してみた。

github.com

で、最初は上記サイト様の操作コマンドをそのまま command にして記述していたいのだが、何度も実行するのには向いていない。
そもそも何度も実行することはないのだが、気にはなる。
正しいかどうかは分からないが、結局 sshd_config や sudoers ファイルをホストに置いて、それを remote_file 使うと勝手に diff 見てくれるので便利。
下の感じでどうだろ。

# sshd config
remote_file "/etc/ssh/sshd_config" do
  owner "root"
  group "root"
  source "recipes/remote_files/sshd_config"
  mode "0600"
end

# vagrant
remote_file "/etc/sudoers" do
  owner "root"
  group "root"
  source "recipes/remote_files/sudoers"
  mode "0440"
end

directory "/home/vagrant/.ssh" do
  owner "vagrant"
  group "vagrant"
  mode "0700"
  action :create
end

execute "vagrant public key" do
  user "vagrant"
  command "curl -L -o /home/vagrant/.ssh/authorized_keys  https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub"
end

file "/home/vagrant/.ssh/authorized_keys" do
  owner "vagrant"
  group "vagrant"
  mode "0600"
end

service "sshd" do
  action :restart
end