Upgrade to Pro — share decks privately, control downloads, hide ads and more …

STNSとDocker

Kazuhiko Yamashita
April 23, 2016
1.3k

 STNSとDocker

Kazuhiko Yamashita

April 23, 2016
Tweet

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. ෳ਺؀ڥΛαϙʔτ

    ӡ༻ෛՙ͕ߴ·Δ

    View Slide

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

    View Slide

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

    View Slide

  8. Docker

    View Slide

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

    View Slide

  10. ໾ׂ͝ͱʹΠϝʔδΛ෼͚Δ
    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)

    View Slide

  11. DRY

    View Slide

  12. 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
    ϕʔεΠϝʔδ͔Β໾ׂ͝ͱʹ
    ΠϝʔδΛ࡞੒͢Δ

    View Slide

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

    View Slide

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

    View Slide

  15. 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ɺ
    ΞʔΩςΫνϟͰ࣮ߦͰ͖ΔΑ͏ʹͳΔ

    View Slide

  16. ͞Βʹ

    View Slide

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

    View Slide

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

    View Slide

  19. ͓ෲ͍ͨ͢ΆΑ

    View Slide