SlideShare une entreprise Scribd logo
1  sur  16
Rubyで楽々
サーバー管理
小西 雅也 (@ore_public)
サーバー管理
ハードウェアの管理
生存の監視
データバックアップ
ログの解析
ソフトウェアセットアップ
設定の調整
要は
ある場所にあるファイルを置く
(設定ファイル、ツールのスクリプト)


cronの設定をする
それを



全部のサーバーに!!
しかも
製品Aの設定ファイル(製品A郡)
製品Bの設定ファイル(製品B郡)
製品Cの設定ファイル(製品C郡)
DBバックアップ設定(製品B・C郡)
ログ解析のバッチ(全サーバー)


これらの設定情報の管理
そこでchef
ファイル管理


デーモン管理


パッケージ管理


コマンド実行
chefの構成例

      Chef-server



設定ファイル
アップロード
(cookbook)




                        git   Node
      管理作業PC
                              Chef-serverより設定を取得して
      (chef-client)           反映する
用語の解説1
cookbook
設定情報のまとまり
Recipe
設定情報。Rubyで記述
template
テンプレートファイル。erbで記述
用語の解説2
Chef-server
cookbookを保持する
Chef-client
定期的にchef-serverを確認して設定を取得
レシピを実行する
Knife
cookbookの作成・編集・登録
clientの情報アクセスをする管理ツール
chefの利点
管理の一元化と自動化


設定=管理情報
二重管理しなくていい
chefのセットアップ
Chef-serverはdebianで


Chef-clientはgemで入れるだけ


管理作業PCにもgemで入れるだけ
chefの設定例
テキストファイルの配置
 #レシピ
 template "/tmp/sl001.txt" do
   source "sl001.txt.erb"
   owner "masaya"
   group "masaya"
   mode 0644
 end


 #テンプレート
 Welcome to Chef!

 CPU :<%= node[:cpu][:"0"][:model_name] %>
 Memory:<%= node[:memory][:total] %>
 OS :<%= node[:platform] %> <%= node[:platform_version] %>
chefの設定例
テキストファイルの配置
 Welcome to Chef!

 CPU :Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz
 Memory:2005884kB
 OS :scientific 6.2
chefの設定例2
cronの設定
 #レシピ
 cron "root_c" do
  user "root"
  command "/bin/ls"
  hour "4"
  minute "11"
 end


 # Chef Name: root_c
 11 4 * * * /bin/ls
chefの情報源
弱小プログラマーの日記
http://blog.office-ore.net/


公式サイトのドキュメント
http://wiki.opscode.com/display/chef/Home

例えばcronのドキュメント
http://wiki.opscode.com/display/chef/Resources#Resources-Cron
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -

Contenu connexe

Tendances

入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalkBIGLOBE Tech Talk
 
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalkBIGLOBE Tech Talk
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたadachij2002
 
Serverspecの活用tips紹介
Serverspecの活用tips紹介Serverspecの活用tips紹介
Serverspecの活用tips紹介Daisuke Ikeda
 
Jenkins cicdテンプレートazure版の利用方法解説
Jenkins cicdテンプレートazure版の利用方法解説Jenkins cicdテンプレートazure版の利用方法解説
Jenkins cicdテンプレートazure版の利用方法解説Changhwan Lee
 
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?Sho Hashimoto
 
ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!ftnk
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Yoshinori Nakanishi
 
Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話Yasufumi Moritake
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストKen Sawada
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
 
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)Kimiyuki Yamauchi
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)佐久本正太
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03oranie Narut
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Kazuto Ohara
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築靖 小田島
 

Tendances (20)

入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk
 
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみた
 
Redisいれてみた
RedisいれてみたRedisいれてみた
Redisいれてみた
 
Serverspecの活用tips紹介
Serverspecの活用tips紹介Serverspecの活用tips紹介
Serverspecの活用tips紹介
 
Jenkins cicdテンプレートazure版の利用方法解説
Jenkins cicdテンプレートazure版の利用方法解説Jenkins cicdテンプレートazure版の利用方法解説
Jenkins cicdテンプレートazure版の利用方法解説
 
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
 
ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
 
Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 

En vedette

Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話Masaya Konishi
 
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて   第16回 岡山ruby, ruby on rails勉強会Mrubyについて   第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会Masaya Konishi
 
私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02Masaya Konishi
 
rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会
rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会
rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会Masaya Konishi
 
