Slide 1

Slide 1 text

7BHSBOUº"OTJCMF "OTJCMFษڧձ 5PNPIJSP6SBLBXB !NZTUFMZOY ͓·͑୭Α

Slide 2

Slide 2 text

WBHSBOUDNE w 7BHSBOUpMFʹఆٛ͞Ε͍ͯΔ7.ʹର͠ɺ༷ʑͳ ૢ࡞Λߦ͏ɻ w VQ7.ͷىಈ w IBMU7.ͷγϟοτμ΢ϯ w TTI7.΁44)Ͱ઀ଓ͢Δ w QSPWJTJPO7.ΛϓϩϏδϣχϯά͢Δ

Slide 3

Slide 3 text

7BHSBOU"OTJCMF

Slide 4

Slide 4 text

௚઀44)઀ଓՄೳͳ৔߹ ௚઀44)઀ଓෆՄೳͳ৔߹ "OTJCMFͷҾ਺Λࢦఆ͍ͨ͠৔߹ WBHSBOUQSPWJTJPOͰ΍ͬͯΈΑ͏

Slide 5

Slide 5 text

config.vm.define  'ec2'  do  |ec2|                      ec2.vm.provider  :aws  do  |aws,  override|                                      aws.access_key_id  =  'xxx'                                      aws.secret_access_key  =  'yyy'                                      aws.keypair_name  =  'zzz'                                      aws.region  =  'ap-­‐northeast-­‐1'                                      aws.subnet_id  =  'subnet-­‐public'                                      aws.security_groups  =  ['sg-­‐open-­‐22']                                      aws.ami  =  'ami-­‐xxxxxxx'                                      aws.instance_type  =  't1.micro'                                      aws.tags  =  {                                                  'Name'  =>  'test',                                      }                                      override.ssh.username  =  'ec2-­‐user'                                      override.ssh.private_key_path  =  './xxx.pem'                      end                          ec2.vm.provision  :ansible  do  |ansible|                                      ansible.playbook  =  'main.yml'                                      #ansible.inventory_path  =  'ࢦఆ͠ͳ͚Ε͹ࣗಈੜ੒'               end      end

Slide 6

Slide 6 text

IPTUTBMM ! UBTLT OBNF)FMMP EFCVHNTH)FMMP ! OBNF)FMMP EFCVHNTH)FMMP ! OBNFb͸Ζʔ EFCVHNTH͸Ζʔ

Slide 7

Slide 7 text

vagrant  provision ௚઀44)͕ͭͳ͕Δ৔߹ Ҏ্

Slide 8

Slide 8 text

FD3VOOJOHQSPWJTJPOFSBOTJCMF TIOPUJGZTFOEDPNNBOEOPUGPVOE ! 1-": ! ("5)&3*/('"$54 PL ! 5"4,<)FMMP> PL\ NTH)J "OTJCMF ^ ! 5"4,<)FMMP> PL\ NTH)J "OTJCMF ^ ! 5"4,<͸Ζʔ> PL\ NTH)J "OTJCMF ^ ! 1-":3&$"1 FDPLDIBOHFEVOSFBDIBCMFGBJMFE

Slide 9

Slide 9 text

௚઀44)઀ଓՄೳͳ৔߹ ௚઀44)઀ଓෆՄೳͳ৔߹ "OTJCMFͷҾ਺Λࢦఆ͍ͨ͠৔߹ WBHSBOUQSPWJTJPOͰ΍ͬͯΈΑ͏

Slide 10

Slide 10 text

ssh_proxy_command  =  'ssh  -­‐i  ./yyy.pem  ec2-­‐user@step  -­‐W  %h:%p'   ! config.vm.define  'ec2'  do  |ec2|                      ec2.vm.provider  :aws  do  |aws,  override|                                      aws.access_key_id  =  'xxx'                                      aws.secret_access_key  =  'yyy'                                      aws.keypair_name  =  'zzz'                                      aws.region  =  'ap-­‐northeast-­‐1'                                      aws.subnet_id  =  'subnet-­‐private'                                      aws.private_ip_address  =  '172.31.15.251'                                      aws.ssh_host_attribute  =  :private_ip_address                                      aws.security_groups  =  ['sg-­‐open-­‐22']                                      aws.ami  =  'ami-­‐xxxxxxx'                                      aws.instance_type  =  't1.micro'                                      aws.tags  =  {                                                  'Name'  =>  'test',                                      }                                      override.ssh.username  =  'ec2-­‐user'                                      override.ssh.private_key_path  =  './xxx.pem'                                      override.ssh.proxy_command  =  ssh_proxy_command                      end                          ec2.vm.provision  :ansible  do  |ansible|                                      ansible.playbook  =  'main.yml'                      end      end

Slide 11

Slide 11 text

export  ANSIBLE_SSH_ARGS='-­‐o  "-­‐ProxyCommand  ssh  -­‐ i  ./yyy.pem  ec2-­‐user@step  -­‐W  %h:%p"'   vagrant  provision ௚઀44)͕ͭͳ͕Βͳ͍৔߹ Ҏ্ʁ #  ansible.cfgΛ࡞੒͠ɺssh_argsʹɺ   #  ProxyCommand…Λઃఆ͢Δ   vagrant  provision

Slide 12

Slide 12 text

