LoginSignup
0
0

More than 5 years have passed since last update.

Chef-solo構築からapacheをインストール on Amazon Linux

Last updated at Posted at 2016-11-17

前提

  • Amazon Linux AMI(ami-b953f2da)
  • セキュリティグループのインバウンド:SSH22番、HTTP80番開いてること
  • Chef-solo version :12.16.42

Chef-soloのインストール流れ

まずインスタンスのパブリックIPにSSHで接続します。

Chefのインストール

$ sudo su -
# curl -L http://www.opscode.com/chef/install.sh | sudo bash
(もしくは# gem install chef)

リポジトリの作成

gitで作成するがgitが使えないのでgitインストール

# yum -y install git
# git clone git://github.com/opscode/chef-repo.git

クックブック作成with knife

まずknifeの初期設定
いろいろ聞かれるけど全てデフォルトでEnter押せばおk

# knife configure

クックブック作成

# cd chef-repo
# knife cookbook create hello -o cookbooks

default.rb(Rubyファイル)を編集

クックブックを作成したときにデフォルトでRubyファイルが
出来るのでそこを編集します。(まずはHello!!から)

# vi cookbooks/hello/recipes/default.rb
(ディレクトリそのまま)

#
# Cookbook Name:: hello
# Recipe:: default
#
# Copyright 2016, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log "Hello!!"

JSONファイルを作成する

Chef-soloを実行するときのレシピを書くJSONファイルをchef-repo直下に作成します。

# touch localhost.json
# vi localhost.json (JSONの中身に以下を記述します)

{
     "run_list" : [
         "recipe[hello]"
    ]
}

PATHを通すRubyファイルを作成する

solo.rbの中身はhelloがあるディレクトリまでのPATHを設定します

# touch solo.rb
# vi solo.rb

file_cache_path "/tmp/chef-solo"
cookbook_path ["/root/chef-repo/cookbooks"]

Chef-solo実行

以下のコマンドでChefの実行をします。
コマンドは環境に合わせてください(solo.rbとlocalhost.jsonがある場所による)

(ディレクトリはchef-repoのまま)
# chef-solo -c solo.rb -j ./localhost.json

Starting Chef Client, version 12.16.42
resolving cookbooks for run list: ["hello"]
Synchronizing Cookbooks:
  - hello (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 1 resources
Recipe: hello::default
  * log[Hello!!] action write


Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 01 seconds

成功です。

apacheのインストール

それじゃapacheをインストールしてみます。

Rubyファイルの編集

先ほどHello!!と書いたファイル(default.rb)を開いて以下を追記します。

(ディレクトリはrecipes)
# vi default.rb

#
# Cookbook Name:: hello
# Recipe:: default
#
# Copyright 2016, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log "Hello, Chef!"

package "httpd" do
  action :install
end

実行

# cd chef-repo
# chef-solo -c solo.rb -j ./localhost.json

Starting Chef Client, version 12.16.42
resolving cookbooks for run list: ["hello"]
Synchronizing Cookbooks:
  - hello (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 2 resources
Recipe: hello::default
  * log[Hello, Chef!] action write

  * yum_package[httpd] action install
    - install version 2.2.31-1.8.amzn1 of package httpd

Running handlers:
Running handlers complete
Chef Client finished, 2/2 resources updated in 03 seconds

できた!

apacheがインストールされてるか確認

(ディレクトリはchef-repo)
# httpd -v
Server version: Apache/2.2.31 (Unix)
Server built:   Jul 19 2016 00:11:31

apache起動確認

apacheを起動させる

(ディレクトリはchef-repoのまま)
# service httpd start
Starting httpd:                                            [  OK  ]

インスタンスのパブリックIPでブラウザに接続して
apacheのテストページが表示されれば成功です。

まとめ

Linuxでは簡単に出来る・・・(Windows Serverで成功したことないので)

0
0
0

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
0