SlideShare ist ein Scribd-Unternehmen logo
1 von 31
CHEF入門と課題について
~社内向け簡単解説~
はじめに
• 資料作った本人はサーバ構築運用を8年くらいしてる主
婦です。
• MySQLとシェルスクリプトがちょっと好きです。
• 本資料は概要の解説だけで実際の手順などはリンク先に
充実していると思います。
• お勧め書籍:「入門Chef-Solo」
解説ターゲットと目的
• 社内向けに技術解説および検証結果の報告と共有をわか
りやすく行う。(まずはグループ内、技術関係者向け)
• 自由度の高い部分についての方向性を相談する。
• この先どうしたいのか(具体的にどの案件で構築時に
Chefを積極的に用いていくかなど)を相談する。
※手順のブラックボックス化を防ぎ、
冪等性(何度実行しても同じ環境が出来上がること)を担保する。
※学習コストは高めですがそれに見合う以上のメリットがあるという
記事も見かけました。コスト削減とオペミス防止等々。
※Chefで柔軟に使える試験環境をつくりたい、
何回も同じインストール作業したくないという要望にこたえられる。
Chefを用いる目的など:
CHEFとは
• サーバの状態をあるべき姿に自動的に収束
(convergence)するツール。≠単なる自動化ツール。
• OSインストール後の状態からの初期設定やミドルウェア等
の環境セットアップに利用するものです。
• アプリケーションのデプロイツールとは性質が異なります
(ロールバックとかテストとかは標準サポートされていな
い)ので他のツールと組み合わせる必要があるようです
(capistrano、serverspec等)
• レシピに書いたとおりに動作します
• Puppetと機能は一緒。ただChefのほうが表記方法にruby
のクラスとメソッドが使えるので自由度が高く(配列等が使
える)、Puppetのほうがディレクトリ構成の自由度が高いそ
うです。
カッコイイ言い方の見本
• 図によるとChefはSystemConfigurationツールで、
VagrantはBootStrappingツールのようです。
http://www.slideshare.net/mizzy/serverspec-hbstudy45
冪等性とその恩恵とは
• Chefでは、同じレシピで何度繰り返しサーバ構築
してもまったく同じ状態になること。
• つまりレシピ=手順=実環境の状況であり、それ
を読めばそのサーバがどんな状態なのかわかる。
• 冪等性を保つためには手動での追加変更オペレー
ションは一切してはならない。
• 冪等性の恩恵としては、効率化による工数削減だ
けでなく、古いシステムのリプレイスへの抵抗が
軽減、手順記載忘れがない、口伝のオペレーショ
ンが減る、等があると思います。
禁止事項
• Chefで管理しているサーバにrootログインして直
接設定変更。
なぜなら、冪等性がくずれる、手順のブラック
ボックス化、設定が戻されて障害が起きる、とい
うことになるため。
http://www.creationline.com/lab/3080
• 初心者Chefアンチパターン(以下URL)は必読。
CHEFの種類
• Chef-Server
レシピのバージョン管理や並列処理等が可能なldapに似た仕組
みのもの。Environmentを利用すると試験環境と本番環境を分
けて処理を行えるようです。セットアップに手間かかるそうで
す。必要に応じ追ってためしてみます。
• Chef-Solo
今回使うもので、並列処理はできないが20台くらいまでの構成
に適している、サーバ構成管理ツール。主に使うのはknife-
solo。chef-soloでローカル適用し、knife-soloでローカルのレ
シピをリモートに転送して適用します。手軽に利用できます。
• Hosted-Chef
Opscodeが環境提供してるホスティング版。FBも使ってるら
しく1万台等の規模にも対応できスケーラブルだそうです。
Hostedなのでお金がかかります。
用語解説
Cookbook:一つ以上のレシピに必要なデータやファイルをまとめるもの
レポジトリ(キッチン):Chefの動作に必要なファイル群。複数のクックブック
やRole,Nodeの設定を含むもの。 1つのシステムにつき1つが望ましい。
Recipe:複数のResouceを記述したファイル。使いまわしたい単位で分けて書
くとよい。
Resouce:設定の最小単位。ファイルやパッケージ単位の設定
• レポジトリ>クックブック>レシピ という階層でレシピ群が管理されます。
Node:Chefで管理される各サーバのこと。
Role: webやdb等のノードの役割を定義。使うRecipeや変数を設定する。
プロバイダ:ChefではOSの種類をさす。Ohaiというコマンドの集合でその違
いを吸収しNodeのパラメータを取得している模様。
Data_bags:クックブックに含ませたくないユーザやホスト他のデータを管理
する仕組み。
Emvironment:環境を分けるしくみ。たとえば本番環境と試験環境等。
キッチン(レポジトリ)
Cookbook(httpd)
recipe
recipe
recipe
recipe
recipe
Cookbook(base) Cookbook(mysql)
recipe
recipe
recipe
Roles
webserver
dbserverstgserver
Environment
nodes
web01web01db01
db01db01db01db01db01web01
test01 dev01
Data_bags
Login
users
mysql
users
hosts
イメージ図
debelopment
testproduction
クイック環境構築概要(KNIFE-SOLO)
1.Chefとvagrant(1.1以降)とVirtualBoxをいれる
2.Vagrantで仮想環境(Node)を立てる
3.Chefのリポジトリとcookbookを作成する
4.NodeやRoleやdata_bagsなどを定義しておく
5.recipeを書く、必要なファイルを用意する
6.Knife-soloでcookbookを各Nodeに反映する
7.シェルコマンドまたはserverspecで確認する
CHEF-SOLOインストール
• Opscodeから入れられます
chefのインストール方法は以下URLに載っています。
http://www.opscode.com/chef/install/
某環境へのインストール手順(knife-solo)は以下にまとめ
ましたので必要に応じ参照ください。
http://devlab.isao.co.jp/chef-solo_vagrant_install/
現時点の注意点など
• Rubyのバージョンに注意(1.8.7以上)
• Rubyをサービスで使う場合にオムニバスインストーラ
に削除と上書きされるので注意。
http://tk0miya.hatenablog.com/entry/2013/04/16/1
15713
• Vagrant(ベイグラント)はどんどん開発されており
1.1以降や最新版を利用推奨。
• Knife-soloは0.3.0以降がよいと思われます。
• Chefの11.6以降からクライアント(solo)でも
Emvironmentが利用できるようになったようです。
• not_ifの定義忘れ(再実行されると困る場合)
VAGRANTFILEについて
• Vagrant(ベイグラント)とは、VirtualBoxのラッパーツールで、コマンド
ラインから仮想OSを起動するのに用います。(Bootstrappingツールです)
• AWS上でインスタンス起動する場合について。
# vagrant up --provider=aws
# vagrant ssh
# vagrant destroy
編集したVagrantFileの中身は以下のような感じです
Vagrant.configure("2") do |config|
config.vm.box = "dummy"
config.vm.provider :aws do |aws|
aws.access_key_id = ENV['AWS_ACCESS_KEY_ID']
aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
aws.keypair_name = "komi-test"
aws.ssh_username = "root"
aws.ssh_private_key_path = "~/.ssh/id_rsa
aws.instance_type = "t1.micro"
aws.region = "ap-northeast-1"
aws.ami = "ami-ca0784cb"
aws.security_groups = [ 'default' ]
end
end
←インスタンスタイプ指定
←東京リージョンを指定
←AMI(OSイメージ)を指定
←セキュリティグループを指定
←管理ノードへsshログインするための秘密鍵を指定
←管理ノードへsshログインするためのユーザを指定
←外部からsshログインするためAWSの秘密鍵を指定
←AWSのアクセスキーIDを指定
←AWSのシークレットアクセスキーを指定
←ダミーのBOXを指定
http://www.ryuzee.com/contents/blog/6538
レポジトリの構成
• 新規Chefレポジトリ(キッチン)を作るとできるディレクトリについて
# knife solo init chef-repo
# tree -L 1 chef-repo
chef-repo
|-- cookbooks
|-- data_bags
|-- nodes
|-- roles
|-- site-cookbooks
`-- solo.rb
cookbooksとsite-cookbooksはクックブックを格納するディレクトリで、
cookbooksにはダウンロードしてきたもの、site-cookbooksには自分で
作ったものを入れるのが推奨されているようです。
そのほか、knife-soloを入れると/root/.chef/knife.rbが作成され、必要な
ディレクトリパスなどを指定します。
←サードパーティレシピ置き場
←ユーザ等データ管理機能使用時に使う
←各サーバ(node)用のJSONファイル置き場
← Roleを使うとき用ディレクトリ
←自作レシピ置き場
← cookbookのパスなどを設定
COOKBOOKの構成
knife cookbook create <cookbook-name>で作るディレクトリの中身
tree nginx -F
nginx
|-- CHANGELOG.md
|-- README.md
|-- attributes/
| `-- default.rb
|-- definitions/
|-- files/
| `-- default/
|-- libraries/
|-- metadata.rb
|-- providers/
|-- recipes/
| `-- default.rb
| `-- server.rb
|-- resources/
`-- templates/
`-- default/
`-- nginx.conf.erb
←filesの下に定数のみの設定ファイルを置く
←recipesの下でレシピを書いておく
←templatesの下に変数が必要な設定ファイルを置く
←templateリソースを使う場合、
attributesの下にデフォルト値を定義する
←default以外のレシピはnginx::server等で利用可能
レシピについて
• Nginxのインストールと起動、設定ファイル設置とリロードするレシピ
# vi site-cookbooks/nginx/recipes/default.rb
package "nginx" do
action :install
end
service "nginx" do
supports :status => true, :restart => true, :reload => :true
action [ :enable, :start ]
end
template "nginx.conf" do
path "/etc/nginx/nginx.conf"
source "nginx.conf.erb"
owner "root"
group "root"
mode 0644
notifies :reload, 'service[nginx]'
end
レシピはやりたいことに応じた
リソースを使って書いていきます。
パッケージをインストールするの
はpackageリソース。
サービスを起動したり有効にする
のはserviceリソース。
設定ファイル(変数有)を配置す
るのはtemplateリソース。
よくつかうRESOURCE
users:ユーザ追加
group:サブグループ追加
cookbook_file:ファイル設置
directory:ディレクトリ作成
template:変数有のファイル設置
package:パッケージインストール
service:サービス有効・無効化と起動・停止
script:bashでできること全部(ソースインストール他)
cron:cron追加
http://docs.opscode.com/resource.htmlリソースのマニュアル(熟読推奨)→
TEMPLATEについて1
templateリソースでレシピを記述、
変数を埋め込んだファイルを設置、
Attributes/default.rbにデフォルト値を定義、
RoleまたはNodeファイルにデフォルト値または上書き値を定義します。
変数がOhaiでノードから取得できる場合(hostname等)はAttributeや
roleやnodeでの定義は必要ありません。
templateリソース内でvariablesで変数の値を代入する場合、設定ファ
イル内で呼び出す際に@を付ける必要があります。
某システムのchef化でtemplate使ってるところは、/etc/hostsと
sysctl.confとmy.cnfのserver_idなどです。
http://docs.opscode.com/chef/resources.html#template
http://qiita.com/kenjiskywalker/items/c16afc2f8ac28765da91
http://tech.blog.piyo.org/2012/05/23/chef-
attribute%E3%81%AE%E7%90%86%E8%A7%A3/
TEMPLATEについて2
• Templateリソースでレシピを書く
template "nginx.conf" do
path "/etc/nginx/nginx.conf"
source "nginx.conf.erb"
owner "root"
group "root"
mode 0644
notifies :reload, 'service[nginx]'
end
• attribute/default.rbにデフォルト値を定義する
default['nginx']['port'] = "80”
• nodeまたはroleのattributeを定義する
{
"name":"webserver",
"chef_type": "role",
"json_class":"Chef::Role",
"default_attributes":{
"nginx": {
"port": "80",
}
},
# vi cookbooks/nginx/templates/default/nginx.conf.erb
~略~
server {
listen <%= node['nginx']['port'] %>;
server_name localhost;
~略~
ポート番号を変数に指定。
• Port番号を変数展開するようにした設定ファイル
NODE用ファイルの解説
• Chefでは管理対象サーバのことをノード(node)という
• JSONファイルにかかれているのはある特定のノードの状態。
• JSONファイルに書いているデータ構造はNodeObjectと呼ぶ。
• NodeObjectのプロパティとしてそのノードに適用するべきレシピを列挙
し、そのノードが持っている変数(Attribute)の値も列挙する、これがJSON
ファイルの役割。
vi 172.20.28.241.json
{
"mysqld" : {
"server_id" : 103
},
"run_list":[
"role[dbserver]“
]
}
←変数(Attribute)の値
←適用するべきレシピを含むrole(※※)
※リポジトリ直下のnodesディレクトリの下にjsonファイルを置きます
ROLEについて
• 某システムでは、
webserver、
dbserver、
admserverでroleを
分けています。
cd chef-repo/roles
vi webserver.json
{
"name":"webserver", webserverのロール
"chef_type": "role",
"json_class":"Chef::Role",
"default_attributes":{
"base_setting": {
"swappiness": "30",
"tcp_tw_reuse": "0",
"tcp_tw_recycle": "0",
"tcp_fin_timeout": "60",
"tcp_max_syn_backlog": "4096",
"somaxconn": "4096"
}
},
"override_attributes":{},
"description":"webserver's role",
"run_list": [
"recipe[base_setting::bkup_dir]", 基本設定、バックアップディレクトリ作成
"recipe[login_users]", ログインユーザを作る
"recipe[base_setting::hosts]", 基本設定、hosts
"recipe[base_setting::sysctl]", 基本設定、sysctl
"recipe[base_setting::disable]", 基本設定、disable
"recipe[base_setting::ntpdate]", 基本設定、ntp
"recipe[base_setting::mail-client]", 基本設定、mail
"recipe[base_setting::logrotate]", 基本設定、ログローテート
"recipe[httpd::httpd-server]", httpdサーバ
"recipe[httpd::basic_auth]", httpdのベーシック認証
"recipe[httpd::wordpress]", httpdのwordpress
"recipe[httpd::s3mount]", httpdのs3mount
"recipe[munin::munin-node]", munin-node
"recipe[munin::munin-node-web]", munin-nodeのweb用プラグイン配置
"recipe[zabbix::zabbix-agent]" zabbix-agent
]
}
※※Role内で
run_listを管理する
のは初心者Chefア
ンチパターンによ
ると、バージョン
管理できないため
非推奨の模様。リ
ファクタリング対
象です。
DATA_BAGSついて
・通常はChef-Serverで利用可能ですが、soloでも、
gem install knife-solo_data_bag
とするとdata_bagsが使えるようになります。データはレポジトリ直下の
data_bagsに保存されます。
・data_bagsを利用することによりクックブックに固有のデータが含まれない
ように使いまわしやすくリファクタリングが可能に。
・暗号鍵を指定することで暗号化してパスワード等のデータを保存できるため
セキュアです。Node等のアトリビュートで値を直接平文で渡すことをせず
にレシピから暗号化されたデータを呼び出すことができます。
・某システムのChef化においては、OSユーザとmysqlユーザをdata_bagsで
管理するようにしています。
・頻繁に変更されるようなデータもdata_bagsに向いています。たとえばイベ
ント時に追加され終了後削減されるwebserverのIPアドレスとホスト名など。
http://tech.blog.piyo.org/2012/06/19/chef-data-bag%E6%B4%BB%E7%94%A8%E6%B3%95/
http://blog.kenjiskywalker.org/blog/2013/05/20/chef-databag/
http://matetsu.hatenablog.com/entry/2012/02/12/020118
NOT_IF, NOTIFIESについて
• not_if:実行結果が0でない場合にそのリソースを
実行する。たとえばrpm –qaでパッケージが入っ
てなかったらpackageリソースでインストール
する等。
• only_if:実行結果が0だった場合にそのリソース
を実行する。特定のディレクトリが存在した場合
にファイルを置く等、事前の確認を行いたい場合
に利用するものの模様。
• notifies:設定ファイルが更新されたらサービスを
リロードしたい、といった用途に用いるもので複
数のリソース内に定義することが可能。
Scriptリソースや2度実行されたくないリソース内には
必ずnot_ifを定義する必要があります。
仮想環境にレシピを反映する
• Knife-Solo使う場合
• Vagrant使う場合
# knife solo cook <host>
レシピ転送&リモート実行
# vagrant provision
※一度レシピを書いたら次回から上記のようなコマンド実行するだけです。
これはとても重要なことです。
確認について
• Serverspecを用いるのが主流で推奨されています。
• とはいえ最初はコマンドで都度確認しながらになるか
と思います。
• ScriptやExecuteというリソースはエラーだけどエ
ラーが帰ってこずすんなり終わったりしますので要注
意。直接コマンドで確認しないと原因が特定できない
場合もあります。
• Cookbook毎のテストコマンドは、以下のとおりです。
シンタックスチェックができます。
knife cookbook test <cookbook-name>
http://www.slideshare.net/mizzy/serverspec-hbstudy45
サーバ構築を自動化して確認は手動って面倒すぎるというお話。
参考:某システムのレシピの構成概要 ディレクトリパス
chefのレポジトリ /root/chef-repo
VagrantFileの場所 /root/chef-repo/VagrantFile
要件 対応リソース cookbook レシピ名 コメント Node(Role)
ホスト名の変更 VagrantFile -
IF設定 VagrantFile -
hosts設定 template,Attribute,Role base_setting hosts.rb Ohaiのhostnameを使う all
bkupディレクトリ作成 Directory base_setting bkup_dir.rb all
カーネルパラメータ設定template,Attribute,Role base_setting sysctl.rb all
アカウント作成 Group,User,data_bags login_users default.rb all
Selinux無効化 file base_setting disable.rb all
yum設定修正 file base_setting disable.rb all
IPv6無効化 file base_setting disable.rb all
不要cron停止 file base_setting disable.rb all
yumリポジトリ設定 - base_setting
opscode要らず元のAMIに
あった
all
ntpデーモン設定 package,service,file base_setting ntpd.rb localhost
cron設定(ntpdate) cron base_setting ntpdate.rb クライアント設定 allクライアント
MTA設定 package,service,file,script base_setting mail-postfix.rb
mail-dovecot.rb
localhost
メールクライアント設定file base_setting mail-client.rb クライアント設定 allクライアント
logrotate.d設定 file base_setting logrotate.rb all
apache導入基本設定 script,service,file httpd httpd-server.rb web,localhost
mod_ssl導入設定 - httpd mod_ssl.rb ELB使うので要らなかった web
ベーシック認証設定 file httpd basic_auth.rb web
s3mount設定 file httpd s3mount.rb web
wordpress導入設定 file,script httpd wordpress.rb web,localhost
mysql導入基本設定 script,service,file mysqld mysqld-server.rb database
mysqlアカウント作成 databags,script mysqld mysql-users.rb
databaseクックブック依
存
database
munin-node設定 script,service,file munin munin-node.rb
munin-node-web.rb
munin-node-db.rb
web,db用のレシピをわけ
た
allクライアント
munin-server設定 package,service,file munin munin-server.rb localhost
監視設定zabbix-agent package,service,file zabbix zabbix-agent.rb all
監視設定zabbix-proxy package,service,file zabbix zabbix-proxy.rb localhost
phpmyadmin導入設定 - httpd phpmyadmin.rb 実は要らなかった模様 localhost
Rubyわからない全くの初心者がレシピを書きあげるのに2カ月程度。
WEB1+DB1+STG1な環境。
レシピのバージョン管理
• レシピのバージョン管理はServerはできるがSolo
ではできないのでgitを使います
サードパーティのレシピを使うときにコミット済みである必要があります。
# cd /root/chef-repo
# git init
# git add .
# git commit -m 'fist commit'
http://www.slideshare.net/yalab/git-9518230
課題とこれからのとりくみ
• レシピの書き方ほか自由度が高すぎて何がただしいのかよくわかっていないのが
課題の一つ。If文をもっと使いこなせたらよさそう。
• Host名の管理にdata_bagsをつかいたいけどどうなのでしょう。
• Scriptリソースを極力つかわないのが無用な問題を避けるまたは環境の違いを吸
収するために理想なようですが、使わないとどうにもならないところも多数あり
ました。
• Chef-ServerでないとEnvironmentが使えずに試験環境と本番環境など環境分け
のほうほうがRoleつかうくらいしか思いつかないです。
• サードパーティのレシピを使ってみたいがruby力等がたりずレシピを読み切れ
ない。書いたとおりに動くものは書いてある内容が理解できないなら使用するべ
きではないように思います。
• 自分でレシピを書いて育てていく。(ruby力の強化およびこれまで使ってきた
手順を整理する必要が生じます。 )
• Serverspecでテストを書いてテストする。(一応できたところです)
• 実環境での適用を検討する。(某システムは適用する前に切り替わってしまった
ためリリース済みの環境に試験ができない)これをすすめていかないと取り組ん
でる意味がないというか自動化や冪等性の恩恵を受けられないです。
• サーバリソースに応じたパラメータ自動調整などに取り組みたい。
• 試験環境とかハンズオン用のサーバを一気に立てて使い終わったら落とす等、夢
は広がってるようです。
参考URL
• 本資料より参考になります!
http://docs.opscode.com/resource.html
http://www.opscode.com/chef/install/
http://www.slideshare.net/nekoruri/chef-17848863
http://www.slideshare.net/naka24nori/chef1-15707316
http://www.slideshare.net/YukihikoSawanobori/what-is-chef201303
http://inokara.hateblo.jp/entry/2013/03/20/130552
http://d.hatena.ne.jp/naoya/20130205/1360062070
https://github.com/RiotGames/berkshelf-vagrant
https://www.virtualbox.org/
http://vboxmania.net/
http://d.hatena.ne.jp/naoya/20130315/1363340698
http://www.ryuzee.com/contents/blog/6530
http://www.ryuzee.com/contents/blog/6538
ネットで情報検索するときはChefだけだと料理のサイトが出てきてしま
うので尐しマニアックな用語を組み合わせると良いかと思います。
おわりに
• なんでもそうですが説明きいただけじゃなく実際つ
かってみないと把握しきれないことがあると思いま
す。
概要がなんとなくつかめたら使ってください。
• ありがとうございました!

Weitere ähnliche Inhalte

Andere mochten auch

明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudyTakeshi Komiya
 
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~Terui Masashi
 
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門kk_Ataka
 
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳するMarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳するYukihiko SAWANOBORI
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Masanori Satoh
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~Takeshi Kuramochi
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Sho A
 
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜Michitoshi Yoshida
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所Hidetoshi Hirokawa
 
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化Nozomi Ito
 
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成Rakuten Group, Inc.
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
Ansibleの現在とこれから
Ansibleの現在とこれからAnsibleの現在とこれから
Ansibleの現在とこれからTaira Hajime
 

Andere mochten auch (20)

明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
 
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
 
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門
 
Pentaho ETL
Pentaho ETLPentaho ETL
Pentaho ETL
 
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳するMarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
 
Chef meetup vol2_higanwoks
Chef meetup vol2_higanwoksChef meetup vol2_higanwoks
Chef meetup vol2_higanwoks
 
Ansible container
Ansible containerAnsible container
Ansible container
 
Serverspec at hbstudy #45
Serverspec at hbstudy #45Serverspec at hbstudy #45
Serverspec at hbstudy #45
 
RubyでDSL
RubyでDSLRubyでDSL
RubyでDSL
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所
 
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
 
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
 
入門Ansible
入門Ansible入門Ansible
入門Ansible
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Ansibleの現在とこれから
Ansibleの現在とこれからAnsibleの現在とこれから
Ansibleの現在とこれから
 
レシピの作り方入門
レシピの作り方入門レシピの作り方入門
レシピの作り方入門
 

Ähnlich wie Chef社内向け解説とその課題について

「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」
 「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」  「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」
「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」 Embarcadero Technologies
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」nishikawa_makoto7
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?Shinichi Nishikawa
 
AlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライドAlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライドSawada Makoto
 
Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~Yuto Suzuki
 
SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集Sho Okada
 
Windows Server Essentials用PowerShell コマンドレットを使ってみよう!
Windows Server Essentials用PowerShell コマンドレットを使ってみよう!Windows Server Essentials用PowerShell コマンドレットを使ってみよう!
Windows Server Essentials用PowerShell コマンドレットを使ってみよう!Satoru Nasu
 
今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」
今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」
今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」kei eguchi
 
(自分流)Gitの運用ルール
(自分流)Gitの運用ルール(自分流)Gitの運用ルール
(自分流)Gitの運用ルールErina Takei
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1Nishida Kansuke
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきことHiromu Shioya
 
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)Takahiro Kitayama
 
グループディスカッションの巻
グループディスカッションの巻グループディスカッションの巻
グループディスカッションの巻Takashi Abe
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
はじめてのAWS設計でやりがちな失敗パターンまとめ
はじめてのAWS設計でやりがちな失敗パターンまとめはじめてのAWS設計でやりがちな失敗パターンまとめ
はじめてのAWS設計でやりがちな失敗パターンまとめTetsunori Nishizawa
 
テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523dnoguchi
 
コーディングが上達するコツ
コーディングが上達するコツコーディングが上達するコツ
コーディングが上達するコツevol-ni
 
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」Kenji Shirane
 

Ähnlich wie Chef社内向け解説とその課題について (20)

「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」
 「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」  「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」
「Delphiによる基幹系システム連携の具体例 ~ SAPシステムとの枯れた連携手法」
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
 
社内Chef勉強会
社内Chef勉強会社内Chef勉強会
社内Chef勉強会
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
AlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライドAlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライド
 
Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~
 
SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集
 
Windows Server Essentials用PowerShell コマンドレットを使ってみよう!
Windows Server Essentials用PowerShell コマンドレットを使ってみよう!Windows Server Essentials用PowerShell コマンドレットを使ってみよう!
Windows Server Essentials用PowerShell コマンドレットを使ってみよう!
 
今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」
今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」
今さらアジャイル巡業In福岡LT「社内勉強会の運営をアジャイルにやってみた」
 
(自分流)Gitの運用ルール
(自分流)Gitの運用ルール(自分流)Gitの運用ルール
(自分流)Gitの運用ルール
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
 
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
 
グループディスカッションの巻
グループディスカッションの巻グループディスカッションの巻
グループディスカッションの巻
 
Osdt2015 saito
Osdt2015 saitoOsdt2015 saito
Osdt2015 saito
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
はじめてのAWS設計でやりがちな失敗パターンまとめ
はじめてのAWS設計でやりがちな失敗パターンまとめはじめてのAWS設計でやりがちな失敗パターンまとめ
はじめてのAWS設計でやりがちな失敗パターンまとめ
 
テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523
 
コーディングが上達するコツ
コーディングが上達するコツコーディングが上達するコツ
コーディングが上達するコツ
 
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
 

Mehr von Yu Komiya

Chef localmodeをためした
Chef localmodeをためしたChef localmodeをためした
Chef localmodeをためしたYu Komiya
 
時短主婦の味方のご紹介
時短主婦の味方のご紹介時短主婦の味方のご紹介
時短主婦の味方のご紹介Yu Komiya
 
MySQL5.6関連情報まとめ
MySQL5.6関連情報まとめMySQL5.6関連情報まとめ
MySQL5.6関連情報まとめYu Komiya
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Yu Komiya
 
My sqlのha構成について
My sqlのha構成についてMy sqlのha構成について
My sqlのha構成についてYu Komiya
 
MHAを検証して導入した話
MHAを検証して導入した話MHAを検証して導入した話
MHAを検証して導入した話Yu Komiya
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 

Mehr von Yu Komiya (8)

Chef localmodeをためした
Chef localmodeをためしたChef localmodeをためした
Chef localmodeをためした
 
Remotework
Remotework Remotework
Remotework
 
時短主婦の味方のご紹介
時短主婦の味方のご紹介時短主婦の味方のご紹介
時短主婦の味方のご紹介
 
MySQL5.6関連情報まとめ
MySQL5.6関連情報まとめMySQL5.6関連情報まとめ
MySQL5.6関連情報まとめ
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話
 
My sqlのha構成について
My sqlのha構成についてMy sqlのha構成について
My sqlのha構成について
 
MHAを検証して導入した話
MHAを検証して導入した話MHAを検証して導入した話
MHAを検証して導入した話
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 

Chef社内向け解説とその課題について