普通のRailsエンジニアが【intelliJ】やってみた。
普通のRailsエンジニアが【intelliJ】やってみた。普通のRailsエンジニアが【intelliJ】やってみた。
普通のRailsエンジニアが【intelliJ】やってみた。Yoichi Toyota
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
 

En vedette (7)

Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話
 
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
Mrubyについて   第16回 岡山ruby, ruby on rails勉強会Mrubyについて   第16回 岡山ruby, ruby on rails勉強会
Mrubyについて 第16回 岡山ruby, ruby on rails勉強会
 
FizzBuzzで学ぶRuby
FizzBuzzで学ぶRubyFizzBuzzで学ぶRuby
FizzBuzzで学ぶRuby
 
私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02
 
rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会
rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会
rabbit - 第10回 岡山Ruby, Ruby on Rails勉強会
 
普通のRailsエンジニアが【intelliJ】やってみた。
普通のRailsエンジニアが【intelliJ】やってみた。普通のRailsエンジニアが【intelliJ】やってみた。
普通のRailsエンジニアが【intelliJ】やってみた。
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Similaire à Rubyで楽々サーバー管理 - 岡山Ruby会議01 -

ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理junichi anno
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Taku Unno
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 Maho Takara
 
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したいAwsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい聡 大久保
 
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~gree_tech
 
S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成Microsoft Azure Japan
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-publicAmazon Web Services Japan
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Takamasa Maejima
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairNaoya Inada
 

Similaire à Rubyで楽々サーバー管理 - 岡山Ruby会議01 - (20)

ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Chef on azure
Chef on azureChef on azure
Chef on azure
 
Chef on azure
Chef on azureChef on azure
Chef on azure
 
Chef on azure
Chef on azureChef on azure
Chef on azure
 
Chef
ChefChef
Chef
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理
 
Fluentd casual
Fluentd casualFluentd casual
Fluentd casual
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
 
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したいAwsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
 
Apache Module
Apache ModuleApache Module
Apache Module
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~[JANOG35.5] WhiteBox SW検証  ~サーバサイド編~
[JANOG35.5] WhiteBox SW検証 ~サーバサイド編~
 
S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
 

Rubyで楽々サーバー管理 - 岡山Ruby会議01 -

Notes de l'éditeur

  1. 今日はサーバー管理にRubyを活用する話をします。
  2. サーバー管理というと、だいたいこういった作業が出てきます。 で、ハードウェアの管理は今回の話の対象外なので、置いておいて、これらのサーバー稼働後のソフト的な部分に注目します。 これらは通常、手動ではやらず、自動化するスクリプトなどを用意してやるかと思います。
  3. まとめると、どの管理作業もだいたいが、スクリプトファイルや設定ファイルをサーバーに置いて、 cron で定期実行するというのが、まずは必要になります。 これ自体は単純な作業ですが・・・
  4. 全部のサーバーに
  5. しかもこんなふうに、管理するサーバーが全部同じ構成では無いのが普通です。 単純に同じファイルを全サーバーにアップロードするだけというわけにもいきません。 そして、サーバーごとに設定が違うと言うことは、どのサーバーにどういう設定があるのかの管理情報が必要になり、また情報が増えてしまいます。
  6. そこで chef を活用します。 Chef にはこれらの機能があります。 今日は、全部説明出来ないので一部だけ説明します。
  7. まずは chef を使ったサーバーの構成の例です。 管理作業 PC が普段使ってる手元の PC だと思ってください。 そこで設定ファイルを編集して、 chef-server にアップロードします。 各サーバーは、 chef-client でサーバーから設定を持ってきて実行します。
  8. 次に、色々と用語が出てくるので、用語をざっと解説します。 (アドリブでざっと解説する)
  9. Chef を使うことの利点 一度設定すれば、自動化されるので、変更・追加などが楽。 そして、設定がイコール管理情報となるので、別途 Excel などに表を作る必要がない。 Word で出来た、設定手順書も必要ない。
  10. 次に chef のセットアップについてです。 色々なインストール方法がありますが、インストールするのが目的ではないので一番簡単な方法を。 client の方は ruby が動けば gem で入れるだけですが、サーバーの方は色々と入れないとダメなので、 debian(ubuntu) のパッケージで入れましょう。
  11. 実際の設定の例を説明します。
  12. 最後に、chefの情報源 私のブログに、chefのインストールから設定をしてみるまでの手順を載せています。 インストールさえ出来てしまえば、公式のドキュメントで設定の仕方を見ていけばいいと思います。