Chef

Vagrant と連携してみる

まとりあえず

$ vagrant init hogehoge
$ vagrant up

で動かせるところまでもってきておく

Berksfile を作る。内容は

source "https://api.berkshelf.com"
 
cookbook 'jenkins'

こんな感じ。外部から Cookbook を取ってくることにして jenkins をインストールしてみる

指定した Cookbook をホスト側(Mac)へダウンロードしてみる

$ chef exec berks vendor cookbooks

これで Berkfile.lock ファイルが生成される。これは Gemfile.lock と一緒で Berkfile の定義に基いて実際に必要な cookbook が決定されたものが記述される。 そして cookbooks ディレクトリへ依存性を全部解決した上でのcookbook本体がダウンロードされる

そして Vagrantfile に

  config.vm.provision "chef_solo" do |chef|
    chef.cookbooks_path = "./cookbooks"
    chef.add_recipe "jenkins::java"
    chef.add_recipe "jenkins::master"
  end
  config.vm.provision :shell do |shell|
    shell.inline = "sudo systemctl stop firewalld"
  end
  config.vm.network "forwarded_port", guest: 8080, host: 8090
  config.omnibus.chef_version = :latest

このように書き足すと起動時に自動的にインストールされる。 ポイントとしてはここで指定するのは Cookbook ではなく recipe ということだ。 インストールできたら、ホストとのネットワークをポート転送で繋いでファイアーウォールを落としている。

Tag

server_configuration_management/chef/start.txt · 最終更新: 2019-03-01 19:00 by ore