Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Sugawara Genki
29,576 views
ChefとPuppetの比較
Technology
◦
Read more
60
Save
Share
Embed
Embed presentation
Download
Downloaded 157 times
1
/ 47
2
/ 47
3
/ 47
4
/ 47
5
/ 47
6
/ 47
7
/ 47
8
/ 47
9
/ 47
10
/ 47
11
/ 47
12
/ 47
13
/ 47
14
/ 47
15
/ 47
16
/ 47
17
/ 47
18
/ 47
19
/ 47
20
/ 47
21
/ 47
22
/ 47
23
/ 47
24
/ 47
25
/ 47
26
/ 47
27
/ 47
28
/ 47
29
/ 47
30
/ 47
31
/ 47
32
/ 47
33
/ 47
34
/ 47
35
/ 47
36
/ 47
37
/ 47
38
/ 47
39
/ 47
40
/ 47
41
/ 47
42
/ 47
43
/ 47
44
/ 47
45
/ 47
46
/ 47
47
/ 47
More Related Content
PPTX
Ceph アーキテクチャ概説
by
Emma Haruka Iwao
PDF
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
by
Cloudera Japan
PDF
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
by
オラクルエンジニア通信
PDF
大規模負荷試験時にやったこと
by
まべ☆てっく運営
PDF
Nagios
by
linkinx
PDF
Alphorm.com Support de la formation Vmware Esxi 6.0
by
Alphorm
PDF
CentOS Linux 8 の EOL と対応策の検討
by
Masahito Zembutsu
PDF
Oracle Database Applianceのご紹介(詳細)
by
オラクルエンジニア通信
Ceph アーキテクチャ概説
by
Emma Haruka Iwao
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
by
Cloudera Japan
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
by
オラクルエンジニア通信
大規模負荷試験時にやったこと
by
まべ☆てっく運営
Nagios
by
linkinx
Alphorm.com Support de la formation Vmware Esxi 6.0
by
Alphorm
CentOS Linux 8 の EOL と対応策の検討
by
Masahito Zembutsu
Oracle Database Applianceのご紹介(詳細)
by
オラクルエンジニア通信
What's hot
PDF
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
by
Microsoft Azure Japan
PDF
SDN OpenDaylight
by
Mokhless Hachicha
PDF
Etude et mise en place d’un Cloud privé Avec Openstack
by
BayeOusseynouFall
PDF
alphorm.com - Formation VMware vSphere 5
by
Alphorm
PDF
実環境にTerraform導入したら驚いた
by
Akihiro Kuwano
PPTX
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
by
NTT DATA Technology & Innovation
PDF
Hadoopの概念と基本的知識
by
Ken SASAKI
PDF
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
by
Google Cloud Platform - Japan
PDF
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
by
KeioOyama
PDF
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
by
kazuhcurry
PPTX
PenTesterが知っている危ないAWS環境の共通点
by
zaki4649
PDF
Linux on Power と x86 Linux との技術的な相違点
by
Shinichiro Arai
PDF
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
PDF
AlmaLinux と Rocky Linux の誕生経緯&比較
by
beyond Co., Ltd.
PPTX
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
by
NTT DATA Technology & Innovation
PDF
Magnum IO GPUDirect Storage 最新情報
by
NVIDIA Japan
PDF
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
by
Kouhei Sutou
PPTX
Salesforceのソースエンドポイントとしての利用
by
QlikPresalesJapan
PDF
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
by
Bassirou Dime
PDF
Alphorm.com Formation FortiWeb : Installation et Configuration
by
Alphorm
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
by
Microsoft Azure Japan
SDN OpenDaylight
by
Mokhless Hachicha
Etude et mise en place d’un Cloud privé Avec Openstack
by
BayeOusseynouFall
alphorm.com - Formation VMware vSphere 5
by
Alphorm
実環境にTerraform導入したら驚いた
by
Akihiro Kuwano
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
by
NTT DATA Technology & Innovation
Hadoopの概念と基本的知識
by
Ken SASAKI
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
by
Google Cloud Platform - Japan
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
by
KeioOyama
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
by
kazuhcurry
PenTesterが知っている危ないAWS環境の共通点
by
zaki4649
Linux on Power と x86 Linux との技術的な相違点
by
Shinichiro Arai
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
AlmaLinux と Rocky Linux の誕生経緯&比較
by
beyond Co., Ltd.
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
by
NTT DATA Technology & Innovation
Magnum IO GPUDirect Storage 最新情報
by
NVIDIA Japan
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
by
Kouhei Sutou
Salesforceのソースエンドポイントとしての利用
by
QlikPresalesJapan
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
by
Bassirou Dime
Alphorm.com Formation FortiWeb : Installation et Configuration
by
Alphorm
Viewers also liked
PPTX
ネットワークエンジニアのための Puppet / Chef
by
npsg
PDF
20100529 phpday
by
Yusuke Ando
PPT
Php勉強会43 発表資料
by
ichikaway
PDF
Office 365 Enterprise / Business 管理者向け利用ガイド/基本操作ガイド
by
kumo2010
PPT
Mylynとおともだち
by
Hiroki Kondo
PDF
IBM Connect Japan 2012 TC-4/OB-5 ついにその実体を現す IBM Project Vulcan! その中核となる IBM S...
by
Hiroaki Komine
PPT
Python開発環境三種の神器
by
Yukitaka Uchikoshi
PPTX
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
by
Atsushi Suzuki
PDF
Chef社内勉強会(第1回)
by
Yoshinori Nakanishi
PPTX
Python エンジニアの作り方 2011.08 #pyconjp
by
Takeshi Komiya
PDF
Vagrant で作る PHP 開発環境 [実践編]
by
Masashi Shinbara
PDF
Chefで始めるWindows Server構築
by
Takashi Kanai
PDF
物理ネットワーク受け入れテストの自動化を考える
by
skipping classes
PDF
Vagrant intro
by
t9md
PPTX
はじめての datadog
by
Naoya Nakazawa
PDF
AnsibleによるInfrastructure as code入門
by
kk_Ataka
PPTX
DevOps Practices:Configuration as Code
by
Doug Seven
PDF
(旧版) オープンソースライセンスの基礎と実務
by
Yutaka Kachi
PPT
インフラエンジニアのためのcassandra入門
by
Akihiro Kuwano
PDF
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
by
Justin Ryan
ネットワークエンジニアのための Puppet / Chef
by
npsg
20100529 phpday
by
Yusuke Ando
Php勉強会43 発表資料
by
ichikaway
Office 365 Enterprise / Business 管理者向け利用ガイド/基本操作ガイド
by
kumo2010
Mylynとおともだち
by
Hiroki Kondo
IBM Connect Japan 2012 TC-4/OB-5 ついにその実体を現す IBM Project Vulcan! その中核となる IBM S...
by
Hiroaki Komine
Python開発環境三種の神器
by
Yukitaka Uchikoshi
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
by
Atsushi Suzuki
Chef社内勉強会(第1回)
by
Yoshinori Nakanishi
Python エンジニアの作り方 2011.08 #pyconjp
by
Takeshi Komiya
Vagrant で作る PHP 開発環境 [実践編]
by
Masashi Shinbara
Chefで始めるWindows Server構築
by
Takashi Kanai
物理ネットワーク受け入れテストの自動化を考える
by
skipping classes
Vagrant intro
by
t9md
はじめての datadog
by
Naoya Nakazawa
AnsibleによるInfrastructure as code入門
by
kk_Ataka
DevOps Practices:Configuration as Code
by
Doug Seven
(旧版) オープンソースライセンスの基礎と実務
by
Yutaka Kachi
インフラエンジニアのためのcassandra入門
by
Akihiro Kuwano
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
by
Justin Ryan
Similar to ChefとPuppetの比較
PPTX
Aizu.LT::Tokyo #4
by
Taku Unno
PDF
DevOpsを実現するChef活用テクニック
by
Yusuke Ando
PDF
20130723 ecシステムにchefを導入してみた v1.0
by
NIFTY Cloud
PDF
DevOpsを実現する為のChef実践テクニック Chef12対応版
by
Yusuke Ando
PDF
Chefのはじめの一歩
by
Misa Kondo
PDF
今日から使い始めるChef
by
Masahiro NAKAYAMA
PDF
Chef Howto with Vagrant + Berkshelf
by
Masahiro NAKAYAMA
PDF
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
by
Masahiro NAKAYAMA
PPTX
明日から始める Chef 入門 #bpstudy
by
Takeshi Komiya
PDF
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
by
Takuro Sasaki
PDF
Chef+serverspec+werckerでインフラCIする話
by
Masayuki Morita
PPTX
Chef windows linux環境構築
by
靖 小田島
PDF
Some about chef
by
Yusuke Muraoka
KEY
Itcamp長崎2012 capistrano
by
kumachang_LL
PDF
Puppet on AWS
by
Sugawara Genki
PDF
Sqale の Puppet と Chef (と テスト)
by
hiboma
ODP
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -
by
Masaya Konishi
PDF
test
by
stucon
PDF
社内Chef勉強会
by
Masaaki Uchida
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
by
Takeshi Komiya
Aizu.LT::Tokyo #4
by
Taku Unno
DevOpsを実現するChef活用テクニック
by
Yusuke Ando
20130723 ecシステムにchefを導入してみた v1.0
by
NIFTY Cloud
DevOpsを実現する為のChef実践テクニック Chef12対応版
by
Yusuke Ando
Chefのはじめの一歩
by
Misa Kondo
今日から使い始めるChef
by
Masahiro NAKAYAMA
Chef Howto with Vagrant + Berkshelf
by
Masahiro NAKAYAMA
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
by
Masahiro NAKAYAMA
明日から始める Chef 入門 #bpstudy
by
Takeshi Komiya
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
by
Takuro Sasaki
Chef+serverspec+werckerでインフラCIする話
by
Masayuki Morita
Chef windows linux環境構築
by
靖 小田島
Some about chef
by
Yusuke Muraoka
Itcamp長崎2012 capistrano
by
kumachang_LL
Puppet on AWS
by
Sugawara Genki
Sqale の Puppet と Chef (と テスト)
by
hiboma
Rubyで楽々サーバー管理 - 岡山Ruby会議01 -
by
Masaya Konishi
test
by
stucon
社内Chef勉強会
by
Masaaki Uchida
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
by
Takeshi Komiya
More from Sugawara Genki
PDF
Elixir Meetup #1 Loggerの構造と拡張
by
Sugawara Genki
PDF
SQLによるDynamoDBの操作
by
Sugawara Genki
PDF
Lambdaによるクラウド型言語の実装
by
Sugawara Genki
PDF
200k/sec
by
Sugawara Genki
PDF
DynamoDBのまえにキャッシュおく奴
by
Sugawara Genki
PDF
20140930 anything as_code
by
Sugawara Genki
PPTX
2014 09-23 Mechanism of Gossip protocol
by
Sugawara Genki
PPTX
CloudWatch Logsについて
by
Sugawara Genki
PDF
MHA on AWS+Rails
by
Sugawara Genki
PPTX
ナウなヤングにCloud Formationが流行ってほしい
by
Sugawara Genki
PDF
AWSをコードで定義する
by
Sugawara Genki
PDF
クックパッドの開発について
by
Sugawara Genki
PDF
Gitを使ったRoute53の管理
by
Sugawara Genki
PDF
EC2の天井を超える
by
Sugawara Genki
PDF
EC2でkeepalived+LVS(DSR)
by
Sugawara Genki
PDF
クックパッドでのVPC移行について
by
Sugawara Genki
PDF
ゴシッププロトコルによる冗長化と負荷分散の検証
by
Sugawara Genki
KEY
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
by
Sugawara Genki
PPTX
AWS移行に向けたクックパッドの取り組み+α
by
Sugawara Genki
PDF
AWS移行に向けたクックパッドの取り組み
by
Sugawara Genki
Elixir Meetup #1 Loggerの構造と拡張
by
Sugawara Genki
SQLによるDynamoDBの操作
by
Sugawara Genki
Lambdaによるクラウド型言語の実装
by
Sugawara Genki
200k/sec
by
Sugawara Genki
DynamoDBのまえにキャッシュおく奴
by
Sugawara Genki
20140930 anything as_code
by
Sugawara Genki
2014 09-23 Mechanism of Gossip protocol
by
Sugawara Genki
CloudWatch Logsについて
by
Sugawara Genki
MHA on AWS+Rails
by
Sugawara Genki
ナウなヤングにCloud Formationが流行ってほしい
by
Sugawara Genki
AWSをコードで定義する
by
Sugawara Genki
クックパッドの開発について
by
Sugawara Genki
Gitを使ったRoute53の管理
by
Sugawara Genki
EC2の天井を超える
by
Sugawara Genki
EC2でkeepalived+LVS(DSR)
by
Sugawara Genki
クックパッドでのVPC移行について
by
Sugawara Genki
ゴシッププロトコルによる冗長化と負荷分散の検証
by
Sugawara Genki
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
by
Sugawara Genki
AWS移行に向けたクックパッドの取り組み+α
by
Sugawara Genki
AWS移行に向けたクックパッドの取り組み
by
Sugawara Genki
ChefとPuppetの比較
1.
ChefとPuppetの比較 ~Puppetユーザから見たChef~(仮) クックパッド株式会社 菅原 元気
2.
自己紹介 菅原 元気 (@sgwr_dts
/ id:winebarrel) 白金台のほうから来ました ● クックパッド株式会社勤務 ● インフラエンジニア ● Ruby・AWS関連ツールを公開しています ○ https://bitbucket.org/winebarrel/ ○ https://github.com/winebarrel/
3.
本日の趣旨 Chefをディスりに来ました
4.
本日の趣旨 * * * + うそです
n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
5.
『Puppetの優れている部分を話せ(意訳)』 といわれて横浜まで来ました 本日の趣旨 吉田 真吾 14:49 ...
Puppetのほうがこんなに便利だ、という趣旨でお話できることなどはございま せんでしょうか?(中略)Puppetでないとできない(より便利な)ことも多いのではな いかと思っているのですが。
6.
本日の趣旨 プレゼンをきいてPuppetに 乗り換える方はいないと思いますが… ● Puppetにも良い機能があるので、要望・機能拡 張でChefの改善にもつながるかな ● これからPuppet
or Chefを選択する人は、選参 考になるかな …という感じです
7.
弊社とPuppetのおつきあい 2009年 一部サーバにPuppetを導入 大嫌いでした ● 適用時にエラーがいっぱい ● リソース競合の解消がめんどくさい ●
サーバとの認証でエラーがでる ● 外部DSLがわかりにくい etc.
8.
弊社とPuppetのおつきあい 2010年 AWSの検証開始 とりあえずpuppetを選択
9.
弊社とPuppetのおつきあい 2011年 AWSに移行 現在とおおむね同じPuppetの構成 ● ENCは未使用(ノードの更新は手動) ● manifestの書き方がめちゃくちゃ (スタイルガイドがなかった?)
10.
弊社とPuppetのおつきあい 2011年 Puppetに嫌気が差していたので Chefに移行しようとしていた …が、諸事情により断念
11.
弊社とPuppetのおつきあい 2012年 VPCに移行 Puppetまわりも刷新 ● ENCの導入 ● スタイルガイドに従ってリファクタリング ●
各種プラクティスに従って設計を変更 (継承廃止!)
12.
現在のサーバ構成 ● クライアントサーバ構成 ● サーバ台数は500〜600台 ●
基本的にすべてpuppetで管理
13.
クライアント側の機能の比較
14.
クライアント側の機能の比較 ディレクトリ構成 Puppet(クックパッドの場合) ├── lib ├── manifests ├──
modules │ ├── apache │ │ ├── files │ │ ├── manifests │ │ └── templates │ ├── nginx │ ├── roles │ ├── app_server │ │ ├── files │ │ ├── manifests │ │ └── templates │ ├── db_server │ │ ├── manifests │ │ └── templates │ └── types Chef ├── cookbooks │ ├── apache │ │ ├── attributes │ │ ├── definitions │ │ ├── files │ │ ├── libraries │ │ ├── providers │ │ ├── recipes │ │ ├── resources │ │ └── templates │ └── nginx │ ├── attributes │ ├── definitions │ ├── files │ ├── libraries │ ├── providers │ ├── recipes │ ├── resources │ └── templates ├── data_bags ├── nodes │ ├── app-001.json │ └── db-001.json ├── roles │ ├── app.json │ └── db.json ├── site-cookbooks └── solo.rb
15.
クライアント側の機能の比較 ディレクトリ構成 ● PuppetにChefのような 決められたディレクトリ構成はない ● ベストプラクティスを追求すると 似たような構成になると思います
16.
クライアント側の機能の比較 モジュール(クックブック)とロール Puppet # manifest class nginx
{ package { 'nginx': ensure => '1.2.2.1', } service { 'nginx': ensure => running, enable => true, require => Package['nginx'], } file { '/etc/nginx/enginx.conf': ensure => present, source => template('...'), owner => 'root, ... notify => Service['nginx'], } } # role class app { include nginx file { '/etc/hosts': ... } } Chef # recipe package 'nginx' do action :install version '1.2.2.1' end service 'nginx' do action { :enable, :start } end template '/etc/nginx/nginx.conf' do source 'nginx.conf.erb' owner 'root' mode 0644 notifies :reload , 'service[nginx]' end  # role: app.json { "run_list": [ "role[nginx]" ] }
17.
クライアント側の機能の比較 モジュール(クックブック)とロール Puppet # カスタムタイプ define sysctl($value)
{ exec { "exec_sysctl_$name": command => "sysctl -w $name=$value}", unless => "sysctl -n ${name} | fgrep -q $value", path => '/bin:/sbin:/usr/sbin:/usr/bin', } # ... sysctl { 'kernel.domainname': value => 'example.com', } Chef # カスタムリソース define :sysctl do bash "exec-sysctl-#{params[:name]}" do code <<-EOS sysctl -w #{params[:name]=#{params[:value]} EOS not_if <<-EOS sysctl -n ${params[:name]} | fgrep -q #{params[:value]} EOS end end # ... sysctl 'kernel.domainname' do value 'example.com' end
18.
クライアント側の機能の比較 モジュール(クックブック)とロール ● 基本的にはほとんど同じだと思います ○ 見えない人は3回瞬きしてください ●
ChefのRuby DSLはうらやましいです ○ PuppetのRuby DSLはお亡くなりになります ○ 既存のDSLを拡張するようですが(何故…) ● ビルドインのリソースは Chefのほうが充実しているかも
19.
クライアント側の機能の比較 モジュール(クックブック)とロール ● Puppetのロールの実態はモジュールです ○ 単にモジュールをまとめるモジュールというだけ ●
ロールにリソースを定義できるので、Chefよりも やや柔軟かも
20.
クライアント側の機能の比較 モジュール(クックブック)とロール ● ohaiの代わりにfacterというツールで システム情報を収集します
21.
クライアント側の機能の比較 モジュール(クックブック)とロール ● Puppetはリソース毎に依存性を定義します ○ 未定義の場合順番はランダム ○
上から順に適用して欲しいこともあります… ● Chefは記述順に適用 ○ リソース毎に依存性を定義できるのかは、 分かりませんでした(あったら教えてください)
22.
クライアント側の機能の比較 Puppet独自の機能 Ruby DSLが使えないのは大変残念ですが いくつかPuppet独自の機能があります (便利かどうかはさておき)
23.
クライアント側の機能の比較 継承 Puppet Style Guide "Inheritance
should be avoided." class freebsd inherits unix { File['/etc/passwd'] { group => 'wheel' } File['/etc/shadow'] { group => 'wheel' } }
24.
クライアント側の機能の比較 継承 ● 一言でいえば「使うな」 二言で言えば「死んでも使うな」 ● 使って良いことはありません ○
リソース競合の解決が難しくなります ○ 仮想リソースという解決策もありますが… ■ http://gihyo.jp/admin/serial/01/puppet/0013
25.
クライアント側の機能の比較 Parameterised Classes ● モジュールをテンプレートとして使えます ●
Chefだとロールに属性を定義して クックブックに渡す感じでしょうか? # module class apache($version) { ... class contents ... } # role class webserver { class { 'apache': version => '1.3.13' } }
26.
クライアント側の機能の比較 Run Stage ● 適用順を制御できます ●
Chefで必要になる機能ではないですね… stage { 'first': before => Stage['main'] } stage { 'last': require => Stage['main'] } class { 'apt-keys': stage => first; 'sendmail': stage => main; 'apache': stage => last; }
27.
クライアント側の機能の比較 Function server-idを設定する関数 module Puppet::Parser::Functions newfunction(:mysql_server_id, :type
=> :rvalue) do |args| ip_addr = lookupvar('ipaddress') ip_addr = IPAddr.new(ip_addr) # IPアドレスは下位 16ビットを整数値として使う ip_addr = (ip_addr.to_i & 0xFFFF) server_id = '%02d%03d%05d' % [ 0, # 0〜41の連番 392, # 国コード(http://ja.wikipedia.org/wiki/ISO_3166-1_numeric) ip_addr, ] # 先頭の0は削除 server_id.sub!(/A0+/, '') return server_id end end # my.cnf.elb ... server-id = <%= scope.function_mysql_server_id %> ...
28.
クライアント側の機能の比較 Function ● 共通で使う関数を定義できます ○ マニフェスト・テンプレート、どこでも使えます ●
シンタックスは例に漏れずダサいです ● Chefはグローバル関数の定義場所が よく分からなかったです…
29.
クライアント側の機能の比較 まとめ ● Puppetは「Ruby DSLを使えないのがイけてな い」に尽きると思います ●
とはいえ似たような感じです ● Puppet独自の機能がありますが、だからといっ てPuppetに優位性があるかは微妙です ● ある程度の機能差はそのうち埋まる気がします
30.
クライアント側の機能の比較 たぶん両方で使えるTips ● モジュール(クックブック)は細かく分けましょう ● ミドルウェアのバージョンは極力書きましょう ●
ミドルウェアのメジャーバージョンはモジュール を分けましょう ● 設定ファイルの抽象化はロール単位でやるとよ いです
31.
クライアント側の機能の比較 たぶん両方で使えるTips ● まめに適用しないと腐ります ● オンラインで適用できるようにしておくと腐敗を 防げます ○
restart等を避けるなど ● Puppet configuration PatternsはChefでも参 考になると思います ● Chef/Puppetよりさらに前の処理を行うツールを 作っておくといろいろ捗ります
32.
運用の機能の比較
33.
運用の機能の比較 chef-solo ● puppet-applyというコマンドで同じようなことが できます ● マニフェスト(レシピ)単位で指定するのでちょっ と感じが違うかも $
puppet apply -l /tmp/manifest.log manifest.pp $ puppet apply --modulepath=/root/dev/modules -e "include ntpd::server" $ puppet apply --catalog catalog.json
34.
運用の機能の比較 knife ● knifeの代わりとしてcapistoranoでサーバへの 登録(というかデプロイ)を行います ● Puppetのサーバはファイル管理なので、デプロ イの実装は簡単です
35.
運用の機能の比較 knife-solo ● 同様の機能はPuppetにはありません… ● 手元のちょっとした修正を適用できるのが良さ そうですね ○
knife-solo: レシピ修正→適用テスト→git push ○ puppet(C/S): レシピ修正→git push→適用テスト
36.
運用の機能の比較 chef-server Puppetのキラー機能 その① puppet-master (サーバ) ●
情報をファイルで管理 ● ファイルをサーバにただ置くだけ ● 変更はサーバが自動検知 ● gitでそのままファイルを 管理・デプロイできる!
37.
chef-server gitで設定を管理すると… ● 特別なツールがいらない ● 他のツールと組み合わせやすい ●
GitHubと組み合わせて レビュー・pull reqできる! 運用の機能の比較
38.
運用の機能の比較 chef-server chef-server ● 情報をDBで管理 ● 変更はknife経由だけ? ●
バージョン管理はできるようですが… ○ diffとかとれるんでしょうか? ● gitとの組み合わせ事例も一応ありますね
39.
運用の機能の比較 ノード管理 Puppetのキラー機能 その② ENC(External Node
Classifiers) ● ノード情報を動的に定義 ● 変数(Chefの属性)も動的に定義 ● EC2のAPIを使うことで ノード管理をAWSに委譲できる!
40.
運用の機能の比較 ノード管理 Chefの場合… ● 動的なノード定義の情報を探したのですが見つ からず… ● EC2でサーバが増減する場合、どのように管理 しているのでしょうか?(cronで定期的に更 新?)
41.
運用の機能の比較 chef-server+gitとENCについて Opscodeが本気になれば、すぐに実装される気が します。ただ、chef-serverは総合的なサーバ管理 ツールを目指しているように見受けられるので、ポ リシー的にすぐに実装はされないかなーと
42.
運用の機能の比較 chef-server+gitとENCについて knife-soloで運用するのも手ですが、すべての情 報がrsyncで転送されるのが気になります… (サーバ100台に適用、とか困りそうです)
43.
運用の機能の比較 どなたかgitの使えるの 軽量chef-serverを 作るとよいと思います
44.
運用の機能の比較 その他 ● 「dry-runできないんだ、やーい」と思ってたら、 とっくに実装されてました… ● PuppetにもWeb
UIはありますが、あんまり使っ たことはないです ● Puppetでもそうなんですが、クライアントをデー モン化してる方はいるんでしょうか?ものすごく 怖いのですが…
45.
おまけ
46.
おまけ さくっと実装できそうだったので chef-solo-encというのをつくりました chef-soloでENC的な機能を実現します
47.
おまけ DEMO
Download