Top Banner
Cloudlive, Inc. Creationline, Inc. 1
52

S16 Microsoft Azure 上での Chef 環境の構成

Jul 17, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: S16 Microsoft Azure 上での Chef 環境の構成

Cloudlive, Inc.Creationline, Inc.

1

Page 2: S16 Microsoft Azure 上での Chef 環境の構成

更新履歴

• 以下の日付でドキュメントを更新、確認しています。

2

バージョン

1.00 2015/2/28 ・初版リリース

Page 3: S16 Microsoft Azure 上での Chef 環境の構成

目次

• Chef の概要• Chef とは?

• Chef のメリット

• 利用可能な OS /ディストリビューション

• Chef のアーキテクチャー

• Chef の基本的な用語

• Chef の利用形態

• Enterprise Chef Server について

• Open Source Chef Server について

• Microsoft Azure と Chef• Azure での Chef 利用

• Knife Azure コマンド例

3

Page 4: S16 Microsoft Azure 上での Chef 環境の構成

目次

• シナリオ例• シナリオ#1 Azure 管理ポータルからの操作

• シナリオ#2 Chef Workstation からの操作

• Appendix• Appendix#1 Microsoft Azure アカウントの作成

• Appendix#2 サブスクリプションファイルの取得

• Appendix#3 Enterprise Chef へのユーザー登録

• Appendix#4 Chef スターターキットの取得

• Appendix#5 client.rb (設定ファイル)の作成

• Appendix#6 Chef Workstation 構築手順

4

Page 5: S16 Microsoft Azure 上での Chef 環境の構成

5

Page 6: S16 Microsoft Azure 上での Chef 環境の構成

Chef とは?

米 Chef 社が提供するサーバー構築と構成管理の自動化フレームワークhttp://www.getchef.com/

6

Page 7: S16 Microsoft Azure 上での Chef 環境の構成

Chef のメリット

• 拡張性

• 効率的

• 世代管理

7

Page 8: S16 Microsoft Azure 上での Chef 環境の構成

利用可能な OS / ディストリビューション

• Windows Server 2003 R2(i686, x86_64)• Windows Server 2008 R2(x86_64)*• Windows Server 2008(i686, x86_64)• Windows Server 2012 R2(x86_64)*• Windows Server 2012(x86_64)*

• Debian 6, 7(i386, x86_64)• RHEL 5, 6(i686, x86_64)• CentOS 5, 6, 7 (i686, x86_64)*• Free BSD 9(adm64, i386)• OS X 10.6, 10.7, 10.8, 10.9 (x86_64)• SUSE Enterprise Linux 11.2(i386, x86_64)*• Solaris 5.9(sparc)• Solaris 5.10, 5.11(i386, sparc)• openSUSE 12.1(i686, x86_64)• Ubuntu 12.04 *, 12.10, 13.03, 13.10, 14.04 *(i386, x86_64)

※青色で表示されている OS は、Microsoft Azure でサポート

8

Page 9: S16 Microsoft Azure 上での Chef 環境の構成

Chef アーキテクチャー図(Chef Server / Client)

9

ServerChef Server各 Node の構成情報を集中管理

Chef WorkstationKnife プラグインがインストールされている

Client

Client

Node

NodeChef により管理されるサーバー

Page 10: S16 Microsoft Azure 上での Chef 環境の構成

Chef の基本的な用語 #1

• Server

• Client

10

Page 11: S16 Microsoft Azure 上での Chef 環境の構成

Chef の基本的な用語 #2

• Knife

プラグイン

http://docs.opscode.com/plugin_knife.html

• Recipe

• Cookbook

11

Page 12: S16 Microsoft Azure 上での Chef 環境の構成

Chef の利用形態

• Chef Server / Client

• Chef Solo

Page 13: S16 Microsoft Azure 上での Chef 環境の構成

Enterprise Chef Server(有償) について

• ホステッド版 Chef

• オンプレミス版 Chef

【詳細問合せ先】

13

Page 14: S16 Microsoft Azure 上での Chef 環境の構成

Open Source Chef Server について

• オープンソース版の Chef Server

• バージョン 10 以降は導入がとても簡単になっているかつては必要なミドルウェア群を別途導入する必要があった

