LoginSignup
0

More than 5 years have passed since last update.

Windows上のknife zero でCentOSのプロビジョニング

Posted at

knife zero でCentOSのプロビジョニング

対象

  • クライアントOS Windows7
  • プロビジョニング対象ホストOS CentOS 6.7

対象ホストにインストールするもの

  • rbenv
  • ruby_build::system

クライアントの設定

.ssh/config 設定

まずIPアドレスとかでなく名前でアクセスしたいので ~/.ssh/config を編集する。

~/.ssh の場所は C:\Users\hogeuser.ssh

Host centos
HostName 192.168.0.200
Port 22
User hogeuser

ホストの名前、IPアドレス、ユーザーなどは環境に合わせて適宜設定する。

knife.rb 準備

あらかじめknife.rb を以下の内容で準備する。
どこかで「cookbook_pathを複数設定できない」とか見た気がするが、今のバージョンでは大丈夫っぽい。

ocal_mode true
chef_repo_path   File.expand_path('../' , __FILE__)
cookbook_path    [ 
  File.expand_path('../cookbooks' , __FILE__), 
  File.expand_path('../site-cookbooks' , __FILE__)
]

knife[:ssh_attribute] = "centos"
knife[:use_sudo] = true

knife[:automatic_attribute_whitelist] = %w[
  fqdn
  os
  os_version
  hostname
  ipaddress
  roles
  recipes
  ipaddress
  platform
  platform_version
  cloud
  cloud_v2
  chef_packages
]

対象ホストの準備

knife zero bootstrap コマンドを使ってプロビジョニング対象ホストにchef-clientをインストールさせる。

PS C:...\> knife zero bootstrap centos --ssh-user hogeuser --sudo

レシピ作成

Berksfile に以下を記述

source "https://supermarket.chef.io"

cookbook 'ruby_rbenv', :git => 'https://github.com/chef-rbenv/chef-rbenv.git'

Berksレシピ取込

PS C:...\> berks vendor cookbooks

他、自前のレシピが必要ならsite-cookbooksに作成しておく。

runlist、attribute設定

node.jsonを修正してrunlistなどを設定する。

runlist

  "run_list": [
    "recipe[ruby_build]",
    "recipe[ruby_rbenv::system]"
  ]

プロビジョニング 実行

いよいよ実行

PS C:...\> knife zero converge 'name:centos.example.com' --attribute ipaddress --ssh-user hogeuser --sudo

その他

本当は system globalに ruby 2.3.1をインストールした状態にしたかったのだけど、node.jsonの書き方を間違ったのかできなかった。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0