SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
YOHEʼ’s  キッチン
rpmforge  リポジトリインストールのリソース仕⽴立立て  source_̲file  を添えて
シェフ紹介
•  かっぱ (@inokara)(本名:川原洋平)
•  chef  とは無関係ですが、2012/10/7  に「新
   婚さんいらっしゃい」に出演しました…
⾷食前酒
      (chef  との関わり)
•  きっかけは  puppet
•  現職ではサーバー仮想化に合わせてセッ
   トアップの⾃自動化を⽬目的として  chef  を利利
   ⽤用を検討してます
•  まだまだ駆け出し、⾒見見習いの料料理理⼈人です  
オードブル
                        (きっかけ)  
   •  rpmforge  のリポジトリインストールでこん
      な⾵風にレシピを書いて、とりあえずは動いた
      けど美しくない…
#  rpmforge  リポジトリのインストール
rpmforgefile="rpmforge-‐‑‒release-‐‑‒0.5.2-‐‑‒2.el5.rf.x86_̲64.rpm"
cookbook_̲file  "/tmp/#{rpmforgefile}"  do
                mode  0644
                checksum  
"2df746e6fa066607c3a177578472f6dbb1a7fc6b8e53b79a2373d6ce9774da17"
end
package  "rpmforge"  do
                action  :install
                source  "/tmp/#{rpmforgefile}"
                provider  Chef::Provider::Package::Rpm
end
お⼝口直し
                (検討)
1.  rpm  バイナリをどうやって取得するか?
  →  execute  を使う?
  →  いやいや、execute  出来るだけ使わない

2.  仕⽅方ないので  cookbook_̲file  を使うか…
  →  files/  以下にあらかじめファイルを置かなきゃいけない…
  →  ダサい

3.  http_̲request  はどうだろ?
  →  :get  メソッドが良良さげ
  →  取得したらファイルをどこに保存するの?
メインディッシュ
         (現時点でのベストプラティクス)
    •  とりあえず  remote_̲file  を使うことで悩みを解決

#  rpmforge  リポジトリのインストール
remote_̲file  "/tmp/rpmforge-‐‑‒release-‐‑‒0.5.2-‐‑‒2.el6.rf.i686.rpm"  do
                source  "http://pkgs.repoforge.org/rpmforge-‐‑‒release/rpmforge-‐‑‒
release-‐‑‒0.5.2-‐‑‒2.el6.rf.i686.rpm"
end

package  "rpmforge"  do
                action  :install
                source  "/tmp/rpmforge-‐‑‒release-‐‑‒0.5.2-‐‑‒2.el6.rf.i686.rpm"
                provider  Chef::Provider::Package::Rpm
end
おかわり
          (redis  をソースコードから導⼊入して起動まで)

       •  not_̲if  で制御してみました…
#  ソースコードの取得からインストールまで
remote_̲file  "/usr/local/src/redis-‐‑‒2.6.9.tar.gz"  do
                source  "http://redis.googlecode.com/files/redis-‐‑‒2.6.9.tar.gz"
                notifies  :run,  "bash[install_̲program]",  :immediately
end

bash  "install_̲program"  do
                not_̲if  "ls  /usr/local/bin/redis-‐‑‒server"
                user  "root"
                cwd  "/usr/local/src"
                code  <<-‐‑‒EOH
                                tar  -‐‑‒zxf  redis-‐‑‒2.6.9.tar.gz
                                (cd  redis-‐‑‒2.6.9/  &&  make  test  &&  make  &&  make  install)
                EOH
end

#  サービスの起動
bash  "starting_̲redis"  do
                not_̲if  "ps  aux  |  grep  redis-‐‑‒server  |grep  -‐‑‒v"
                user  "root"
                code  <<-‐‑‒EOH
                                /usr/local/bin/redis-‐‑‒server  &
                EOH
                #action  :nothing
end
デザート
      (まとめ・感じたこと)

•  レシピの書き⽅方は多種多様で「これ!」と
   ⾔言ったものは無いのではないか。

•  でも、冪等性は譲らないような書き⽅方を⼼心が
   けるべき(コマンドを実⾏行行するだけのツール
   では無い)。

•  http://docs.opscode.com/resources.html  
   は⽳穴が開くほど読まなければ…
Letʼ’s  クッキング!

Contenu connexe

Tendances

Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
do_aki
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Takeshi Komiya
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
Taku Unno
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
TrinityT _
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
 

Tendances (20)

Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
 
20090704rubyist九州
20090704rubyist九州20090704rubyist九州
20090704rubyist九州
 
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
 
Serverspecを使ってみた話
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話
 
