LoginSignup
3

More than 5 years have passed since last update.

【CentOS7】ChefServer構築手順(ChefServerとWorkstationを同一ホストに共存させる場合)

Last updated at Posted at 2016-10-31

調べても調べてもChefSoloの構築方法ばかり…。
ChefServerを構築したので手順をまとめます。

備忘録です。

前提

  • CentOS7
  • ChefServer + Client構成
  • Chef-soloじゃないよ
  • Workstationとchefserverを同居させます。
  • Vagrant使います
  • Chef-Server12.6.0でやります。

仮想サーバを立てる

Vagrantfile

Vagrant.configure(2) do |config| 

    $script = <<EOF 
        yum install wget 
        yum -y install ibus-kkc vlgothic-* 
        localectl set-locale LANG=ja_JP.UTF-8 
        source /etc/locale.conf 
    EOF 

    config.vm.define "chef-server" do |node| 
        node.vm.box = "CentOS7.0" 
        node.vm.hostname = "chef-server" 
        node.vm.network :public_network 
        node.vm.network :private_network, ip: "192.168.100.5" 
        node.vm.provision :shell, :inline => $script 
    end 

    config.vm.define "chef-client01" do |node| 
        node.vm.box = "CentOS7.0" 
        node.vm.hostname = "chef-client01" 
        node.vm.network :public_network 
        node.vm.network :private_network, ip: "192.168.100.6" 
        node.vm.provision :shell, :inline => $script 
    end 

end 

ローカル
$ vagrant up 

ChefServerインストール

vagrantで立ち上げたホスト「chef-server」に対してインストールします。

192.168.100.5
#chefの動作要件に、sslちゃんとやれと書いてあった気がする 
$ sudo yum install -y wget ntp openssl-devel 
#chefの動作要件に、NTPちゃんとやれと書いてあった気がする 
$ sudo ntpdate ntp.nict.jp 
#chefServerのrpmを落としてくる 
$ wget https://packages.chef.io/stable/el/7/chef-server-core-12.6.0-1.el7.x86_64.rpm 
#ChefServerをインストールする 
$ sudo rpm -Uvh ./chef-server-core-12.6.0-1.el7.x86_64.rpm 
#なんか設定する 
$ chef-server-ctl reconfigure 
#確認する 
$ chef-server-ctl status 
#テストする 
$ chef-server-ctl test 
#ユーザをつくる 
$ chef-server-ctl user-create admin firstname familyname spinach.jp@gmail.com 'P@ssw0rd' --filename /home/vagrant/.chef/admin.pem 
#グループ的なやつを作る 
$ chef-server-ctl org-create chef "Chef" --association_user admin --filename /etc/chef-server/chef-validator.pem 

Workstationのインストール

ChefServerに対してCookbookをアップロードしたりいろいろするWorkStationをインストールします。

192.168.100.5
$ wget https://packages.chef.io/stable/el/7/chefdk-0.14.25-1.el7.x86_64.rpm 
$ rpm -Uvh ./chefdk-0.14.25-1.el7.x86_64.rpm 

#workstationのknifeを設定 
$ knife configure 
#適当にEnter連打 
#すると、~/.chef/knife.rbが出力されるので編集する 
$ vi ~/.chef/knife.rb 

↓こうする

knife.rb
log_level                :info 
log_location             STDOUT 
node_name                'admin' 
client_key               '/home/vagrant/.chef/admin.pem' 
validation_client_name   'chef-validator' 
validation_key           '/etc/chef-server/chef-validator.pem' 
cookbook_path [ '~/chef-repo/cookbooks'] 

chef_server_url          'https://chef-server:443/organizations/chef' 
syntax_check_cache_path  '/home/vagrant/.chef/syntax_check_cache' 
192.168.100.5

#動作確認 
$ cp /var/opt/opscode/nginx/ca/chef-server.crt /root/.chef/trusted_certs/ 
$ knife ssl check 
Connecting to host chef-server:443 
Successfully verified certificates from `chef-server' 

注意点
ChefServerへはIP指定でのアクセスではなく、名前解決できるドメイン名でアクセスする必要があります。
その為、/etc/hostsの中身に、chef-server を記載しておく必要があります。

ChefClientインストール

Workstationから、対象のサーバに対してChefClientをインストールします。
ちなみに、この作業と同時に、対象のホスト情報がChefServerに登録されます。

192.168.100.5
knife bootstrap 192.168.100.6 -x root -P vagrant --sudo 

Cookbookの作成

192.168.100.5
$ mkdir ~/chef-repo 
$ cd ~/chef-repo 
$ mkdir cookbooks 
$ cd cookbooks 
$ chef generate cookbook create_httpd 
$ chef generate template create_httpd index.html

レシピの反映

192.168.100.5
#レシピをいじったら、ChefServerに対してアップロード 
$ knife upload cookbook
#対象のホストからchef-clientコマンドを実行
$ knife ssh  192.168.100.6 'sudo chef-client' --manual-list --ssh-user root --ssh-password 'vagrant' 

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
3