Rabbit Slide Show

ひでお(仮)

Description

札幌市中央区Ruby会議01での発表資料

Text

Page: 1

ひでお(仮)

Page: 2

こんにちは
にくです
コンサドーレ札幌が好きです
@niku̲name
http://niku.name/

Page: 3

コンサドーレホーム開幕戦情
報
3/9(⽇)13:00 @ 札幌ドーム vs モン
テディオ⼭形

Page: 4

ひでおとは
「ひ」とり
「で」ぶ(Dev)
「お」ぷす(Ops)

Page: 5

ひとりとは
ひとりです
開発してもひとり
運用してもひとり

Page: 6

DevOpsおさらい
“Dev”elopment(開発)
“Op”eration(運用)
を繋いだ⾔葉です

Page: 7

DevOpsってなんなの
開発「(多少動かなくても)機
能をのせていきたい」
運用「(多少機能が少なくて
も)ちゃんと動くようにした
い」
開発と運用はあんまり相性がよく
ないようにみえる

Page: 8

DevもOpsも向かう先は⼀緒
だった
開発「(プロダクトをよりよく
するため)(多少動かなくて
も)機能をのせていきたい」
運用「(プロダクトをよりよく
するため)(多少機能が少なく
ても)ちゃんと動くようにした
い」

Page: 9

プロダクトをよりよくする
プロダクト全体の最適化
全体を良くするにはお互いを理
解する

Page: 10

DevOpsは壮大なストーリー
大きすぎて今回はうまく話せな
いことがわかった
すまん

Page: 11

ひでお
ひとりで開発と運用をやるので
お互いは理解できている
プロダクトをよりよくするため
運用の圧縮
⼈が増えたときのノウハウの共有
記憶や⼿順書からの脱却

Page: 12

ひでお(旅⽴ち編)
CI環境作るためのツール
VirtualBox
Vagrant
Packer
Chef

Page: 13

ケース
ソースコードをGithubに置ける
ソースコードをGithubに置けな
い

Page: 14

ソースコードをGithubに置
ける
Github連携サービスを使おう
Travis CI
Circle CI
サービスの⾯倒をみなくていい
おすすめ

Page: 15

ソースコードをGithubに置
けない
Jenkinsを使おう
⾯倒をみないといけない
運用の⼿間を減らすために運用
対象を増やすの?

Page: 16

既にJenkinsが使える
おめでとう!
使い倒そう

Page: 17

サーバーあるけどJenkins⼊
ってない
                                                                                       
                                                                                                       
                     
                              
https://wiki.jenkins-ci.org/
display/JENKINS/Installing
+Jenkins#InstallingJenkins-Unix
%2FLinuxInstallation

Page: 18

サーバーがない
仮想環境に作ろう
実際のサーバー用意するより作ったり
壊したりが簡単

Page: 19

仮想環境を作る
必要なもの
自分のPC
仮想化ソフト
インストールしたことある⼈に聞ける
環境か調べる根性

Page: 20

仮想化ソフト
インストーラーでインストール
できる
VirtualBox
https://www.virtualbox.org/
VMWare Fusion(Mac) / VMWare 
Player(Windows)
https://my.vmware.com/jp/

Page: 21

仮想化環境を作ろう
仮想化ソフトとは,使っていな
いPC(ハードウェア)のような
もの
中⾝(OS)をインストールする

Page: 22

CI(Jenkins)を⼊れる
                                                                                       
                                                                                                       
                     
                              
https://wiki.jenkins-ci.org/
display/JENKINS/Installing
+Jenkins#InstallingJenkins-Unix
%2FLinuxInstallation

Page: 23

仮想化環境でのCIできた
もっともっと
簡単にノウハウを配布したい
記憶や⼿順書からの脱却

Page: 24

Vagrant
http://www.vagrantup.com/
Vagrantfileに設定を書く
あらかじめ仮想化してある環境(Box)
の取得
↑の環境へ事前処理(Provision)を適
用
仮想環境の起動/終了を簡単なコ
マンドから

Page: 25

Vagrantのインストール
インストーラーで簡単にインス
トールできる
http://www.vagrantup.com/
downloads.html
Windows/OSX/Debian/RHEL

Page: 26

Vagrantfile
                             
                                                      
                         
                                                                
                                                              
                                                
                                                                                     
                                                                                                     
                   
                               
       
   