Vagrant環境のAnsibleを速くしたい
Vagrant環境のAnsibleを速くしたいVagrant環境のAnsibleを速くしたい
Vagrant環境のAnsibleを速くしたい
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
Chef
ChefChef
Chef
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
 
Hakyll
HakyllHakyll
Hakyll
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
 
Rails
RailsRails
Rails
 

Similaire à Yohes kitchen

Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)
Kimiyuki Yamauchi
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
Ryuji Yamashita
 

Similaire à Yohes kitchen (20)

What is chef
What is chefWhat is chef
What is chef
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChef
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
 
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像
 
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
 
Prefixから始めるgentoo生活
Prefixから始めるgentoo生活Prefixから始めるgentoo生活
Prefixから始めるgentoo生活
 

Yohes kitchen

  • 2. シェフ紹介 •  かっぱ (@inokara)(本名:川原洋平) •  chef  とは無関係ですが、2012/10/7  に「新 婚さんいらっしゃい」に出演しました…
  • 3. ⾷食前酒 (chef  との関わり) •  きっかけは  puppet •  現職ではサーバー仮想化に合わせてセッ トアップの⾃自動化を⽬目的として  chef  を利利 ⽤用を検討してます •  まだまだ駆け出し、⾒見見習いの料料理理⼈人です  
  • 4. オードブル (きっかけ)   •  rpmforge  のリポジトリインストールでこん な⾵風にレシピを書いて、とりあえずは動いた けど美しくない… #  rpmforge  リポジトリのインストール rpmforgefile="rpmforge-‐‑‒release-‐‑‒0.5.2-‐‑‒2.el5.rf.x86_̲64.rpm" cookbook_̲file  "/tmp/#{rpmforgefile}"  do                mode  0644                checksum   "2df746e6fa066607c3a177578472f6dbb1a7fc6b8e53b79a2373d6ce9774da17" end package  "rpmforge"  do                action  :install                source  "/tmp/#{rpmforgefile}"                provider  Chef::Provider::Package::Rpm end
  • 5. お⼝口直し (検討) 1.  rpm  バイナリをどうやって取得するか?   →  execute  を使う?   →  いやいや、execute  出来るだけ使わない 2.  仕⽅方ないので  cookbook_̲file  を使うか…   →  files/  以下にあらかじめファイルを置かなきゃいけない…   →  ダサい 3.  http_̲request  はどうだろ?   →  :get  メソッドが良良さげ   →  取得したらファイルをどこに保存するの?
  • 6. メインディッシュ (現時点でのベストプラティクス) •  とりあえず  remote_̲file  を使うことで悩みを解決 #  rpmforge  リポジトリのインストール remote_̲file  "/tmp/rpmforge-‐‑‒release-‐‑‒0.5.2-‐‑‒2.el6.rf.i686.rpm"  do                source  "http://pkgs.repoforge.org/rpmforge-‐‑‒release/rpmforge-‐‑‒ release-‐‑‒0.5.2-‐‑‒2.el6.rf.i686.rpm" end package  "rpmforge"  do                action  :install                source  "/tmp/rpmforge-‐‑‒release-‐‑‒0.5.2-‐‑‒2.el6.rf.i686.rpm"                provider  Chef::Provider::Package::Rpm end
  • 7. おかわり (redis  をソースコードから導⼊入して起動まで) •  not_̲if  で制御してみました… #  ソースコードの取得からインストールまで remote_̲file  "/usr/local/src/redis-‐‑‒2.6.9.tar.gz"  do                source  "http://redis.googlecode.com/files/redis-‐‑‒2.6.9.tar.gz"                notifies  :run,  "bash[install_̲program]",  :immediately end bash  "install_̲program"  do                not_̲if  "ls  /usr/local/bin/redis-‐‑‒server"                user  "root"                cwd  "/usr/local/src"                code  <<-‐‑‒EOH                                tar  -‐‑‒zxf  redis-‐‑‒2.6.9.tar.gz                                (cd  redis-‐‑‒2.6.9/  &&  make  test  &&  make  &&  make  install)                EOH end #  サービスの起動 bash  "starting_̲redis"  do                not_̲if  "ps  aux  |  grep  redis-‐‑‒server  |grep  -‐‑‒v"                user  "root"                code  <<-‐‑‒EOH                                /usr/local/bin/redis-‐‑‒server  &                EOH                #action  :nothing end
  • 8. デザート (まとめ・感じたこと) •  レシピの書き⽅方は多種多様で「これ!」と ⾔言ったものは無いのではないか。 •  でも、冪等性は譲らないような書き⽅方を⼼心が けるべき(コマンドを実⾏行行するだけのツール では無い)。 •  http://docs.opscode.com/resources.html   は⽳穴が開くほど読まなければ…