soft layerと運用管理の自動化・省力化あれこれ

26
Copyright © NHN Techorus Corp. SoftLayer ととととととととと ととととととと

Upload: datahotel

Post on 10-Jan-2017

1.417 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Soft layerと運用管理の自動化・省力化あれこれ

Copyright © NHN Techorus Corp.

SoftLayer と運用管理の自動化・省力化あれこれ

Page 2: Soft layerと運用管理の自動化・省力化あれこれ

Page  2

自己紹介

名前 

 大久保 智之(おおくぼ ともゆき)

所属   NHN テコラス株式会社  SE 部

経歴   SI 系会社で顧客先に常駐して運用管理業務を中心に関わった後、 フォースクーナ ( 現 NHN テコラス ) で MSP 業務に携わる 現在はクラウドを中心とした運用サービスの導入・運用を担当

Page 3: Soft layerと運用管理の自動化・省力化あれこれ

Page  3

会社概要

社 名 NHN テコラス株式会社

事業 開始 2000 年よりデータセンター事業開始

事業 内容データセンター事業  クラウド事業マネージド事業    セキュリティ事業 EC 支援事業

管理 稼動サ ーバ 数 10,000 台以上( 2015 年 1 月現在)所 在 地 新宿 渋谷 大阪 浜松 名古屋 福岡

インターネット黎明期からの長い経験と管理稼働サーバ数 10,000 台以上を誇る豊富な実績

Page 4: Soft layerと運用管理の自動化・省力化あれこれ

Page  4

事業紹介

データセンター

IT インフラ統合アウトソース

AWS 向け構築・運用パック

マルチクラウドマネージド

IT インフラ・マネージド事業

Page 5: Soft layerと運用管理の自動化・省力化あれこれ

Page  5

事業紹介

高速データ転送CLOUD CONNECT

光ファイバネットワーク

BUSINESS CONNECT

大容量メール配信MMDS

クラウドゲームプラットフォーム

CLOUD GAMING PLATFORM

VPS/ レンタルサーバ

EX-CLOUD

メールセキュリティSecure MX

オプション・ソリューション

Page 6: Soft layerと運用管理の自動化・省力化あれこれ

Page  6

事業紹介

教育機関のためのクラウドサービス

教育機関向けクラウド事業

EC 支援事業

Page 7: Soft layerと運用管理の自動化・省力化あれこれ

Page  7

今日の話題

SoftLayer × Packer

SoftLayer × Consul

SoftLayer × cloud-init/chef

Page 8: Soft layerと運用管理の自動化・省力化あれこれ

Page  8

SoftLayer × Packer

Page 9: Soft layerと運用管理の自動化・省力化あれこれ

Page  9

SoftLayer × Packer

クラウド環境では仮想マシンイメージ管理が悩ましい

 仮想マシンイメージの乱立  仮想マシンイメージ作成後のアップデート

 仮想マシンイメージのバージョン管理

Page 10: Soft layerと運用管理の自動化・省力化あれこれ

Page  10

Packer SoftLayer Builder

SoftLayer の FLEX イメージを作成できる Packer の Builder

使うためにはビルドが必要

Page 11: Soft layerと運用管理の自動化・省力化あれこれ

Page  11

Packer SoftLayer Builder のビルド■Packer のダウンロードと展開# cd /usr/local/src# wget https://releases.hashicorp.com/packer/0.9.0/packer_0.9.0_linux_amd64.zip # unzip packer_0.9.0_linux_amd64.zip# mkdir /usr/local/packer# mv packer /usr/local/packer/packer

■ ビルド環境の用意 (CentOS6.6 64bit 版を使用 )# yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm# yum install git mercurial golang –enablerepo=epel# export GOPATH=/usr/share/gocode

■ ソースコードのダウンロードと配置# git clone https://github.com/leonidlm/packer-builder-softlayer.git $GOPATH/src/github.com/leonidlm/packer-builder-softlayer# cd $GOPATH/src/github.com/leonidlm/packer-builder-softlayer# go get# cd /usr/local/src# wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/gosshold/source-archive.zip# unzip source-archive.zip# mv gosshold $GOPATH/src/code.google.com/p

■ ビルド# cd $GOPATH/src/github.com/leonidlm/packer-builder-softlayer# go build –o /usr/local/packer/packer-builder-softlayer main.go

Page 12: Soft layerと運用管理の自動化・省力化あれこれ

Page  12

