Movatterモバイル変換


[0]ホーム

URL:


Gosuke Miyashita, profile picture
Uploaded byGosuke Miyashita
PPT, PDF2,748 views

Puppet Best Practices? at COOKPAD

Embed presentation

Downloaded 52 times
(株) paperboy&co. 宮下 剛輔 2009/12/3
自己紹介 宮下 剛輔 mizzy, id:MIZZY gosukenator(twitter, gmail) http://mizzy.org/ ペパボで技術責任者というのをやってます 子だくさん 11/24 に 4 人目が生まれました 主に Perl 界隈で活動してます が、最近停滞気味… ドクターペッパー好きとして一部で知られてます
 
 
アジェンダ エラー通知 ノード情報管理 クラス exec リソース モジュール化 最近の機能追加
 
エラー通知 Puppet にはエラーだけ通知する仕組みがない? tagmail は特定のクラスに関するログの通知先アドレスを指定できるが、エラーのみ通知、ということができない 正常なログを送ってもらってもうざいだけ なので、別の方法を考える syslog 設定で、 err  以上のレベルのログを分離してやると、あとはどうにでもできる
エラー通知 puppet.conf [puppetd] syslogfacility = local0 syslog.conf local0.err;local0.crit;local0.alert;local0.emerg \ /var/log/puppet/error.log
 
ノード情報管理 最初は LDAP でやってみた イマイチだった LDAP でノード管理するメリットがあまりない LDAP に精通してる人がいない
ノード管理 現在は Cobbler を利用 Cobbler ではノード情報の登録が必須で、それを Puppet にも流用できて一石二鳥 Cobbler は dnsmasq と連携できるので、 DNS/DHCP にもノード情報が使える cobbler-ext-nodes コマンドが付属していて、即 Puppet と連携できる
external nodes 設定 /etc/puppet/puppet.conf での設定 [puppetmasterd] external_nodes  = /usr/bin/cobbler-ext-nodes node_terminus   = exec
cobbler-ext-nodes コマンド 以下のような情報を返す $ cobbler-ext-nodes \ smtp.lolipop.jp classes :  [base, smtp] parameters : {from_cobbler: 1, tree: 'http://@@http_server@@/cblr/links/CentOS5.3-x86_64'}
 
クラスの分け方 サーバの役割別 サーバの役割に応じたクラス分け 粒度は大きめ web, app, batch, storage, db-master, db-slave, reverse-proxy メリット サーバの役割をひとつにしておけば、 include  するクラスはひとつなので、リソースの重複がない デメリット 一時的に別の役割も兼ねる、といったことが柔軟にできない 重複しやすそう
リソースの重複 class   web  { package  { ‘httpd’: ensure => present } } class   reverse-proxy  { package  { ‘httpd’: ensure => present } } node   hoge  { include  web, reverse-proxy ↑ httpd リソースが重複して怒られる }
もう一つのクラスの分け方 機能別 役割よりも更に粒度を小さく機能に分解 httpd, smtpd, storage-api, storage-tracker, storage-node メリット リソースが重複しにくいので、一時的に別の役割を兼ねる、といったこともやりやすい アクセスが少ないうちは兼用、増えたら兼用をやめる、といったことができる デメリット リソース重複しないようにマニフェスト定義するのが面倒 virtual リソースを使いまくることになる
 
exec 脳の恐怖 構築の自動化をスクリプトでやってると、 Puppet を導入しても、何でも exec で実行してしまおうとする exec で実行してしまうと、何度実行しても同じ結果になる、という保証がないので危険 マニフェストは「実行」するものではなく「適用」するもの、と捉えるべき exec を濫用するとマニフェストのメンテもしづらくなる
exec を濫用したマニフェスト exec  {  'sysctl add': command  =>  'echo "net.ipv4.netfilter.ip_conntrack_max = 131072" >> /etc/sysctl.conf \ && /sbin/sysctl -p', onlyif  =>  "test -f /etc/sysctl.conf", unless  =>  "grep 'net.ipv4.netfilter.ip_conntrack_max' /etc/sysctl.conf 2>/dev/null" }
exec を適切に利用したマニフェスト file  {  '/etc/sysctl.conf': ensure   =>  present, source   =>  "puppet://$server/sysctl.conf", } exec  {  '/sbin/sysctl -p': subscribe   =>  File['/etc/sysctl.conf'], refreshonl y =>  true, }
 
