Vagrantfile の書き方
Vagrant の基本的な設定
ベース box やネットワーク、共有ディレクトリなどの設定を記述します。
config.vm.box = ‘sl65-x64-chefs_meeting01’
Provider の設定
VirtualBox の VM の CPU コア数やメモリサイズなどの設定を記述します。
config.vm.provider :virtualbox do |vbox| vbox.customize [‘modifyvm’, :id, ‘--memory’, '2048'] vbox.customize [‘modifyvm’, :id, ‘--cpus’, '2'] end
設定項目などは VirtualBox のドキュメント [ https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvm ] を参照するとわかると思います。
Provisioner の設定
Chef で実行する Recipe や Attribute などの設定を記述します。
config.vm.provision :chef_solo do |chef| # cookbook のあるディレクトリの相対パスを指定 chef.cookbooks_path = [‘cookbooks’, ‘site-cookbooks’] # 実行する Recipe を指定 chef.run_list = [ ‘java’, ‘eclipse’ ] # Attribute を指定 chef.json = { java: {}, eclipse: {} }
Vagrant + Chef のディレクトリ構成
パス | 概要 |
---|---|
Vagrantfile | Vagrant の設定ファイル |
cookbooks/ | Community Cookbook や、Git リポジトリから取得した Cookbook などを配置 |
site-cookbooks/ | この VM 専用に自作した Cookbook を配置 |
jenkins Cookbook を Vagrant で
Cookbook を配置
作成した jenkins Cookbook をsite-cookbooks ディレクトリに配置します。
|- cookbooks/ `- site-cookbooks/ `- jenkins/
Vagrantfile を編集
jenkisn Cookbook の default Recipe を実行するように、Provisioner の設定を編集します。
Attribute も指定してみてください。
プロビジョニングを実施
vagrant のコマンドで、プロビジョニングを行います。
$ vagrant provision
うまくいけば、起動中の VM 上で Jenkisn サービスが起動します。
http://localhost:8080/ で Jenkins にアクセスしてみてください。