さくらVPSにchef-serverとchef-clientをインストールする



さくらVPS環境で、‥その後、chef-soloをインストールしてみる」で、「openssl.so: undefined symbol」というエラーがでてしまい
途中で終わっていたので、インストールをやりきってみました。「How to Get Started」という記事を参考にしたのですが、
途中で、「Configure a server as a Chef client」というのもでてきてしまったので、ついでにchef-serverのインストールもしてみました。
 

目的

Amazon Web ServiceやVPS環境で似たような環境を構築する時に、手間をかけないであるていど構築できないかと
思い調べてみます。Puppetというツールもありますが、Ruby1.9で動かない?ようなので、chefの方を試してみます。*1

世間で流行っているみたいなので、ついでにどんなソフトを利用しているのか確認をしてみます。
 

前提

前提は、下記の通りです。

  • How to Get Started」を参考に環境を構築してみます。
  • 4. Setting Up a Chef Client」で「Configure a server」というものがでてきたのでついでにサーバ機能もインストールしてみた。
  • chefのインストールで終わっているので、使い方に関しては、まだ確認中です。

 

設定してみる

設定をしてみます。
 

openssl.soのエラーを解決しておく

さくらVPS環境で、‥その後、chef-soloをインストールしてみる」で、「openssl.so: undefined symbol」というエラーがでてしまったところは、下記のような感じで対処しました。

ruby extconf.rb --with-openssl-include=/usr/include --with-openssl-lib=/usr/lib

インストール後、irbで確認してみます。

 $ irb
  irb(main):001:0> require 'openssl'
  => true

 

「Create your Chef repository」を実施する

2. Setting Up Your User Environment」の記事を元に設定をおこなっていきます。

 $ cd ~
 $ git clone http://github.com/opscode/chef-repo.git
 $ mkdir -p ~/chef-repo/.chef
 $ cp USERNAME.pem ~/chef-repo/.chef
 $ cp ORGANIZATION-validator.pem ~/chef-repo/.chef
 $ cp knife.download ~/chef-repo/.chef/ knife.rb
 $ cd ~/chef-repo
 $ knife client list
  [
  "ORGANIZATION-validator"
  ]

 
knife.rbの中身はなにが書かれているか確認をしておきます。

 $ cat ~/chef-repo/.chef/knife.rb
  current_dir = File.dirname(__FILE__)
  log_level :info
  log_location STDOUT
  node_name "USERNAME"
  client_key "#{current_dir}/USERNAME.pem"
  validation_client_name "ORGANIZATION-validator"
  validation_key "#{current_dir}/ORGANIZATION-validator.pem"
  chef_server_url "https://api.opscode.com/organizations/USERNAME"
  cache_type 'BasicFile'
  cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
  cookbook_path ["#{current_dir}/../cookbooks"]

 

Cookbooksを取り込む

「3. Working with Cookbooks」の記事を元に、 「local chef-repo」にCookbooksを取り込みます。

 $ cd ~/chef-repo
 $ knife cookbook site vendor getting-started
 $ cd ~/chef-repo
 $ knife cookbook upload getting-started
 $ cd ~/chef-repo
 $ knife cookbook list
  [
   "getting-started"
  ]

 
とりあえず、意味半分くらいしか理解してませんが、取り込みができたみたいです。
 

workstationの設定をおこなってみます。

 $ cd ~/chef-repo
 $ knife configure client ./client-config
 $ ls -l client-config
  合計 8
  -rw-r--r-- 1 id work 153 4月 3 20:45 client.rb
  -rw-r--r-- 1 id work 1675 4月 3 20:45 validation.pem
 $ sudo chef-client
   [sudo] password for id:
   [Mon, 04 Apr 2011 19:27:24 +0900] INFO: Starting Chef Run (Version 0.9.14)
   [Mon, 04 Apr 2011 19:27:25 +0900] WARN: Node FQDN has an empty run list.
   [Mon, 04 Apr 2011 19:27:27 +0900] INFO: Chef Run complete in 2.528441 seconds
   [Mon, 04 Apr 2011 19:27:27 +0900] INFO: cleaning the checksum cache
   [Mon, 04 Apr 2011 19:27:27 +0900] INFO: Running report handlers
   [Mon, 04 Apr 2011 19:27:27 +0900] INFO: Report handlers complete
   $ knife node list
    [
     "FQDN"
    ]

 
なんとか記事の通りできたようです。
 

「Manual Chef Server Configuration」を実施する

Manual Chef Server Configuration」を元にChef Server機能を
インストールしようと思いましたが、少し長くなりましたので、次回に続こうと思います。
 


*1:きちんと調べてないので嘘書いてるかも。