モジュール化で使えるテクニック http://trombik.mine.nu/~cherry/w/   の trom bik さんに教えて頂いたテクニック モジュールでデフォルト値を定義しつつ、ノード固有の値で上書きしようとすると、普通のやり方では怒られるので、それを回避する方法をご紹介
モジュールの定義 class   apache_defaults  { $ssl  =  true } class   apache   inherits   apache_config  { $ssl_flag  =  $ssl  ? { false   => "", default  => "-DSSL" } ... }
ノード定義でデフォルト値を上書き node   "sample1.example.com"  { class   apache_config   inherits   apache_defaults  { $ssl  =  false } include   apache }
デフォルト値を使う場合 node   "sample1.example.com"  { class   apache_config   inherits   apache_defaults  { } include   apache }
ノード定義内でのクラス定義 この方法は、ノードをファイルで管理してる場合じゃないと使えない なので、 external-nodes  では使えない
 
ノード定義で正規表現が利用できる 0.25.0 からの機能 node   /^www\d+$/  { include   common }
配列への追加 0.24.6 からの機能 $ssh_users  = [ 'myself' ,  'someone' ] class   test  { $ssh_users  += [ 'someone_else' ] }
セレクタでの正規表現とキャプチャ 0.25 からの機能 $system  =  $operatingsystem  ? { /(redhat|debian)/ =>  "our system is  $1 " , default =>  "our system is unknown" , }
ケースでの正規表現とキャプチャ 0.25 からの機能 case  $hostname { /^j(ack|ill)$/ :   { notice( "Welcome  $1 !" ) } default :  { notice( "Welcome stranger" )   } }
if での比較演算 0.24.6 からの機能 if  $server  ==  "mongrel"  { include   mongrel } else { include   nginx }
 

Recommended

PPTX
Open Source System Administration Framework - Func
PDF
Ansible入門...?
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
PDF
実"戦"CakePHP Plugin
PDF
最近の PHP の話
 
PDF
Ansible入門
PDF
Ansible 入門 #01 (初心者向け)
PDF
FuelPHPで3種のprofilerを使ってみた
PDF
シェル入門
PPTX
PHP AST 徹底解説
 
PDF
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
PDF
PHPの今とこれから 2013
PDF
第21回Creators MeetUp
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
PDF
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
PDF
意識の低い自動化
PDF
PHPの今とこれから2014
PPTX
Powershell勉強会 v5 (こちらが最新です。)
PPTX
PHP と SAPI と ZendEngine3 と
 
PDF
はじめての FuelPHP
 
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
KEY
FuelPHPをさわってみて
PPTX
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
PPTX
php and sapi and zendengine2 and...
 
PDF
Em synchrony について
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PPTX
PHP AST 徹底解説(補遺)
 
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
PDF
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
PPT
Performance and Scalability of Web Service

More Related Content

PPTX
Open Source System Administration Framework - Func
PDF
Ansible入門...?
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
PDF
実"戦"CakePHP Plugin
PDF
最近の PHP の話
 
PDF
Ansible入門
PDF
Ansible 入門 #01 (初心者向け)
PDF
FuelPHPで3種のprofilerを使ってみた
Open Source System Administration Framework - Func
Ansible入門...?
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
実"戦"CakePHP Plugin
最近の PHP の話
 
Ansible入門
Ansible 入門 #01 (初心者向け)
FuelPHPで3種のprofilerを使ってみた

What's hot

PDF
シェル入門
PPTX
PHP AST 徹底解説
 
PDF
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
PDF
PHPの今とこれから 2013
PDF
第21回Creators MeetUp
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
PDF
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
PDF
意識の低い自動化
PDF
PHPの今とこれから2014
PPTX
Powershell勉強会 v5 (こちらが最新です。)
PPTX
PHP と SAPI と ZendEngine3 と
 
PDF
はじめての FuelPHP
 
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
KEY
FuelPHPをさわってみて
PPTX
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
PPTX
php and sapi and zendengine2 and...
 
PDF
Em synchrony について
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PPTX
PHP AST 徹底解説(補遺)
 
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
シェル入門
PHP AST 徹底解説
 
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
PHPの今とこれから 2013
第21回Creators MeetUp
15分でCakePHPを始める方法(Nseg 2013-11-09 )
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
意識の低い自動化
PHPの今とこれから2014
Powershell勉強会 v5 (こちらが最新です。)
PHP と SAPI と ZendEngine3 と
 
はじめての FuelPHP
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
FuelPHPをさわってみて
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
php and sapi and zendengine2 and...
 
Em synchrony について
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PHP AST 徹底解説(補遺)
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014

Viewers also liked

