Submit Search
Upload
Puppet of-2015-forupload
•
10 likes
•
5,564 views
Uchio Kondo
Follow
ペパボテックカンファレンス in Fukuoka 2015
Read less
Read more
Technology
Report
Share
Report
Share
1 of 169
Download now
Download to read offline
Recommended
20150627
20150627
Kiyoshi Watanabe
Windowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
万年ビギナーによるPythonプログラミングのリハビリ計画
万年ビギナーによるPythonプログラミングのリハビリ計画
Takeshi Akutsu
BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3
Atsushi Odagiri
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
Shohei Tai
Pythonコミュニティが私に与えてくれたもの
Pythonコミュニティが私に与えてくれたもの
TomomiK
Recommended
20150627
20150627
Kiyoshi Watanabe
Windowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
万年ビギナーによるPythonプログラミングのリハビリ計画
万年ビギナーによるPythonプログラミングのリハビリ計画
Takeshi Akutsu
BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3
Atsushi Odagiri
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
Shohei Tai
Pythonコミュニティが私に与えてくれたもの
Pythonコミュニティが私に与えてくれたもの
TomomiK
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
勉強会 Cvml python基礎
勉強会 Cvml python基礎
真哉 杉野
Python札幌201406
Python札幌201406
Shinya Okano
パッケージングの今と未来
パッケージングの今と未来
Atsushi Odagiri
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
株式会社 システムヨシイ
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
Takayuki Shimizukawa
Stapy#17LT
Stapy#17LT
drillan
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Kazufumi Ohkawa
Stapyユーザーガイド
Stapyユーザーガイド
Takeshi Akutsu
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk
Katayanagi Nobuko
社内Git勉強会向け資料
社内Git勉強会向け資料
Hiroki Saiki
IPython notebookを使おう
IPython notebookを使おう
Kazufumi Ohkawa
Pythonの会社を 9年間経営してきて分かったこと
Pythonの会社を 9年間経営してきて分かったこと
Haruo Sato
第1回python勉強会
第1回python勉強会
Yoshio Shimomura
Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
Katayanagi Nobuko
チームで活用するAnaconda入門
チームで活用するAnaconda入門
Takeshi Akutsu
S14 t0 introduction
S14 t0 introduction
Takeshi Akutsu
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
Takeshi Akutsu
The story became happy with itamae
The story became happy with itamae
Nobutoshi Ogata
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
Tsuyoshi Torii
More Related Content
What's hot
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
勉強会 Cvml python基礎
勉強会 Cvml python基礎
真哉 杉野
Python札幌201406
Python札幌201406
Shinya Okano
パッケージングの今と未来
パッケージングの今と未来
Atsushi Odagiri
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
株式会社 システムヨシイ
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
Takayuki Shimizukawa
Stapy#17LT
Stapy#17LT
drillan
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Kazufumi Ohkawa
Stapyユーザーガイド
Stapyユーザーガイド
Takeshi Akutsu
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk
Katayanagi Nobuko
社内Git勉強会向け資料
社内Git勉強会向け資料
Hiroki Saiki
IPython notebookを使おう
IPython notebookを使おう
Kazufumi Ohkawa
Pythonの会社を 9年間経営してきて分かったこと
Pythonの会社を 9年間経営してきて分かったこと
Haruo Sato
第1回python勉強会
第1回python勉強会
Yoshio Shimomura
Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
Katayanagi Nobuko
チームで活用するAnaconda入門
チームで活用するAnaconda入門
Takeshi Akutsu
S14 t0 introduction
S14 t0 introduction
Takeshi Akutsu
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
Takeshi Akutsu
What's hot
(20)
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
勉強会 Cvml python基礎
勉強会 Cvml python基礎
Python札幌201406
Python札幌201406
パッケージングの今と未来
パッケージングの今と未来
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
Stapy#17LT
Stapy#17LT
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Stapyユーザーガイド
Stapyユーザーガイド
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk
社内Git勉強会向け資料
社内Git勉強会向け資料
IPython notebookを使おう
IPython notebookを使おう
Pythonの会社を 9年間経営してきて分かったこと
Pythonの会社を 9年間経営してきて分かったこと
第1回python勉強会
第1回python勉強会
Python札幌 2012/06/17
Python札幌 2012/06/17
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
チームで活用するAnaconda入門
チームで活用するAnaconda入門
S14 t0 introduction
S14 t0 introduction
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
Viewers also liked
The story became happy with itamae
The story became happy with itamae
Nobutoshi Ogata
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
Tsuyoshi Torii
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Naotoshi Seo
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
NTT DATA OSS Professional Services
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
Jumpei Miyata
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Ichito Nagata
Viewers also liked
(7)
The story became happy with itamae
The story became happy with itamae
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Similar to Puppet of-2015-forupload
Gentoo勉強会平成26/7月/5日
Gentoo勉強会平成26/7月/5日
alice ferrazzi
Puppetのススメ
Puppetのススメ
Gosuke Miyashita
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
Masahito Zembutsu
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
Kazuto Kusama
若手インフラエンジニア現状確認会 @hfm #wakateinfra
若手インフラエンジニア現状確認会 @hfm #wakateinfra
Takahiro Okumura
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
究極のディストリビューションUbuntu
究極のディストリビューションUbuntu
Kenichi Takahashi
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)
Takayuki Shimizukawa
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
Akihiro Kuwano
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
Similar to Puppet of-2015-forupload
(12)
Gentoo勉強会平成26/7月/5日
Gentoo勉強会平成26/7月/5日
Puppetのススメ
Puppetのススメ
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
若手インフラエンジニア現状確認会 @hfm #wakateinfra
若手インフラエンジニア現状確認会 @hfm #wakateinfra
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
究極のディストリビューションUbuntu
究極のディストリビューションUbuntu
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
More from Uchio Kondo
人間たちとsystemd
人間たちとsystemd
Uchio Kondo
ペパボのサービスとRuby
ペパボのサービスとRuby
Uchio Kondo
minneで学ぶクラウド脳
minneで学ぶクラウド脳
Uchio Kondo
Ruby way-openstack.keynote
Ruby way-openstack.keynote
Uchio Kondo
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
Uchio Kondo
Hashicorpツールズ
Hashicorpツールズ
Uchio Kondo
Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?
Uchio Kondo
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
Uchio Kondo
Testing in Sinatra
Testing in Sinatra
Uchio Kondo
Start-padrino
Start-padrino
Uchio Kondo
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
otomodachi-kakumei
otomodachi-kakumei
Uchio Kondo
More from Uchio Kondo
(13)
人間たちとsystemd
人間たちとsystemd
ペパボのサービスとRuby
ペパボのサービスとRuby
minneで学ぶクラウド脳
minneで学ぶクラウド脳
Ruby way-openstack.keynote
Ruby way-openstack.keynote
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
Hashicorpツールズ
Hashicorpツールズ
Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?
Drone.io のご紹介
Drone.io のご紹介
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
Testing in Sinatra
Testing in Sinatra
Start-padrino
Start-padrino
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
otomodachi-kakumei
otomodachi-kakumei
Recently uploaded
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(12)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
Puppet of-2015-forupload
1.
GMO Pepabo, Inc. Uchio
KONDO 2015/07/04 Pepabo Techconf in Fukuoka 2015年のPuppet
2.
me
3.
4.
近藤 うちお @udzura 技術基盤チーム アドバンスドシニア
5.
6.
7.
自動化厨 DevOps er
8.
hashicorp太郎
9.
Puppet?
10.
Puppetと聞いて どう思った?
11.
Puppet > 古い > 独自言語でとっつきにくい >
MizzyさんのPuppet 2系の記事 > 古い > 時代はChef、いやChefすらオワコン、Itamaeで は???? > いやRubyなんて(ry、Ansibleでは??????
12.
Puppet > 古い > 独自言語でとっつきにくい >
MizzyさんのPuppet 2系の記事 > 古い > 時代はChef、いやChefすらオワコン、Itamaeで は???? > いやRubyなんて(ry、Ansibleでは??????
13.
Puppetは2015年のいまも 継続的に開発されている アクティブなツールです
14.
本プレゼンテーションで Puppetの誤解を 少しでも解けるのなら、幸いです
15.
Puppetのご紹介
16.
Puppetとは > 構成管理のための言語です
17.
Puppetとは > 構成管理のための言語です Chef っぽいやつ
18.
Puppetとは…… > サーバのファイル、パッケージ、サービス、ユー ザその他設定をいい感じに収束させてくれて、 > なおかつコードとして残せる感じのやつです
19.
20.
21.
じっと見ていると Perl Rubyに見えてくる
22.
Puppetその他 > 中身はRuby > なので後述しますがChefと同様Rubyで!拡張機能が書けます >
clientとmaster/agent構成を選べる > Chefと同様(ry > librarian-puppet というやつでコミュニティのマ ニフェストを使える > ChefのBerkshelfと同様(ry
23.
Puppetとは > 構成管理のための言語です Chef っぽいやつ
24.
Chef が分かれば すぐ覚えられます
25.
Puppetの歴史(独断と偏見版) > 2005年 Puppetがリリースされたらしい >
∼∼∼ > 2010年 Puppet 2.6 > 2012年 Puppet 3 が出る
26.
Puppetの歴史(独断と偏見版) > 2005年 Puppetがリリースされたらしい >
∼∼∼ > 2010年 Puppet 2.6 > 2012年 Puppet 3 が出る > 2013年 伊藤直也さんが入門Chefを刊行
27.
2014年からのPuppet > 2014年 いいかげんPuppet3.6とかになる >
突然puppetserverが出現、 clojure で書かれる > 2015年 突然Puppet4が出る > そして伝説へ……
28.
勢いあるね?
29.
Why Puppet
30.
ペパボでPuppetな理由 > 社内のノウハウが非常に蓄積されている > minneのような新規のPJもPuppetで構成管理をはじめ、 非常に多くのアドバイスのもと完了した >
一番スピードが出せる
31.
ペパボでPuppetな理由 > 「RubyのDSLじゃない」ことのメリット > Rubyの機能をむやみに呼んでしまわない >
Kernel#systemやFile.exist?を直接呼ぶ混乱 > 他のツールに比べると、 勢いはあるが根本的な仕様変更は少ない > 良い枯れ方をしていると判断
32.
ツール選びで大事なこと > ひとつのツールに精通する > ちゃんとそのコミュニティに貢献する >
今日はPuppetに貢献するぞ!
33.
Puppet language update
34.
puppetserverの JVM化
35.
それまで > puppetmasterという名前だった > Ruby製 >
Rack対応していて、Passengerで動かすなど していた
36.
puppetserverの登場 > 2014/09 Puppetlabsのアナウンス >
https://puppetlabs.com/blog/puppet-server-bringing-soa-to-a- puppet-master-near-you > 要約: Clojureにするわ > えっ。……?
37.
_人人人人人人人人人人_ > 突然の <  ̄Y^Y^Y^Y^Y^Y^Y ̄
38.
勢いある事例 > PuppetserverのためにClojureのWAFをつ くったらしい > Trapperkeeper
という名前 > https://github.com/puppetlabs/trapperkeeper
39.
勢いある事例 > PuppetserverのためにClojureのWAFをつ くったらしい > Trapperkeeper
という名前 > https://github.com/puppetlabs/trapperkeeper > 既存のPuppet parserはJRuby
40.
複数JVM言語カジュアル
41.
こう変わった > 高速になったらしい > 今まで以上にインストールが楽 >
yum install puppetserver 一発に > 運用も楽 > Apache/Passengerのノウハウはいらない > 設定ファイルが新しくなっている > 既存の設定も読んでくれる、徐々にマイグレートしよう……
42.
Puppet4
43.
Puppet3の時代の終焉 > Puppet 3.7
あたりからめちゃくちゃ deprecation warningが出るように…… > ついこないだ(2015/04)、 Puppet4のリリースがされた! > https://puppetlabs.com/blog/say-hello-open- source-puppet-4
44.
消えた機能 > Ruby 1.8.7
サポートをやめる > Bad Practice的機能が消えている > Ruby DSL…… > import文 > node inheritance > ベストプラクティスに沿っていれば、何れにして も使わなそう
45.
EPP(Embedded PuPpet) > ERBのようにPuppetを埋め込む…… >
http://puppet-on-the-edge.blogspot.co.uk/2014/03/ templating-with-embedded-puppet.html
46.
Ruby並みにイテレータが…… > each! map!
filter!!!!
47.
Ruby並みにイテレータが…… > each! map!
filter!!!! type hinting!!
48.
その他変更 > パッケージが All-In-One
に > Autoloadingの挙動変更(依存をきっちり書かないと見えな くなる) > Optional Typing > 文法的変更(substring記法、Hashの展開など……) > その他たくさん…… > http://www.slideshare.net/PuppetLabs/puppet-language-40- puppetconf-2014
49.
既存のマニフェストは……? > deprecation warningを真面目に倒していれ ば問題は少ない >
Rails的な乗り切り方ですね > 後述するFactorとかRubyな奴も動く > リモートのmoduleは……PRやforkで……
50.
“– http://www.slideshare.net/PuppetLabs/puppet-language-40- puppetconf-2014 Yamata no Orochi
51.
なお、今日のExcuse > あまりに最近出たのでPuppet 4の検証が十分 ではありません…… >
今日の色々な例は、Puppet 3.xの最新版(3.8 系)で確認しています…… > 「2014年のPuppet」かもしれない
52.
Puppetを書く
53.
ディレクトリのパターン
54.
ここで登場する名著
55.
このパターン . ├── Puppetfile ├── Vagrantfile ├──
config/ ├── hiera/ ├── manifests/ ├── modules/ ├── roles/ ├── spec/ └── vendor/ └── modules/
56.
このパターン . ├── Puppetfile ├── Vagrantfile ├──
config/ ├── hiera/ ├── manifests/ ├── modules/ ├── roles/ ├── spec/ └── vendor/ └── modules/ …… 設定、capistranoとか …… hieraのデータ …… 実際に実行する、エントリポイント …… 全体で使うモジュール …… ロールとして扱うモジュール …… serverspecです! …… librarianで入れるモジュール
57.
モジュールの中のディレクトリ > こっちはPuppet的に規約がある > manifests/init.pp
が デフォルトで読まれる クラス consul になる > その他は manifests/config.pp なら クラス consul::config を定義する modules/consul ├── files/ ├── manifests/ └── templates/
58.
tamplates/, files/ 配下は…… >
諸説ある > destとディレクトリを合わせた方がいいんじゃね?派 > /etc/foo/foo.conf なら templates/etc/foo/foo.conf > 名前だけ合わせればいいよ派 > /etc/foo/foo.conf なら templates/foo.conf だけ > 被ったらサブディレクトリを切るなど > 状況による。個人的に後者でも混乱しないことが多い
59.
クラスを作る
60.
黄金パターン > dnsmasq を管理するモジュールなら: modules/dnsmasq/manifests/ ├──
config.pp ├── init.pp ├── install.pp └── service.pp
61.
init.pp > 他のクラスを読み込む > 依存を明示的に書く
62.
その他 > install.pp > パッケージを入れる >
config.pp > カスタマイズした場合設定を管理する > service.pp > サービスの状態(有効か、立ち上がっているか)の定義 > 定義しておけば、他のモジュールから notify でキックで再起動できる > config.ppは変更時にかならずservice.ppをnotifyするはず
63.
それ以外っぽい要素は > 適宜クラスを作成すれば良い > 依存するyum
repoを定義するのを切り出すとか > プラグインのインストールを切り出すとか
64.
一つのクラスの責務を 小さくするのがコツ
65.
依存関係の記述
66.
Puppetの依存関係解決は自動じゃない > Chefのように「上から実行」とは限らない > ->
と > がある > Resource[ A ] -> Resource[ B ] > AのあとにBを設定する > Resource[ A ] > Service[ B ] > Aを設定したら、サービスBを再起動する
67.
「一発で通す」ために > ChefにしてもPuppetにしても、「失敗するんで 何回かキックする」ということがあるはず > 冪等性万歳! >
しかしPuppetの場合、「ここが足りないからエ ラーなんだな」というのを追いかければ、 依存性を明示することで「通せる」ようにしやす い
68.
具体例 > Nagiosを入れる > Nagiosの自作プラグインを入れる
69.
どっちが先かは実行時による > なので、「プラグイン」→「Nagios」の順だ と、 nagios-plugins-allパッケージの生成す るディレクトリが作られていないので、プラグ インのfileリソースが失敗する >
なので nagios-plugins-all -> カスタムプラグ インの依存を明示したい
70.
すればいいじゃない
71.
無事通るようになる > よかったですね
72.
「通知する」パターン > 典型的: 「zipを落として解凍したい」 >
解凍する処理が毎回走ると無駄なので、 refreshonly にして notify でキック > Chefで言うと…… > action :nothing する > ダウンロードの処理とかで notify exec[unzip]
73.
例えばこう
74.
Defined Types
75.
Defined Types > 「ひとまとまりのリソース定義」を 独立したリソースのように見せかけることがで きる >
マクロ感覚 > コツとしては、Defined Typesの中でも 依存関係を意識すること
76.
ここでも具体例 > consulのcheck設定を defined typeにした >
ディレクトリのために consulパッケージ が必須とする > テンプレートの場所は 規約で。
77.
こういう書き方ができるようになる > 依存記述が綺麗になる > <¦
¦> はマニア機能だが、「∼に所属するすべて のリソース」ぐらいの意味
78.
その他の ベストプラクティス
79.
参考便利スライド > http://www.slideshare.net/PuppetLabs/ upgrading-puppet > Puppet
4対応記法こそが良い記法です
80.
Puppet in Action
81.
Puppet in Action
とは > あんまり日本語で説明している人がいないよう な機能を紹介します
82.
Hiera
83.
Hieraとは > Hierarchy Data >
環境別の設定項目をYAMLに切り出せる
84.
Hieraの例です > hiera/hieta.yaml > hiera/development/common.yaml
85.
Custom Function
86.
Puppetの関数をrubyで書ける > rootfsがaufsかを判定する例 > Docker分岐カジュアル
87.
Custom Facter
88.
そもそもFacterとは > 設定対象サーバの様々なパラメータを動的に簡 単に取得するやつ > たとえばホスト名、OSの種類、メモリやCPU の情報、インタフェース、などなど…… >
factor ではない
89.
そもそもFacterとは > 設定対象サーバの様々なパラメータを動的に簡 単に取得するやつ > たとえばホスト名、OSの種類、メモリやCPU の情報、インタフェース、などなど…… >
factor ではない > いろいろ言いましたが、Chefでいうohaiです
90.
カスタムFactorもRubyで。
91.
なんでFunctionよりFacterか > Facterは、環境変数で上書きできるので、色々 な意味で扱いやすい > FACTER_FOO
で $::foo に値が入る
92.
☕ 休憩 ☕
93.
PuppetとインフラCI
94.
ここからの話題は Chef/Ansible/Itamaeにも 置き換えられるよ!
95.
あと、ここから 難易度一気に上がる気がする……
96.
「壊れないマニフェスト」
97.
再掲:「一発で通す」ために > ChefにしてもPuppetにしても、「失敗するんで 何回かキックする」ということがあるはず > 冪等性征万歳! >
しかしPuppetの場合、「ここが足りないからエ ラーなんだな」というのを追いかければ、 依存性を明示することで「通せる」ようにしやす い
98.
再掲:「一発で通す」ために > ChefにしてもPuppetにしても、「失敗するんで 何回かキックする」ということがあるはず > 冪等性征万歳! >
しかしPuppetの場合、「ここが足りないからエ ラーなんだな」というのを追いかければ、 依存性を明示することで「通せる」ようにしやす い
99.
再現しないマニフェスト > 「本番なら動くけど手元で再現できないなあ ……」 > 逆に、「本番に適用するのこわくね?」 >
安心感が欲しい
100.
apply恐怖症を克服する > そのためには、何度もカジュアルに puppetマニフェストを実行することが > 一番の近道である。 >
なんども実行できるということは、 どこでも実行できるということにつながる
101.
よろしい ならばCIだ
102.
Docker
103.
DockerとインフラCI > Puppetのテストなので、「実際に」何かのマ シンにpuppetを流さないといけない > マシンの例: >
VirtualBox……重い > kvm……重い、Mac上で動かせない > 世の中にはコンテナ技術というものがある……なるほど?
104.
Dockerが解決すること > 軽量で、すぐに立ち上がること > ベースとなるイメージのコード化、使い回し >
Macでも手軽に試せる > boot2dockerの存在
105.
Dockerが解決しないこと > kernelは、ホストのLinuxのそれになる…… > なので一部のパッケージが動かなかったりする >
まだまだバグ、undocumentedな挙動がある
106.
cap_set_file問題
107.
cap_set_file問題 > httpd、systemdなど一部のパッケージが aufsバックエンドでインストールできない > 原因は、aufs側の問題で、カーネルのバージョンをあげる と解決 >
3.18以降とのこと > https://github.com/boot2docker/boot2docker/pull/818 など > devicemapperでは問題は起きない (ただしパフォーマンスの問題はある)
108.
気持ちになって Dockerを使う
109.
Serverspec
110.
Serverspecとは > Puppetに限らず、サーバの状態を宣言的に、 手軽に検査する敷居の低いツール > rspecを利用 >
specinfraという、サーバ操作をいい感じに抽 象化するライブラリを使う
111.
なんだかPuppetと相性がいい気がする > 気のせい?
112.
Puppetを流したあとで > もちろん、Serverspecも流す! > Puppet的には通過するけどいけてないパター ン(例:
サービスが立ち上がったはいいけどす ぐに落ちる)もあるので、それを検知する
113.
Ruby 2.0系のトラップ…… > コメントに日本語が混ざると、エンコーディン グってやつがね…… >
RUBYOPT=-Eutf-8:utf-8 を渡して解決 > 詳細の話は > http://docs.ruby-lang.org/ja/2.2.0/method/ Encoding/s/default_external.html
114.
Drone.io
115.
って何? > CIするやつ > トラヴィスなんとかのようなことがOSSででき て、割と運用が楽 >
書いた: 「Drone.io のご紹介」 > ムックもある 「Dockerエキスパート養成読本」 http://www.slideshare.net/udzura/droneio
116.
Drone loves Docker >
具体的には、ビルドごとにDockerのコンテナ を立ち上げるので、クリーンな環境でテストが できて便利である
117.
118.
Docker in Dockerする >
Dockerコンテナからは、当然Dockerサーバ 自体が見えるので、 > そこをクライアントから叩けばコンテナないか ら別のコンテナを立ち上げ、アクセスできる > DockerによるインフラCIが実現!!1
119.
docker-in-docker > Dockerfileです > refs:
https://registry.hub.docker.com/u/igneoussystems/docker-client/dockerfile/
120.
ここまでの全体の様子
121.
ここまでの全体の様子 Puppetの コードをプッシュ
122.
ここまでの全体の様子 Drone.io のジョブで 素のDockerコンテナを作成。 そのコンテナにPuppetを適用、 Serverspecも流す
123.
ここまでの全体の様子 ※merge後のCIが成功したら、 Puppetserverに自動でマニフェストを配備 (Continuous Delivery)
124.
CIのコツ
125.
ずばり、やりすぎないこと です……
126.
インフラCIのyak要素 > そもそも本番と環境違うじゃん > Docker
vs KVM, Xen……(時にはベアメタル) > 動かないマニフェストはどうしても動かない > エッジすぎる技術要素 > Dockerは人類には早すぎるのか?何度も思い、心 が折れそうになりました
127.
CIでスキップする分岐があってもいいじゃない…… > 「何も動かさない」ことと「まあ、だいたい動 いてる」こととの間には越えられない壁がある
128.
インフラCIの将来…… > そもそもOpenStack基盤できつつあるし そこでやればいいんじゃと思ってる (起動時間問題はある) > vagrant-kvm
とかを試す
129.
Puppetと 未来のデプロイについて
130.
手動のサーバ構築を イメージをポンと 起動するだけに したお話
131.
イメージぽんのための概念 > Orchestration > Application
Service Deployment > Configuration > System Configuration > Bootstrapping > OS install > Cloud or VM Image Launch http://mizzy.org/blog/2010/03/26/1/
132.
要するに > 秘伝のイメージを作る > できれば完全にコード化された形で作る >
秘伝のイメージの起動初期化処理を完璧にする > 既存サーバとの繋ぎこみを綺麗にする > これらすべてが自動化すれば、 サーバ構築はすべて自動化できるということになる
133.
バンド「The DevOps」 > メンバー紹介 >
ドラム: Packer > ベース: cloud-init > ギター: Consul > ボーカルはあなたのWebアプリだ!
134.
Packer
135.
Packerがやってること > プラットフォーム別に起動・接続・イメージ化 を抽象化する(Builder) > 接続して様々なプロビジョニング処理を走らせ る(Provisioner) >
後処理をする(Post-Processor)
136.
AWS/OpenStackなどのクラウドでは > あらかじめ公開 ペアをAPI経由で用意 >
最低限のイメージからインスタンスを立ち上げる > 立ち上げたインスタンスにつなぐ > シェル、ファイルアップロードなど 各種プロビジョニングをする > イメージ化のAPIを叩いてイメージにする
137.
AWS/OpenStackなどのクラウドでは > あらかじめ公開 ペアをAPI経由で用意 >
最低限のイメージからインスタンスを立ち上げる > 立ち上げたインスタンスにつなぐ > シェル、ファイルアップロードなど 各種プロビジョニングをする > イメージ化のAPIを叩いてイメージにする ここはBuilderで やってくれる
138.
AWS/OpenStackなどのクラウドでは > あらかじめ公開 ペアをAPI経由で用意 >
最低限のイメージからインスタンスを立ち上げる > 立ち上げたインスタンスにつなぐ > シェル、ファイルアップロードなど 各種プロビジョニングをする > イメージ化のAPIを叩いてイメージにする ここはBuilderで やってくれる ※まあOpenStackのは自作したけど、それはまた別の機会で……
139.
AWS/OpenStackなどのクラウドでは > あらかじめ公開 ペアをAPI経由で用意 >
最低限のイメージからインスタンスを立ち上げる > 立ち上げたインスタンスにつなぐ > シェル、ファイルアップロードなど 各種プロビジョニングをする > イメージ化のAPIを叩いてイメージにする
140.
プロビジョニングが うまくいかないとダメ
141.
そこでPuppet
142.
Puppetを流す! > masterをあらかじめ立てておけば、 > あとは
puppet agent するだけで完成!
143.
Puppetの質が重要 > そのために、一発で通るPuppetであることが 非常に重要 > なのでCIなど、壊さない工夫が重要になる >
Packerのプラグインがあるけど…… > シェル数行なのでシェルプロビジョナでやればいいと思う
144.
イメージはできた
145.
それからどうする?
146.
cloud-init
147.
cloud-initって知ってますか…… > AWSerは「userdata」とかサラッと言ってる けど割と独特の概念 > OpenStack,
GCEその他でも共通 > 今日は覚えて帰ってください
148.
cloud-init概要 > クラウド系プラットフォームにおいて、 > イメージからVMを立ち上げて、直後に走らせ る処理を簡潔に書くミドルウェア >
その「初期化指示書」がuserdataと呼ばれる > シェルスクリプト > 宣言的にyamlで記述もできる
149.
yaml
150.
こんなことをさせる > 起動時にHDDを拡張する > ホスト名を変える >
mackerel、Consulなどの クラスタにジョインする > 起動したよ∼って通知する > などなど……
151.
深い話は > [cloud-init zetta.io]
で検索するとわりといい ドキュメントが出る > [cloud-init kenchan per-xxx]でry > もしくは会場の linyowsさんに聞く
152.
userdataの指定の様子 > nova boot
--flavor m1.xlarge --image foo_base_image --security-groups base,www --user-data ./userdata/foo.yaml
153.
やった!起動したぞ
154.
起動したあとも いろいろあるんだわ……
155.
Consul
156.
Consul > クラスタをいい感じにしてくれるやつ > ヘルスチェックとか >
クラスタの状態に応じて設定ファイルを 自動生成するとか > やっぱり通知とか
157.
詳細は前回のやつで…… > [udzura consul]
158.
まとめ
159.
Puppetはナウい
160.
Puppetは 枯れていつつも 開発が活発
161.
情報が 古いだけで古いイメージ よくない
162.
Puppetは 扱いやすい!
163.
Puppetでなくてもいいけど、 ツールの本質を掴んで 使いこなそう!
164.
Puppetはナウい
165.
Special Thanks
166.
圧倒的感謝 > 人間puppet masterこと @lamanotlama
さん > 若手インフラ @hfm さん > Puppet学習初期のこのお二人のご指導なくし て、ここまで素早い学習はなかったと思います
167.
画像引用元 > タイトル画像 > https://commons.wikimedia.org/wiki/ File:Takarazuka_Grand_Theater05s4s3104.jpg >
GFDL+creative commons2.5
168.
[PR]
169.
ペパボにはPuppetを使う仕事があります > 福岡でもインフラ絶賛募集! > ペパランチョンでお話を。 >
https://pepabo.com/recruit/pepaluncheon/?fukuoka
Download now