• Enterprise Chef Server との違い

14

Page 15: S16 Microsoft Azure 上での Chef 環境の構成

15

Page 16: S16 Microsoft Azure 上での Chef 環境の構成

Azure での Chef 利用イメージ

16

Server

Chef Workstation

仮想マシン

Windows サーバー

Windows サーバー

Windows サーバー

Linux サーバー

Linux サーバー

Linux サーバー

仮想マシン

仮想マシンの作成、削除、停止、再起動

Azure 管理ポータル

・仮想マシンの作成、削除・Chef Client のインストール

Knife の実行

Recipe の更新

Node

各 Node の構成情報を集中管理

Recipe の配布・各 Node の構成変更・アプリケーションのインストール

Page 17: S16 Microsoft Azure 上での Chef 環境の構成

Azure での Chef 利用 #1

• Azure 管理ポータル画面から Chef の利用が可能

• Knife Azure により、Microsoft Azure と Chef との連携が可能

17

Page 18: S16 Microsoft Azure 上での Chef 環境の構成

Azure での Chef 利用 #2

• PowerShell DSC と Chef との連携

• Windows 用 Cookbook の整備

Supermarket

https://supermarket.getchef.com/cookbooks?utf8=%E2%9C%93&q=azure

18

Page 19: S16 Microsoft Azure 上での Chef 環境の構成

Knife Azure コマンド例

19

Azure 仮想マシン削除

knife azure server delete SERVER [SERVER]

Azure 仮想マシン一覧表示

knife azure server list

Azure 仮想マシン詳細表示

knife azure server show SERVER [SERVER]

Azure 仮想マシン作成

knife azure server create

Page 20: S16 Microsoft Azure 上での Chef 環境の構成

20

Page 21: S16 Microsoft Azure 上での Chef 環境の構成

21

ServerHosted Chef Server

Chef WorkstationAzure 上に Linux サーバー(Ubuntu)を作成

NodeAzure 上に Windows およびLinux サーバーを作成

【Chef Server】Chef 社が提供している Hosted Chef Server を利用する

【Chef Workstation 】Microsoft Azure 上に作成した仮想マシン(Linux サーバー)を利用する

【Node】Microsoft Azure 上に仮想マシンを作成する

Page 22: S16 Microsoft Azure 上での Chef 環境の構成

環境準備

22

手順 内容

準備

1. Microsoft Azure アカウントの作成 Microsoft Azure サブスクリプションの契約を行い、利用可能な状態にする。Appendix#1 を参照

2. Azure サブスクリプションファイルの取得

Microsoft Azure に API アクセスするための証明書であるサブスクリプションファイルをダウンロードする。Appendix#2 を参照

3. Enterprise Chef へのユーザー登録 Hosted Chef Server を利用するため、ホステッド版 Enterprise Chef へのユーザー登録を行う。Appendix#3 を参照

4. Chef スターターキットの取得 Chef Server にアクセスするのに必要な秘密鍵や設定ファイルをまとめたChef スターターキットを取得する。Appendix#4 を参照

5. client.rb (設定ファイル)の作成 Azure ポータル画面から Chef を利用する場合に使用する設定ファイルを作成する。Appendix#5 を参照

6. Chef Workstation 構築 Chef 操作用の環境(Workstation)を構築し、Windows Server インスタンス作成に使用する Cookbook を Chef Server に登録する。Appendix#6 を参照

Page 23: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

23

【ゴール】構築した Web サーバーに、ローカル PC からアクセスすると、Web ペー

ジが表示される。

【目的】Azure 管理ポータルから、Windows サーバーを作成し、Chef を利用して

Web サーバー(IIS)を構築する。

Page 24: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

【仮想マシンの新規作成を行う】

1. 画面左下の「新規」をクリックする

24

Page 25: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

【イメージの選択#1】

1. 「ギャラリーから」を選択する

25

Page 26: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

【イメージの選択#2】

1. 「Windows Server 2012 R2

Datacenter」を選択する

2. をクリックする

26

Page 27: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

【仮想マシンの構成#1】

1. 「仮想マシンの構成」の必要項目

を入力する

2. をクリックする

27

Page 28: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

【仮想マシンの構成#2】

