Slide 1

Slide 1 text

%FW0QT"84 /BPZB*UP

Slide 2

Slide 2 text

"84.BOBHFNFOU $POTPMF

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

切腹

Slide 6

Slide 6 text

1BDLFS

Slide 7

Slide 7 text

1BDLFSͰ".* //  packer.json   {      "builders"  :  [{          "type"  :  "amazon-­‐ebs",          "access_key"  :  "...",          "secret_key"  :  "...",          "region"  :  "ap-­‐northeast-­‐1",          "source_ami"  :  "ami-­‐e5b33ce4",          "instance_type"  :  "t1.micro",          "ssh_username"  :  "ec2-­‐user",          "ami_name"  :  "packer-­‐example  {{.CreateTime}}"      }]   }  

Slide 8

Slide 8 text

QBDLFSCVJME

Slide 9

Slide 9 text

1BDLFSͷQSPWJTJPOFST //  packer.json   {      "provisioners":  [          {              "inline":  [                  "sleep  30",                  "curl  -­‐L  https://www.opscode.com/chef/install.sh  |  sudo  bash"              ],              "type":  "shell"          }      ]   }      

Slide 10

Slide 10 text

7BHSBOU

Slide 11

Slide 11 text

7BHSBOU͕ϩʔΧϧͷ7.ཱͪ ্͛Δπʔϧͩͱࢥ͍ͬͯΔͦ͜ ͷΞφλ

Slide 12

Slide 12 text

切腹

Slide 13

Slide 13 text

%  vagrant  init   %  vagrant  up  

Slide 14

Slide 14 text

7BHSBOUX&$ #  Vagrantfile   Vagrant.configure(2)  do  |config|      config.vm.box  =  "dummy"      config.vm.provider  :aws  do  |aws,  override|          aws.access_key_id          =  ENV['AWS_ACCESS_KEY_ID']          aws.secret_access_key  =  ENV['AWS_SECRET_ACCESS_KEY']          aws.keypair_name  =  "naoya's  keys"          aws.instance_type  =  "t1.micro"          aws.region  =  "ap-­‐northeast-­‐1"          aws.ami  =  "ami-­‐a3af2ba2"          aws.security_groups  =  [  'webserver'  ]          aws.tags  =  {  'Name'  =>  'vagrant-­‐test'  }          override.ssh.username  =  "ec2-­‐user"          override.ssh.private_key_path  =  "~/.ssh/aws-­‐naoyaskeys.pem"      end   end  

Slide 15

Slide 15 text

%  vagrant  up  -­‐-­‐provider=aws  

Slide 16

Slide 16 text

WBHSBOUVQ

Slide 17

Slide 17 text

͍͟ɺϓϩϏδϣχϯά

Slide 18

Slide 18 text

%  knife  cookbook  create   nginx  –o  cookbooks  

Slide 19

Slide 19 text

Ϩγϐॻ͘ package  "nginx"  do      action  :install   end     service  "nginx"  do      action  [:enable,  :start]   end  

Slide 20

Slide 20 text

7BHSBOU$IFG package  "nginx"  do      action  :install   end     service  "nginx"  do      action  [:enable,  :start]   end  

Slide 21

Slide 21 text

WBHSBOUQSPWJTJPO

Slide 22

Slide 22 text

ͯ͞ɺಈ࡞֬ೝɾɾɾ

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

TFSWFSTQFD

Slide 25

Slide 25 text

%  vagrant  ssh-­‐config  \   -­‐-­‐host=ec2-­‐test  >>  ~/.ssh/config   %  serverspec-­‐init  

Slide 26

Slide 26 text

ςετॻ͘ require  'spec_helper'     describe  package('nginx')  do      it  {  should  be_installed  }   end     describe  service('nginx')  do      it  {  should  be_enabled      }      it  {  should  be_running      }   end     describe  port(80)  do      it  {  should  be_listening  }   end  

Slide 27

Slide 27 text

SBLFTQFD

Slide 28

Slide 28 text

͍ͭͰʹ(VBSE ϑΝΠϧॻ͖׵͑ͨΒࣗಈͰςετ

Slide 29

Slide 29 text

%  vagrant  destroy   ςετ΋ऴΘͬͨ͠

Slide 30

Slide 30 text

େࣄͳ͜ͱͦͷ̍ ͜͜·Ͱ.BOBHFNFOU $POTPMFҰ੾ͳ͠

Slide 31

Slide 31 text

ͱ͍͏͜ͱ͸ŋŋŋʁ

Slide 32

Slide 32 text

ࣗಈԽ

Slide 33

Slide 33 text

"84΋$* h"p://d.hatena.ne.jp/naoya/20130521/1369102714

Slide 34

Slide 34 text

େࣄͳ͜ͱͦͷ શ෦ίʔυʹͳͬͯΔ

Slide 35

Slide 35 text

ͱ͍͏͜ͱ͸ŋŋŋʁ

Slide 36

Slide 36 text

(JUIVC

Slide 37

Slide 37 text

"84΋4PDJBM$PEJOH

Slide 38

Slide 38 text

·ͱΊ DIFGΔ͚͕ͩ%FW0QTͰ͸͋Γ·ͤΜ ·ͱ·ͬͯͳ͍

Slide 39

Slide 39 text

ߟ࡯ •  "84Ͱં֯ϋʔυͷ੍໿͕ແ͘ͳͬͨΘ ͚ͩ͠ •  ͳΔ΂͘ιϑτ΢ΣΞͰָ͠·͠ΐ͏ •  ָ࡞ۀෛՙ͕গͳ͍BOEָ͍͠ •  $*΍4PDJBM$PEJOHͷΑ͏ͳɺΑΓϨ ΠϠͷߴ͍ӡ༻ϓϩηε·Ͱঢ՚ͤͯ͞ ͳΜ΅

Slide 40

Slide 40 text

No content