Page: 27

帰ったらやってみよう
Vagrant
Vagrantfileを書いて
vagrant up
ブラウザからJenkinsにアクセス
できる

Page: 28

帰ったらやってみよう
Vagrant(2)
いるもの
VirtualBox
Vagrant

Page: 29

帰ったらやってみよう
Vagrant(3)
             
          
                                                                                                                              
            
                                                  
                
              

Page: 30

Vagrantでノウハウの配布
できた
けど
「誰か」があらかじめ作ってくれた
Boxを使っている
それエンタープライズでも同じこと⾔
えんの?

Page: 31

Vagrantの課題解消
もっともっと
Boxも自分で作れるようになり
たい
http://docs.vagrantup.com/
v2/boxes/base.html

Page: 32

Packer
http://www.packer.io/
Template(JSON)に設定を書く
OSのインストールCD/DVDを取得
OSの自動インストール
環境に処理を適用

Page: 33

OSの自動インストール
(Debian)
Debian => preseed.cfg
http://www.debian.org/
releases/wheezy/mipsel/
apbs01.html.ja

Page: 34

OSの自動インストール(Red 
Hat Enterprise Linux)
RHEL => kickstart
https://access.redhat.com/
site/documentation/ja-JP/
Red̲Hat̲Enterprise̲Linux/6/
html/Installation̲Guide/ch-
kickstart2.html

Page: 35

OSの自動インストール
(Windows)
Windows => 
Autounattend.xml
http://
technet.microsoft.com/ja-jp/
library/cc749415%
28v=ws.10%29.aspx

Page: 36

Packerのインストール
http://www.packer.io/docs/
installation.html
ファイルを1つダウンロードして
パス通すだけ

Page: 37

Packerのテンプレート
 
                
                             
                                  
                                                                                                                                                       
                                                                                                       
                              
                              
                           
                     
              
               
                 
                                                                      
                                
              
                      
                               
                                         
                                         
                  
                                         
                                        
                                      
                                              
               
      
                                               
                                
     
                    
                    
                
                
                
                  
     
     
                       
                     
    
 

Page: 38

Packerのテンプレート作る
のつらそう
「Packerを使ってVagrantの
Boxを作る⽅法を⼀つずつ説明
する」という良いコンテンツが
ある
[packer vagrant] で検索

Page: 39

帰ったらやってみよう
Packer
コマンドが終わったらDebianベ
ースでVagrantに取り込めるBox
ができている

Page: 40

帰ったらやってみよう
Packer(2)
いるもの
VirtualBox
Packer

Page: 41

帰ったらやってみよう
Packer(3)
                                                                 
                                  
                            

Page: 42

Vagrantでやってたこと
あらかじめ仮想化してある環境
(Box)の取得
↑の環境へ事前処理(Provision)
を適用
Boxの取得はできた

Page: 43

サーバーへの処理をShellで
やるとしんどなってくる
パッケージ化されていないもの
やソースから最新版を⼊れてメ
ンテすること
設定ファイルの内容を書くこと
何回も動かしても大丈夫なよう
にすること

Page: 44

Chef(Chef Solo)
http://www.getchef.com/
サーバーが「こうあるべき」と
いうのを書いておく
「こうじゃないところ」を「こ
う」にしてくれる
「こう」になっているところは
変わらない

Page: 45

⼊門Chef Soloを読もう
全部書いてある
http://tatsu-zine.com/books/
chef-solo

Page: 46

帰ったらやってみようChef
(1)
サーバーが自分のidでログイン
できるようになっている
Ruby2.1.0が使えるようになっ
ている

Page: 47

帰ったらやってみようChef
(2)
いるもの
VirtualBox
Vagrant
git
Ruby実⾏環境
gem(knife-solo)

Page: 48

帰ったらやってみようChef
(3)
                                                                       
                                        
                
                                                           
                                    
                
                  
              
            
             
                           
                       
                       
                                                                                                    
                                                                                                                    
                           
                       

Page: 49

まとめ
VirtualBox 仮想化ツール
Vagrant 仮想環境をBoxと
Provisionから構築するツール
Packer Boxを作るツール
Chef Provision

Page: 50

宿題
Vagrant動かしてみる
Packer動かしてみる
Chef動かしてみる

Page: 51

俺たちのひでおはこれからだ
にく先⽣の次回作にご期待くださ
い

Other slides