【構成管理ツール】Chef Server 12を、MacとUbuntuで構築してみた【使ってみた】
2015/07/08
Chef Server 12の環境を構築します。
今回の投稿はChefに関する知識がある程度ある人用ですので、Chef何それ美味しいのという人は用語とか調べながら環境構築して頂ければ幸いです。
<今回の環境>
いつもどおりAWS上に環境を構築します。詳細は以下のとおり。
1.Chef Server用のEC2 FQDN:chef-server.k-staging.com hostname:chef-server.k-staging.com OS:Ubuntu 14.04.2 LTS InstanceType:t2.medium IdentityFile:~/chef.pem 2.Chefを使って構築したい対象 FQDN:chef-client.k-staging.com hostname:chef-client.k-staging.com OS:Amazon Linux AMI release 2015.03 InstanceType:t2.micro IdentityFile:~/chef.pem 3.Workstation用の端末 OS:Mac OS X
<Chef Serverインストール>
以下を、chef-server.k-staging.com(Chef Server用のEC2)で実行します。
ホスト名の変更、必要なものをインストール。
$ sudo vim /etc/hostname chef-server.k-staging.com(ChefServerのホスト名) $ sudo hostname chef-server.k-staging.com $ sudo vim /etc/hosts 127.0.0.1 chef-server.k-staging.com ←追記 54.XX.XX.XX chef-server.k-staging.com ←追記(Public IP) $ sudo apt-get update $ sudo apt-get install -y ntp ←必須ではないが入れておく $ sudo apt-get install -y ruby ruby-dev
Chef Serverインストール
$ wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core_12.1.0-1_amd64.deb $ sudo dpkg -i chef-server-core_12.1.0-1_amd64.deb $ sudo chef-server-ctl install opscode-manage $ sudo chef-server-ctl reconfigure $ sudo opscode-manage-ctl reconfigure
ユーザー作成
$ sudo chef-server-ctl user-create k(ユーザー名) k(名前) staging(苗字) mail@k-staging.com(メールアドレス) hogefuga(パスワード) --filename k.pem(ユーザー用の秘密鍵)
Organization作成
$ sudo chef-server-ctl org-create staging(organizationのショートネーム) STAGING(organizationのフルネーム) --association k(ユーザー) --filename k-validator.pem(Organization用の秘密鍵)
これでchef-serverのWeb画面にログインできる状態になったので
ログインしてみましょう。
https://chef-server.k-staging.com/login
ユーザー名とパスワードは先ほど発行したものを入力します。
<chef-client用の設定>
chef-client.k-staging.com(Chefを使って構築したい対象)のホスト名を変更。
あとリモートからsudoできるよう設定変更します。
$ sudo vim /etc/sysconfig/network HOSTNAME=chef-client.k-staging.com ←HOSTNAMEの行を変更 $ sudo vim /etc/hosts 127.0.0.1 chef-client.k-staging.com ←追記 54.X.X.X chef-client.k-staging.com ←追記(Public IP) $ sudo hostname chef-client.k-staging.com $ sudo visudo # Defaults requiretty ←コメントアウト Defaults:root !requiretty ←追記
<MacでのWarkstation環境構築>
MacをWorkstationとして設定します。下記URLからChef DKをダウンロードしてください。
https://downloads.chef.io/chef-dk/mac/#/
ダウンロードできたら指示に従ってインストールして下さい。
インストールが完了したら、Workstationとして利用できるようにします。
$ mkdir ~/.chef && cd ~/.chef $ scp -i ~/chef.pem ubuntu@chef-server.k-staging.com:/home/ubuntu/k.pem . $ knife ssl fetch -s https://chef-server.k-staging.com/organizations/staging/ $ knife configure WARNING: No knife configuration file found Where should I put the config file? [/Users/k/.chef/knife.rb] 空エンター Please enter the chef server URL: [https://k.local:443] https://chef-server.k-staging.com/organizations/staging Please enter an existing username or clientname for the API: [k] k Please enter the validation clientname: [] 空エンター Please enter the location of the validation key: [] 空エンター Please enter the path to a chef repository (or leave blank): ~/chef $ vim ~/.bashrc export EDITOR=/usr/bin/vim ←追記(これを追記しておかないと、knife role edit等が使えない) $ source ~/.bashrc $ mkdir -p ~/chef/cookbooks
<MacからChef Clientのnode登録と、Recipeを実行する>
Macで以下のコマンドを実行して下さい。
chef-client.k-staging.com(Chefを使って構築したい対象)へChef Clientをインストールし、Chef Serverへnode登録を行います。
$ knife bootstrap chef-client.k-staging.com --node-name chef-client.k-staging.com --ssh-user ec2-user --identity-file ~/chef.pem --server-url https://chef-server.k-staging.com/organizations/staging --sudo --bootstrap-install-command "curl -L https://www.chef.io/chef/install.sh | bash"
chef-client.k-staging.comで実行したいrecipeを作ります。
今回はtd-agentをインストールするrecipeを作成。
$ knife cookbook create td-agent $ vim ~/chef/cookbooks/td-agent/recipes/default.rb execute "td-agent install" do user "root" group "root" command "curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh" action :run end service "td-agent" do action [ :enable, :start ] end $ knife cookbook upload td-agent
chef-client.k-staging.comのRun Listにtd-agentを追加。
$ knife node run_list add chef-client.k-staging.com "recipe[td-agent]"
chef-clientを実行。
$ knife ssh 'name:chef-client.k-staging.com' 'sudo chef-client' --ssh-user ec2-user --identity-file ~/chef.pem --server-url https://chef-server.k-staging.com/organizations/staging
td-agentがインストールできたか確認します。
$ knife ssh 'name:chef-client.k-staging.com' 'sudo /etc/init.d/td-agent status' --ssh-user ec2-user --identity-file ~/chef.pem --server-url https://chef-server.k-staging.com/organizations/staging chef-client.k-staging.com td-agent(pid XXXXX)を 実行中 ...
td-agentがインストールされてますね!
関連記事
-
【AWS】ELB配下にあるEC2で、htaccessファイルを使う時の注意点【使ってみた】
あけまして、おめでとうございます。 本年も宜しくお願い致しますm(_ _)m 今 …
-
【td-agent】td-agentをインストールしてみた【使ってみた】
どうも、Kです。 今回はtd-agentをインストールしようと思います。 <やり …
-
【AWS】キーペアのインポートをしてみた【使ってみた】
どうも、Kです。 今回はキーペアのインポートを試してみたいと思います。 &nbs …
-
【俺のNagiosが】NRPEインストールしてみた【こんなに使いやすいわけがない】
前回に引き続きNagiosについて紹介させていただきます。 <前回のやつ> h …
-
【俺のNagiosが】Nagiosインストールしてみた【こんなに使いやすいわけがない】
おれいもは1期しか見ていない、にわかのKです。最近はアニメすら見なくなってきたの …
-
【俺のNagiosが】Nagios・NRPEのcfg設定【こんなに使いやすいわけがない】
どうも、kです。 今回はNagios・NRPEを使ってサーバの監視を行ってみたい …
-
【AWS】EC2にS3をマウントしてみた【使ってみた】
どうも、Kです。 今回はs3fsを使ってみます。 <s3fsとは?> Linux …