Slide 1

Slide 1 text

य़ͷཅؾʹ༠ΘΕͯ STNSͱDocker

Slide 2

Slide 2 text

hi! GMO Pepabo, Inc. ϗεςΟϯάࣄۀ෦ ϜʔϜʔυϝΠϯάϧʔϓ γχΞΤϯδχΞ @pyama86

Slide 3

Slide 3 text

STNS ɾLinuxϢʔβʔɺάϧʔϓͷ໊લղܾ ɾSSHϩάΠϯ࣌ͷެ։伴ͷऔಘ ɾSudoύεϫʔυͷೝূ

Slide 4

Slide 4 text

STNS ɾTOMLܗࣜͷઃఆϑΝΠϧ ɹˠγϯϓϧͳ؅ཧ ɾrhel,debianͷϦϙδτϦఏڙ ɾx86_64,i386ͷαϙʔτ [users.example] id = 1001 group_id = 1001 keys = ["ssh-rsa XXXXX…"] [groups.example] id = 1001 users = ["example"]

Slide 5

Slide 5 text

ෳ਺؀ڥΛαϙʔτ ↓ ӡ༻ෛՙ͕ߴ·Δ

Slide 6

Slide 6 text

Linuxϛυϧ΢ΣΞͷ৔߹ ɾෳ਺ͷOSɾΞʔΩςΫνϟͰͷಈ࡞Λอূ ɾෳ਺ͷܗࣜͷύοέʔδϯάʹରԠ(rpm,deb) ɾLinuxͷࠜװͷػೳͰ͋ΔͨΊαʔϏεஅ͸ ڐ͞Εͳ͍

Slide 7

Slide 7 text

ϦϦʔεϑϩʔ 1.push 2.webhook 3.CI 4.test deploy 5.install test 6.integration test 7.producion deploy

Slide 8

Slide 8 text

Docker

Slide 9

Slide 9 text

ϦϦʔεϑϩʔ 1.push 2.webhook 3.CI 4.test deploy 5.install test 6.integration test 7.producion deploy Docker

Slide 10

Slide 10 text

໾ׂ͝ͱʹΠϝʔδΛ෼͚Δ rhel-x86-build rhel-x86-test rhel-x86-pkg rhel-i386-build rhel-i386-test rhel-i386-pkg debian-x86-build debian-x86-test debian-x86-pkg debian-i386-build debian-i386-test debian-i386-pkg rhel-x86-chef rhel-i386-chef debian-x86-chef debian-i386-chef 16ύλʔϯ×2(server,client)

Slide 11

Slide 11 text

DRY

Slide 12

Slide 12 text

Base STEP1:Πϝʔδ؅ཧΛೋஈ֊ʹ rhel-x86 rhel-i386 debian-i386 debian-x86 Πϯετʔϧ͢Δϛυϧ΢ΣΞ΍ ಺෦ઃఆΛἧ͑ɺΞʔΩςΫνϟ ʹґଘ͠ͳ͍ૢ࡞ΛՄೳͱ͢Δ concreate rhel-x86-build rhel-x86-test rhel-x86-pkg rhel-i386-build rhel-i386-test rhel-i386-pkg debian-x86-build debian-x86-test debian-x86-pkg debian-i386-build debian-i386-test debian-i386-pkg ϕʔεΠϝʔδ͔Β໾ׂ͝ͱʹ ΠϝʔδΛ࡞੒͢Δ

Slide 13

Slide 13 text

STEP2:ERBͰDockerfileͰग़དྷΔ͜ͱΛ૿΍͢ ɾdocker/centos-ci.erb DockerfileͷFROMʹ͸ม਺ΛࢦఆͰ͖ͳ͍ͷͰ ERBͰςϯϓϨʔτԽ͢Δ

Slide 14

Slide 14 text

STEP3:RakeͰBuild͢Δ ɾRakefile Rake ͸ Ruby Ͱॻ͔ΕͨϏϧυπʔϧɻ ERBͱ߹ΘͤΔ͜ͱͰॏෳΛݮΒ͠ɺλεΫΛఆٛ͢Δ͜ͱ͕ग़དྷ·͢ɻ

Slide 15

Slide 15 text

Dockerfile rhel-x86-build rhel-x86-test rhel-x86-pkg rhel-i386-build rhel-i386-test rhel-i386-pkg debian-x86-build debian-x86-test debian-x86-pkg debian-i386-build debian-i386-test debian-i386-pkg bin/rake build bin/rake test bin/rake pkg ໾ׂ͝ͱʹ1ίϚϯυͰશͯͷOSɺ ΞʔΩςΫνϟͰ࣮ߦͰ͖ΔΑ͏ʹͳΔ

Slide 16

Slide 16 text

͞Βʹ

Slide 17

Slide 17 text

Travis CIͳΒDocker΋ಈ͘ ɾύοέʔδ࡞੒ ɾΠϯετʔϧ ɾServerspecͰల։ޙͷঢ়ଶΛςετ ɹ →ෳ਺ͷOSɺෳ਺ͷΞʔΩςΫνϟΛCI

Slide 18

Slide 18 text

࠷ޙʹ ɾDockerΛར༻͢Δͱෳ਺ͷ؀ڥΛखܰʹ४උ͢Δ ͜ͱ͕ग़དྷΔ͕ɺखܰ͞Ώ͑ʹDRYݪଇʹ൓͕ͪ͠ ɾRakeͱ૊Έ߹Θͤɺಉ͡ఆٛΛߦΘͳ͍ ɾϕʔεΠϝʔδͱ۩৅Πϝʔδͷೋஈ֊ʹ෼͚Δ ͜ͱͰπʔϧͱ૊Έ߹Θͤ΍͘͢ͳΔ ɾSTNSɺຊ౰ʹศར͔ͩΒ࢖ͬͨ΄͏͕͍͍

Slide 19

Slide 19 text

͓ෲ͍ͨ͢ΆΑ