FLEX イメージビルド用設定ファイル例{ "variables": { "sl_username": "{{env `SL_USERNAME`}}", "sl_api_key": "{{env `SL_API_KEY`}}" }, "provisioners": [ { "type": "shell", "inline": [ "sudo yum install -y dnsmasq" ] } ],

"builders": [{ "type": "softlayer", "api_key": "{{user `sl_api_key`}}", "username": "{{user `sl_username`}}", "datacenter_name": "tok02", "base_os_code": "CENTOS_6_64", "image_name": "packer-centos-{{isotime}}", "image_description": "centos image created by packer at {{isotime}}", "image_type": "flex", "instance_name": "packer-centos-{{isotime}}", "instance_domain": "techorus.com", "instance_cpu": 1, "instance_memory": 1024, "instance_network_speed": 10, "instance_disk_capacity": 25, "ssh_port": 22, "ssh_timeout": "15m",  "ssh_pty": "true", "instance_state_timeout": "25m" }]}

Page 13: Soft layerと運用管理の自動化・省力化あれこれ

Page  13

FLEX イメージのビルド$ export SL_USERNAME=< あなたのユーザ名 >$ export SL_API_KEY=< あなたの API キー >$ sudo /usr/local/packer/packer build sl_centos.json

softlayer output will be in this color.

==> softlayer: Creating temporary ssh key for the instance...==> softlayer: Created SSH key with id '149598'==> softlayer: Creating an instance...==> softlayer: Created instance, id: '111b55ce-d25e-44e6-b1bd-52e8452fc5d7'==> softlayer: Waiting for the instance to become ACTIVE...==> softlayer: Waiting for SSH to become available...==> softlayer: Connected to SSH!==> softlayer: Provisioning with shell script: /tmp/packer-shell202280662***************( 略 ) ***************Build 'softlayer' finished.

==> Builds finished. The artifacts of successful builds are:--> softlayer: tok02::2dea6e7a-2763-4481-8c7a-0d6df4ec4e16

Page 14: Soft layerと運用管理の自動化・省力化あれこれ

Page  14

SoftLayer × Consul

Page 15: Soft layerと運用管理の自動化・省力化あれこれ

Page  15

SoftLayer × Consul

クラウド環境ではノード管理が悩ましい

  IP アドレスの直打ちは出来ればやめたい

 ノードの増減で都度設定を変更したくない

 内部用のホスト名は外部に公開したくない

Page 16: Soft layerと運用管理の自動化・省力化あれこれ

Page  16

今回試した構成

仮想サーバ ×3 台オーダー1 台をサーバー、 2 台をクライアント ( 最小構成 )プライベート側の IP アドレスを Consul を使って名前解決

Page 17: Soft layerと運用管理の自動化・省力化あれこれ

Page  17

Consul と dnsmasq

Consul については、以下記事を参考にさせていただきました。

Consul, DNS and dnsmasq  http://www.morethanseven.net/2014/04/25/consul/

【 Consul 】 dnsmasq で名前解決を行う方法を試してみた  http://pocketstudio.jp/log3/2014/05/01/consul_with_dnsmasq_name_resolution/

Page 18: Soft layerと運用管理の自動化・省力化あれこれ

Page  18

Consul のセットアップ■Consul サーバのセットアップ# cd /usr/local/src/# wget wget https://releases.hashicorp.com/consul/0.6.3/consul_0.6.3_linux_amd64.zip# unzip consul_0.6.3_linux_amd64.zip # cp consul /usr/bin/consul

■Consul クライアントのセットアップ# cd /usr/local/src/# wget wget https://releases.hashicorp.com/consul/0.6.3/consul_0.6.3_linux_amd64.zip# unzip consul_0.6.3_linux_amd64.zip # cp consul /usr/bin/consul

■Consul サーバの起動$ consul agent -server -bootstrap-expect=1 -data-dir=/tmp/consul -node=< ノード名 > -bind=< ノード名 > -ui-dir=/opt/consul/dist &

■Consul クライアントのクラスタへの参加$ consul agent -data-dir=/tmp/consul -node=< ノード名 > -bind=< クライアントの IP> -join=< サーバの IP> &

Page 19: Soft layerと運用管理の自動化・省力化あれこれ

Page  19

dnsmasq のセットアップ # yum install dnsmasq

# cp -p /etc/dnsmasq.conf /etc/dnsmasq.conf.org

# vi /etc/dnsmasq.conf 以下 2 行を追加  server=/consul/127.0.0.1#8600  strict-order

# vi /etc/resolv.conf 先頭に「 127.0.0.1 」を追加   nameserver 127.0.0.1  nameserver 10.0.80.11 nameserver 10.0.80.12