PDF
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
PPT
Performance and Scalability of Web Service
PPT
PDF
2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm
PDF
第二回Bitvisor読書会 前半 Intel-VT について
PDF
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
PDF
SSH力をつけよう
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
Performance and Scalability of Web Service
2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm
第二回Bitvisor読書会 前半 Intel-VT について
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
SSH力をつけよう

Similar to Puppet Best Practices? at COOKPAD

PPTX
Puppetのススメ
PDF
Puppet of-2015-forupload
PDF
Sqale の Puppet と Chef (と テスト)
 
PDF
Puppet on AWS
PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
PPTX
ネットワークエンジニアのための Puppet / Chef
 
PPTX
php-src の歩き方
 
PDF
配布用Supervisordによるnode.jsの運用
PPTX
Net opscoding#4発表資料
PDF
サーバ構築自動化 On aws sqaleの場合
PDF
Fabric Essentials
PPT
Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
PDF
Ruby way-openstack.keynote
PDF
Chef+serverspec+werckerでインフラCIする話
PDF
お手軽並列処理
PPTX
StackStormを活用した運用自動化の実践
PPTX
今時のDev opsの取り組み事例集
PDF
LXC入門 - Osc2011 nagoya
PDF
Rubyによるお手軽分散処理
PDF
PaaSの作り方 Sqaleの場合
 
Puppetのススメ
Puppet of-2015-forupload
Sqale の Puppet と Chef (と テスト)
 
Puppet on AWS
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
ネットワークエンジニアのための Puppet / Chef
 
php-src の歩き方
 
配布用Supervisordによるnode.jsの運用
Net opscoding#4発表資料
サーバ構築自動化 On aws sqaleの場合
Fabric Essentials
Chef Casual Talk Vol.1 最近、日本でPuppetの影が薄くなって悲しいので、 ここであえてPuppetの話をする
Ruby way-openstack.keynote
Chef+serverspec+werckerでインフラCIする話
お手軽並列処理
StackStormを活用した運用自動化の実践
今時のDev opsの取り組み事例集
LXC入門 - Osc2011 nagoya
Rubyによるお手軽分散処理
PaaSの作り方 Sqaleの場合
 

More from Gosuke Miyashita

PDF
Walter ファミリーの紹介 at Shibuya.go#1
PDF
Serverspec at Testing Framework Meeting
PPTX
Serverspec at July Tech Festa 2013
PPTX
Serverspec at hbstudy #45
PPTX
NoSQLに関するまとめ
PPTX
イベント駆動プログラミングとI/O多重化
PPTX
Maglica - A Simple Internal Cloud Tool at #techkayac
PPTX
DevOps とは何か 何であるべきか
PPTX
Inside Sqale's Backend at RubyConf Taiwan 2012
PPTX
Ia型超新星とチャンドラセカール限界
PPTX
How Perl Changed My Life
PPTX
Inside Sqale's Backend at YAPC::Asia Tokyo 2012
PPTX
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
PPT
Assurer - a pluggable server testing/monitoring framework
PPTX
10分でわかるDevOps
PPTX
DevOpsって何?
PPT
How Danga::Socket handles asynchronous processing and how to write asynchrono...
PPT
Danga::Socketの非同期処理の仕組みとPerlbalで非同期処理するプラグインを書く方法
PPT
Xen Summit 2008 Tokyo - Operating Xen domains through LL(Perl/Python) with li...
PPT
関西オープンソース 2008 30days Albumの裏側
Walter ファミリーの紹介 at Shibuya.go#1
Serverspec at Testing Framework Meeting
Serverspec at July Tech Festa 2013
Serverspec at hbstudy #45
NoSQLに関するまとめ
イベント駆動プログラミングとI/O多重化
Maglica - A Simple Internal Cloud Tool at #techkayac
DevOps とは何か 何であるべきか
Inside Sqale's Backend at RubyConf Taiwan 2012
Ia型超新星とチャンドラセカール限界
How Perl Changed My Life
Inside Sqale's Backend at YAPC::Asia Tokyo 2012
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Assurer - a pluggable server testing/monitoring framework
10分でわかるDevOps
DevOpsって何?
How Danga::Socket handles asynchronous processing and how to write asynchrono...
Danga::Socketの非同期処理の仕組みとPerlbalで非同期処理するプラグインを書く方法
Xen Summit 2008 Tokyo - Operating Xen domains through LL(Perl/Python) with li...
関西オープンソース 2008 30days Albumの裏側

Puppet Best Practices? at COOKPAD


[8]ページ先頭

©2009-2025 Movatter.jp