QA@IT

現在chefについて

2644 PV

現在大学で将来インフラエンジニアとして勉強しております。

勉強にあたって構成管理のchefについてインストールして色々と勉強したいと思っておりますが
使い方がいまいちよくわからず困っております。
勉強不足で申し訳御座いませんが使用方法について御教示頂けますでしょうか。

※進捗ですがntpをインストールしてみましたがエラーが出ているのと
他にクックブックがありましたら教えて頂けますでしょうか。
詳しくは以下記載致しました。

Chef-solo、Knife-soloをインストールして、スタンドアロン構成で以下インストールしました。

現状はインストールまではうまくいっているもようです。

yumでzlib zlib-devel openssl openssl-develをインストール
Ruby2.2.2をソースからインストール
gem(rubygems-2.4.8)をソースからインストール
Chef-solo(Chef: 12.3.0)をインストール(curl -L https://www.opscode.com/chef/install.sh | bash)
chef Development Kitをrpmでインストール(rpm -ivh chefdk-0.6.0-1.el6.x86_64.rpm)
knife-soloインストールし初期設定済み(knife configure)


環境はAWSの一番安いプランにて立ち上げております。
# cat /etc/issue                                                                                                                                    
Amazon Linux AMI release 2015.03
Kernel \r on an \m

御多忙中のところ恐れ入りますがご確認の程お願い申し上げます。

ntpのインストールまでは完了しエラーはでるもののプロセスの起動は手動で行えました。
エラーはおそらく起動スクリプトで何かしら問題があると思われますが原因がつかめておりません。

また、他に何でもいいのでインストールする場合のCookbook等わかりやすいサイトがありましたら教えて頂けないでしょうか。

お手数ですがご教示の程お願い致します。



# mkdir /var/chef-repo
# cd /var/chef-repo
# knife cookbook create ntp -o ./cookbooks


# vi chef.json
----------------------------------------------------------------
{
  "run_list": [ "recipe[ntp]" ]
}
----------------------------------------------------------------



# vi recipes/default.rb 
----------------------------------------------------------------
# Cookbook Name:: ntp
# Recipe:: default
#
# Copyright 2015, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
package "ntp" do # ntpパッケージをインストールする
  action :install
end

service "ntp" do # ntpのサービスを定義
  supports :status => true, :restart => true
  action [ :enable, :start ]
end

template "/etc/ntp.conf" do # テンプレートファイルを元に設定ファイルを配備
  source "ntp.conf"
  group "root"
  owner "root"
  mode "400"
  notifies :restart, "service[ntp]" # 配備後にサービスを再起動
end
----------------------------------------------------------------





# vi templates/default/ntp.conf
----------------------------------------------------------------
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1 
restrict ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.amazon.pool.ntp.org iburst
server 1.amazon.pool.ntp.org iburst
server 2.amazon.pool.ntp.org iburst
server 3.amazon.pool.ntp.org iburst

#broadcast 192.168.1.255 autokey        # broadcast server
#broadcastclient                        # broadcast client
#broadcast 224.0.1.1 autokey            # multicast server
#multicastclient 224.0.1.1              # multicast client
#manycastserver 239.255.254.254         # manycast server
#manycastclient 239.255.254.254 autokey # manycast client

# Enable public key cryptography.
#crypto

includefile /etc/ntp/crypto/pw

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys

# Specify the key identifiers which are trusted.
#trustedkey 4 8 42

# Specify the key identifier to use with the ntpdc utility.
#requestkey 8

# Specify the key identifier to use with the ntpq utility.
#controlkey 8

# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats

# Enable additional logging.
logconfig =clockall =peerall =sysall =syncall

# Listen only on the primary network interface.
interface listen eth0
interface ignore ipv6

# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor
----------------------------------------------------------------


# mkdir /etc/chef
# cd /etc/chef
# vi solo.rb
----------------------------------------------------------------
file_cache_path "/var/chef-repo"
cookbook_path ["/var/chef-repo/cookbooks"]
----------------------------------------------------------------



# chef-solo -c ./solo.rb -j /var/chef-repo/chef.json
--------------------------------------------------------------
Starting Chef Client, version 12.3.0
Compiling Cookbooks...
Converging 3 resources
Recipe: ntp::default
  * yum_package[ntp] action install
    - install version 4.2.6p5-30.24.amzn1 of package ntp
  * service[ntp] action enable
    * service[ntp]: unable to locate the init.d script!
    ================================================================================
    Error executing action `enable` on resource 'service[ntp]'
    ================================================================================

    Chef::Exceptions::Service
    -------------------------
    service[ntp]: unable to locate the init.d script!

    Resource Declaration:
    ---------------------
    # In /var/chef-repo/cookbooks/ntp/recipes/default.rb

     13: service "ntp" do # ntpのサービスを定義
     14:   supports :status => true, :restart => true
     15:   action [ :enable, :start ]
     16: end
     17: 

    Compiled Resource:
    ------------------
    # Declared in /var/chef-repo/cookbooks/ntp/recipes/default.rb:13:in `from_file'

    service("ntp") do
      action [:enable, :start]
      supports {:status=>true, :restart=>true}
      retries 0
      retry_delay 2
      default_guard_interpreter :default
      service_name "ntp"
      pattern "ntp"
      declared_type :service
      cookbook_name :ntp
      recipe_name "default"
    end


Running handlers:
[2015-06-13T06:54:46+00:00] ERROR: Running exception handlers
Running handlers complete
[2015-06-13T06:54:46+00:00] ERROR: Exception handlers complete
[2015-06-13T06:54:46+00:00] FATAL: Stacktrace dumped to /var/chef-repo/chef-stacktrace.out
Chef Client failed. 1 resources updated in 2.943146984 seconds
[2015-06-13T06:54:46+00:00] ERROR: service[ntp] (ntp::default line 13) had an error: Chef::Exceptions::Service: service[ntp]: unable to locate the init.d script!
[2015-06-13T06:54:46+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
--------------------------------------------------------------
  • /var/chef-repo/chef-stacktrace.outは読んでみましたか?あと、ntpのインストールに失敗しててinitスクリプトが無いみたいです。とりあえず書籍や@ITのchefの記事を読んでみてはいかがですか。 -
  • https://github.com/gmiranda23/ntp ntpのcookbookのご紹介。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。