ssh_proxy_command  =  'ssh  -­‐i  ./yyy.pem  ec2-­‐user@step  -­‐W  %h:%p'   ! config.vm.define  'ec2'  do  |ec2|                      ec2.vm.provider  :aws  do  |aws,  override|                                      aws.access_key_id  =  'xxx'                                      aws.secret_access_key  =  'yyy'                                      aws.keypair_name  =  'zzz'                                      aws.region  =  'ap-­‐northeast-­‐1'                                      aws.subnet_id  =  ‘subnet-­‐private'                                      aws.private_ip_address  =  '172.31.15.251'                                      aws.ssh_host_attribute  =  :private_ip_address                                      aws.security_groups  =  ['sg-­‐open-­‐22']                                      aws.ami  =  'ami-­‐xxxxxxx'                                      aws.instance_type  =  't1.micro'                                      aws.tags  =  {                                                  'Name'  =>  'test',                                      }                                      override.ssh.username  =  'ec2-­‐user'                                      override.ssh.private_key_path  =  './xxx.pem’                                      override.ssh.proxy_command  =  ssh_proxy_command                      end                          ec2.vm.provision  :ansible  do  |ansible|                                      ansible.playbook  =  'main.yml'                                      ansible.raw_ssh_args  =  ["-­‐o  'ProxyCommand  #{ssh_proxy_command}'"]                      end      end

Slide 13

Slide 13 text

vagrant  provision ௚઀44)͕ͭͳ͕Βͳ͍৔߹΋ Ҏ্

Slide 14

Slide 14 text

௚઀44)઀ଓՄೳͳ৔߹ ௚઀44)઀ଓෆՄೳͳ৔߹ "OTJCMFͷҾ਺Λࢦఆ͍ͨ͠৔߹ WBHSBOUQSPWJTJPOͰ΍ͬͯΈΑ͏

Slide 15

Slide 15 text

config.vm.define  'ec2'  do  |ec2|                      ec2.vm.provider  :aws  do  |aws,  override|                                      :                                    தུ                                      :                      end                          ec2.vm.provision  :ansible  do  |ansible|                                      ansible.playbook  =  'main.yml'                                      ansible.verbose  =  'vv'                                      ansible.tags  =  'release'                                      ansible.start_at_task  =  'start_here'                                        :                      end      end ύϥϝʔλมߋͷͨͼʹॻ͖׵͑ʁ ˠͦ͏ͩɺ֎෦Խ͠Α͏ʂ

Slide 16

Slide 16 text

config.vm.define  'ec2'  do  |ec2|                      ec2.vm.provider  :aws  do  |aws,  override|                                      :                                    தུ                                      :                      end                          ec2.vm.provision  :ansible  do  |ansible|                                      ansible.playbook  =  'main.yml'                                      ansible.verbose  =  ENV['ANSIBLE_VERBOSE']                                      ansible.tags  =  ENV['ANSIBLE_TAGS']                                      ansible.start_at_task  =  ENV['ANSIBLE_START_AT_TASK']                                        :                      end      end

Slide 17

Slide 17 text

export  ANSIBLE_VERBOSE='vvvv'   export  ANSIBLE_TAGS='release'   export  ANSIBLE_START_AT_TASK='start_here'   vagrant  provision ֎෦Խͱ͍͑͹؀ڥม਺ Ҏ্ʁ

Slide 18

Slide 18 text

w ແବʹͨ͘͞Μͷ؀ڥม਺͕Ͱ͖Δ w "OTJCMFࣗମ͕࢖༻͢Δ؀ڥม਺ͱ໊લ͕ඃΔՄ ೳੑ͕͋Δ w "/4*#-&@$0/'*(ͱ͔ "/4*#-&@44)@"3(4ͱ͔͋ΔΑ w Ͳ͏͍͏ม਺͕࢖͑Δͷ͔7BHSBOUpMF೷͔ͳ͍ ͱ෼͔Βͳ͍ਏ͍

Slide 19

Slide 19 text

config.vm.define  'ec2'  do  |ec2|              ec2.vm.provider  :aws  do  |aws,  override|                                      :                                    தུ                                      :              end                  ec2.vm.provision  :ansible  do  |ansible|                        ansible.playbook  =  'main.yml'                        ansible.raw_arguments  =                                  ENV.fetch('ANSIBLE_RAW_ARGUMENTS',  '').split('  ')              end   end

Slide 20

Slide 20 text

export  ANSIBLE_RAW_ARGUMENTS=   "-­‐vvvv  —tags=release  —start-­‐at-­‐task=start_here"   vagrant  provision ؀ڥม਺͸͚ͭͩʹͨ͠৔߹ Ҏ্ ŖAшŖ ŝžŕ

Slide 21

Slide 21 text

w ௚઀઀ଓͰ΋౿Έ୆ܦ༝Ͱ΋ɺ
 vagrant  provision͚ͩͰؤுΕΔɻ w BOTJCMFʹΦϓγϣϯΛ౉͍ͨ͠৔߹͸ɺ ansible.raw_argumentsΛ࢖͏ͱεοΩϦɻ w ૉ௚ʹBOTJCMFΛ௚઀࢖͏ʁ w ΠϯϕϯτϦͷ໘౗Έͳ͍͍ͯ͘ͷͰएׯָʁ

Slide 22

Slide 22 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