1. 「地域/アフィニティグループ/

仮想ネットワーク」で”日本

(東)”を選択する

2. エンドポイントに “HTTP” を追

加する

3. をクリックする

28

Page 29: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

29

【構成拡張機能で Chef を選択する】

1. 「CLIENT.RB」 をローカルまたはストレージから指定する Appendix#5 で作成した client.rb を指定する

2. 「検証キー(.PEM)をローカルまたはストレージから指定する。 Appendix#4 で準備した Chef スターター

キットの chef-repo¥.chef フォルダにあるazst-validator.pem を指定する

3. 実行の一覧(Run List)に IIS 設定用レシピを記入する。 記述内容:recipe['iis']

4. をクリックする

Page 30: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #1 Azure 管理ポータルからの操作

30

【ローカル PC から Web ページを確認】

Azure 管理ポータルのダッシュボードで作成したサーバーの URL を確認し、ローカル PC のブラウザでアクセスする

Page 31: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #2 Chef Workstation からの操作

31

【ゴール】構築した Web サーバーに、ローカル PC からアクセスすると、 Web ペー

ジが表示される。

【目的】Chef Workstation から Chef を使って、Azure 上に Linux サーバーを作

成し、Web サーバー(apache2)を構築する。

Page 32: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #2 Chef Workstation からの操作

1. Chef Workstation にログインする

2. Azure で利用できるマシンイメージを表示

3. 次の設定で Azure 上の仮想マシンを起動する-DNS名: azselfstudy11

-場所: 日本(東)

-マシンイメージ: Ubuntu Server 12.04 LTS (amd64)

-マシンサイズ: 小

-SSHログインユーザー: azureuser

-SSHログインパスワード: Azure@@123456

-エンドポイント: 80:80

32

$ knife azure image list

Page 33: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #2 Chef Workstation からの操作

knife azure server create コマンドを実行

33

$ knife azure server create --azure-dns-name 'azselfstudy11' --azure-service-location 'Japan East' --azure-source-image b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_2-LTS-amd64-server-20121218-en-us-30GB --azure-vm-size Small --ssh-user 'azureuser' --ssh-password 'Azure@@123456' --tcp-endpoints 80:80 --run-list "recipe[chef-client], recipe[cron], recipe[apt], recipe[apache2], recipe[apache-site-enable]"

Page 34: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #2 Chef Workstation からの操作

34

Azure 管理ポータルで作成されたサーバーを確認

Azure 管理ポータルで仮想マシンが作成されていることが確認できる

Page 35: S16 Microsoft Azure 上での Chef 環境の構成

シナリオ例 #2 Chef Workstation からの操作

35

ローカル PC から Web ページを確認

Azure 管理ポータルのダッシュボードで作成したサーバーの URL を確認し、ローカル PC のブラウザでアクセスする

Page 36: S16 Microsoft Azure 上での Chef 環境の構成

36

Page 37: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#1 Microsoft Azure アカウントの作成

必要なもの・Microsoft アカウント※Microsoft アカウント作成はこちらのページを参照

http://www.microsoft.com/ja-jp/msaccount/signup/default.aspx

・確認コードを音声か SMS で受け取るための携帯電話・身元確認のためのクレジットカード(無料評価版の場合は課金されない)

Azureアカウントの作成手順http://msdn.microsoft.com/ja-jp/windowsazure/ee943806.aspx

・アカウント作成後、管理ポータルにサインインできれば作成完了

・Azure 管理ポータルの URL

https://manage.windowsazure.com/

37

Page 38: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#2 サブスクリプション ファイルの取得

Microsoft Azure に API アクセスするための証明書であるサブスクリプションファイルをダウンロードする

https://manage.windowsazure.com/publishsettings/

38

Page 39: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#3 Enterprise Chef へのユーザー登録 #1

ホステッド版 Enterprise Chef へユーザー登録Chef のトップページ https://www.getchef.com/ の右上の「GET CHEF」をクリックする

39

Page 40: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#3 Enterprise Chef へのユーザー登録#2

「GET HOSTED CHEF」をクリックする

40

Page 41: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#3 Enterprise Chef へのユーザー登録 #3