# chkconfig dnsmasq on

# service dnsmasq start

Consulを名前解決する対象にする

名前解決の問い合わせ順を制御

Page 20: Soft layerと運用管理の自動化・省力化あれこれ

Page  20

名前解決の確認sv1:# consul members  Node Address Status Type Build Protocol DC  server 10.132.79.180:8301 alive server 0.6.3 2 dc1  sv2 10.132.79.135:8301 alive client 0.6.3 2 dc1  sv3 10.132.79.137:8301 alive client 0.6.3 2 dc1

sv2:# consul members  Node Address Status Type Build Protocol DC  server 10.132.79.180:8301 alive server 0.6.3 2 dc1  sv2 10.132.79.135:8301 alive client 0.6.3 2 dc1  sv3 10.132.79.137:8301 alive client 0.6.3 2 dc1

sv2:# host sv3.node.consul   sv3.node.consul has address 10.132.79.137

sv2:# host softlayer.com softlayer.com has address 66.228.119.72 softlayer.com has IPv6 address 2607:f0d0:1000:11:66:228:119:72 softlayer.com mail is handled by 5 mx.softlayer.com. softlayer.com mail is handled by 20 mx151.softlayer.com. softlayer.com mail is handled by 20 mx101.softlayer.com.

サーバ / クライアント両方からメンバーが見える

透過的に外部・内部の名前解決

Page 21: Soft layerと運用管理の自動化・省力化あれこれ

Page  21

SoftLayer × cloud-init/chef

Page 22: Soft layerと運用管理の自動化・省力化あれこれ

Page  22

SoftLayer × cloud-init / chef

クラウド環境では仮想マシンが多くなってしまいがち  アップデートが段々つらくなる

 設定変更が段々つらくなる

 機器の構成を都度しらべるのはつらい

Page 23: Soft layerと運用管理の自動化・省力化あれこれ

Page  23

cloud-init と chef

cloud-init を使って、 OS 起動時に特定のスクリプトを実行

実行されたスクリプト内で chef-client コマンドを実行し、Chef-Server 上のレシピを実行する

Page 24: Soft layerと運用管理の自動化・省力化あれこれ

Page  24

cloud-init 経由のスクリプト実行例

Cloud-init v. 0.7.5 running 'modules:final' at Fri, 04 Mar 2016 06:19:42 +0000. Up 275.05 seconds.[2016-03-04T00:19:45-06:00] INFO: Forking chef instance to converge...[2016-03-04T00:19:45-06:00] INFO: *** Chef 12.7.2 ***[2016-03-04T00:19:45-06:00] INFO: Chef-client pid: 1509[2016-03-04T00:19:48-06:00] INFO: Run List is [recipe[cron::default]][2016-03-04T00:19:48-06:00] INFO: Run List expands to [cron::default][2016-03-04T00:19:48-06:00] INFO: Starting Chef Run for sv2.softlayer-test.info[2016-03-04T00:19:48-06:00] INFO: Running start handlers[2016-03-04T00:19:48-06:00] INFO: Start handlers complete.[2016-03-04T00:19:48-06:00] INFO: HTTP Request Returned 404 Not Found: [2016-03-04T00:19:48-06:00] INFO: Loading cookbooks [[email protected]][2016-03-04T00:19:48-06:00] INFO: Processing yum_package[cronie] action install (cron::default line 21)[2016-03-04T00:19:51-06:00] INFO: Processing service[cron] action enable (cron::default line 24)[2016-03-04T00:19:51-06:00] INFO: Processing service[cron] action start (cron::default line 24)[2016-03-04T00:19:51-06:00] INFO: service[cron] started[2016-03-04T00:19:52-06:00] INFO: Chef Run complete in 3.578102623 seconds[2016-03-04T00:19:52-06:00] INFO: Running report handlers[2016-03-04T00:19:52-06:00] INFO: Report handlers completeCloud-init v. 0.7.5 finished at Fri, 04 Mar 2016 06:19:52 +0000. Datasource DataSourceNone. Up 284.35 seconds

#!/bin/shchef-client -c /etc/chef/client.rb

OS起動時にchef-clientを実行

Page 25: Soft layerと運用管理の自動化・省力化あれこれ

Page  25

Ohai 経由の構成情報

Page 26: Soft layerと運用管理の自動化・省力化あれこれ

Page  26

まとめ

Packer を使って、仮想マシンイメージ管理を楽に

Consul を使って名前解決を楽に

cloud-init/chef を使って運用管理ルーティンを楽に