vagrantfileによる環境構築 | Docker導入まで

Vagrantは環境汚染を気にせず、ああでもない、こうでもないと悩みながら環境構築をコード化できるので、素敵です。また、Vagrantfileで環境構築ができれば、Dockerでもできるだろう...という淡い期待を抱いています。

本日進んだところ

Vagrant.configure("2") do |config|
  # インストールするOS
  config.vm.box = "minimal/centos7"
  # 勝手にアップデートしないための設定 (いらないかも)
  config.vm.box_check_update = false
  # 解放するポート (8080は使った記憶があるため、他の適当な番号にしました)
  config.vm.network "forwarded_port", guest: 80, host: 8085

  # VirtualBoxの設定
  config.vm.provider :virtualbox do |vb|
    ## VirtualBoxマネージャー上での名称設定
    vb.name = "docker-test"
    ## USB2.0を無効化
    vb.customize ["modifyvm", :id, "--usb", "on"]
    vb.customize ["modifyvm", :id, "--usbehci", "off"]
  end

  # CentOS作成後のshell上での実行コマンド
  config.vm.provision :shell, inline: <<-SHELL
    ## 参考URL: https://docs.docker.com/install/linux/docker-ce/centos/
    ## yum-utils => yum-config-manager, others => devicemapper
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    ## 安定板のレポジトリ追加
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    ## yumのパッケージインデックス更新
    sudo yum makecache fast
    ## 最新版のインストール
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    ## dockerを起動
    sudo systemctl start docker
    ## dockerを常時起動
    sudo systemctl enable docker
  SHELL
end

minimal/CentOS

仮想マシン上にDockerを載せるなら、CoreOSみたいな軽い方が良いと思ったのですが、CoreOSのデフォルトのパスワードが分からないため、minimal版のCentOSにしました。CentOSのrootユーザーのパスワードはvagrantになります。  VirtualBoxでOSを起動する場合は、ネットワーク設定やrootユーザー、一般ユーザの設定も手作業でするため、パスワードとか好きにできるのですが、Vagrantで自動化する場合は自由に選べない?みたい。  minimal版よりも半分近く軽いNetInstall版も試してみたい。パスワード設定ができるなら、CoreOSでやり直すのもありです。