必要事項を入力し、 “I agree to the Terms of Service, Master License and Services Agreement.” にチェックを入れ、「Get Started」をクリックする

41

Page 42: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#3 Enterprise Chef へのユーザー登録 #4

Organization の登録を行う。「Create New Organization」をクリックする。

42

Page 43: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#3 Enterprise Chef へのユーザー登録 #5

Organization 名を入力し、「Create Organization」をクリックする

43

Page 44: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#3 Enterprise Chef へのユーザー登録 #6

次の画面が表示されればユーザー登録は完了する

44

Page 45: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#4 Chef スターターキットの取得 #1

Chef Server にアクセスするのに必要な秘密鍵や設定ファイル(knife.rb)をまとめた Chef スターターキットをダウンロードする

「Download Starter Kit」をクリックする

45

Page 46: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#4 Chef スターターキットの取得 # 2

「Proceed」をクリックすると chef-starter.zip ファイルがダウンロードされる

46

シナリオ例#1 で利用するため、ダウンロードした chef-starter.zip ファイルをローカル PC で解凍しておく解凍すると、chef-repo フォルダが配置される

Page 47: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#5 client.rb (設定ファイル)の作成

シナリオ例#1 で使用する client.rb ファイルを作成する

Appendix#4 で準備した chef-repo フォルダ内にある、.chef フォルダ内のknife.rb ファイルから、以下の項目を client.rb ファイルにコピーする

• chef_server_url

• validation_client_name

(例) chef_server_url https://api.opscode.com/organizations/azst

validation_client_name "azst-validator"

47

Page 48: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#6 Chef Workstation 構築手順#1

1. Chef Workstation 用端末で以下の作業を実行する本項では OS に Ubuntu を使用。ユーザー名は、azureuser としている

2. 開発環境等の準備

3. Chef Client を Omnibus installer でインストール

4. スターターキットの配置Appendix#4 で取得した Chef スターターキット(chef-starter.zip)をChef Workstation の /home/azureuser/ に配置する。配置後、スターターキット(chef-starter.zip)を解凍する

48

$ sudo apt-get update$ sudo apt-get install tree$ sudo apt-get install unzip$ sudo apt-get install build-essential

$ curl -L http://www.opscode.com/chef/install.sh | sudo bash

$ unzip chef-starter.zip

Page 49: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#6 Chef Workstation 構築手順#1

5. Chef-repo ディレクトリの設定Chef-repo を Git で管理するようにする。

6. Knife Azure のインストール

7. Knife Azure の設定Appendix#2 で取得したサブスクリプション ファイルを Chef Workstation の /home/ユーザー/chef-repo/.chef にコピーし、サブスクリプションファイルのパスを knife.rb に記載する

49

$ sudo /opt/chef/embedded/bin/gem install knife-azure --no-rdoc --no-ri

$ sudo apt-get install git$ cd /home/azureuser/chef-repo/$ git init$ git add *$ git commit -m '1st コミット'

knife[:azure publish_settings_file] = ‘/home/azureuser/chef-repo/.chef/credentials.publishsettings'

Page 50: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#6 Chef Workstation 構築手順#2

8. Cookbook の準備8.1. Chef 社で公開している Cookbook を Chef Workstation 内にインストール

8.2. Chef Workstation 内の Cookbook を Enterprise Chef に登録

8.3. Apache を設定する Cookbook の作成

50

$ knife cookbook site install chef-client$ knife cookbook site install cron$ knife cookbook site install apt$ knife cookbook site install iis$ knife cookbook site install apache2

$ knife cookbook upload -a

$ knife cookbook create apache-site-enable

Page 51: S16 Microsoft Azure 上での Chef 環境の構成

Appendix#6 Chef Workstation 構築手順#3

8.4. apache-site-enable/recipes/default.rb に以下を追記

8.5. Enterprise Chef に Cookbook ”apache-site-enable” を登録

51

$ vi /home/ユーザー/chef-repo/cookbooks/apache-site-enable /recipes/default.rb

execute "a2ensite" docommand "a2ensite default"action :run

end

service "apache2" dosupports :restart => true, :reload => trueaction :enable

end

$ knife cookbook upload apache-site-enable

Page 52: S16 Microsoft Azure 上での Chef 環境の構成

52