$30 off During Our Annual Pro Sale. View Details »

CIハンズオン@PHPカンファレンス福岡-環境構築

 CIハンズオン@PHPカンファレンス福岡-環境構築

Kaz Watanabe

June 27, 2015
Tweet

More Decks by Kaz Watanabe

Other Decks in Programming

Transcript

  1. $",&1)1ͰֶͿ
    ܧଓతΠϯςάϨʔγϣϯϋϯζΦϯ
    ؀ڥߏஙฤ
    @PHPΧϯϑΝϨϯε෱Ԭ
    2015/6/27

    View Slide

  2. WHO?
    • Θͨͳ΂͔ͣͻΖ(@kaz_29)
    • ߹ಉձࣾ decr (decr.jp)
    • PHP(CakePHP)ͰWebΞϓϦ։ൃ
    • Πϯϑϥߏஙɾӡ༻
    • iOSΞϓϦ։ൃ
    #beer #iosdev #cakephp #cat #camp
    #golf #chef #vagrant

    View Slide

  3. WHO?

    View Slide

  4. QUESTION?

    View Slide

  5. QUESTION?
    VagrantΛ࢖ͬͨࣄ͕͋Δਓ

    View Slide

  6. QUESTION?
    chefΛ࢖ͬͨࣄ͕͋Δਓ

    View Slide

  7. ಈ࡞؀ڥ
    • VirtualBox
    • Vagrant
    • chef-solo(+knife-solo)
    • berkshelf

    View Slide

  8. ಈ࡞؀ڥ
    ։ൃ؀ڥ
    EFWFMPQ

    $*؀ڥ
    DJ

    ຊ൪؀ڥ
    EFQMPZ

    ؀ڥઃఆ
    TIBSFEGPMEFS
    ޷͖ͳΤσΟλ*%&Ͱ։ൃ
    QVTI
    QVMM
    ·ͣ͸͜͜ͷ࿩

    View Slide

  9. http://bit.ly/1IBecmb
    ͜͜ͰςΩετΛڞ༗͠·͢

    View Slide

  10. ඞཁͳ΋ͷ
    • VitrtualBox - https://www.virtualbox.org/
    • Vagrant - https://www.vagrantup.com/
    • (ChefDK - https://downloads.getchef.com/chef-dk/)
    ग़དྷΔ͚ͩ࠷৽Λ࢖͏

    View Slide

  11. BOXFILE௥Ճ
    $ vagrant box add handson_develop ~/Desktop/develop.box
    $ vagrant box add handson_ci ~/Desktop/ci.box
    $ vagrant box add handson_deploy ~/Desktop/deploy.box
    ͖ͬ͞USB͔Βίϐʔͨ͠΋ͷΛ࢖͍ͬͯͩ͘͞ʂ

    View Slide

  12. Vagrant PluginͷΠϯετʔϧ
    $ vagrant plugin install vagrant-omnibus
    $ vagrant plugin install vagrant-cachier

    View Slide

  13. ؀ڥઃఆϦϙδτϦΛऔಘ
    $ git clone https://github.com/kaz29/php_ci_env phpci_handson
    $ git checkout -b handson origin/handson
    $ cd phpci_handson
    $ mkdir application
    $ mkdir -p application/app/webroot
    $ echo " application/app/webroot/index.php

    View Slide

  14. ։ൃ༻αʔόͷىಈ
    $ vagrant up develop

    View Slide

  15. Vagrantfileͷղઆ

    config.vm.define :develop do |develop|
    develop.omnibus.chef_version = :latest
    develop.vm.hostname = "develop"
    develop.vm.box = "opscode-ubuntu-14.04"
    develop.vm.box_url = "handson_develop.box"
    develop.vm.network :private_network, ip: "192.168.33.10"
    develop.vm.synced_folder "application", "/var/www/application/
    current",
    id: "vagrant-root", :nfs => false,
    :owner => "vagrant",
    :group => "www-data",
    :mount_options => ["dmode=775,fmode=775"]

    View Slide

  16. Vagrantfileͷղઆ

    develop.vm.provision :chef_solo do |chef|
    chef.log_level = "debug"
    chef.cookbooks_path = "./cookbooks"
    chef.json = {
    nginx: {
    docroot: {
    owner: "vagrant",
    group: "vagrant",
    path: "/var/www/application/current/app/webroot",
    force_create: true
    },
    default: {
    fastcgi_params: { CAKE_ENV: "development" }
    },
    test: {
    available: true,
    fastcgi_params: { CAKE_ENV: "test" }
    }
    }
    }
    chef.run_list = %w[
    recipe[apt]
    recipe[phpenv::default]
    recipe[phpenv::composer]
    recipe[phpenv::develop]
    recipe[capistrano]
    ]
    end

    View Slide

  17. http://192.168.33.10/

    View Slide

  18. CIαʔόͷىಈ
    $ vagrant up ci

    View Slide

  19. http://192.168.33.100:8080/

    View Slide

  20. DEPLOYαʔόͷىಈ
    $ vagrant up deploy

    View Slide

  21. http://192.168.33.200/

    View Slide

  22. αϯϓϧΞϓϦ؀ڥͷߏங

    View Slide

  23. ։ൃ؀ڥ
    EFWFMPQ

    ಈ࡞؀ڥ
    $*؀ڥ
    DJ

    ຊ൪؀ڥ
    EFQMPZ

    ؀ڥઃఆ
    TIBSFEGPMEFS
    ޷͖ͳΤσΟλ*%&Ͱ։ൃ
    QVTI
    QVMM

    View Slide

  24. ಈ࡞؀ڥ

    View Slide

  25. BLOGAPPΛFORK͢Δ
    https://github.com/kaz29/blogapp

    View Slide

  26. 伴Λ࡞ͬͯొ࿥
    $ vagrant ssh develop
    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:

    $ cat ~/.ssh/id_rsa.pub
    ެ։伴Λίϐʔ

    View Slide

  27. 伴Λ࡞ͬͯొ࿥
    setting -> SSH Keys
    ͜͜ʹެ։伴ΛೖΕΔ

    View Slide

  28. GITͷઃఆ
    $ git config --global user.name "Your Name"
    $ git config --global user.email [email protected]

    View Slide

  29. ΞϓϦέʔγϣϯΛॳظԽ
    $ vagrant ssh develop
    $ cd /var/www/application/current
    $ rm -rf *
    $ git clone git://github.com/decr/blogapp.git . (<=υοτ)
    $ cd /var/www/application/current/app
    $ composer install --dev

    View Slide

  30. View Slide

  31. JenkinsʹJobΛొ࿥

    View Slide

  32. JenkinsʹJobΛొ࿥

    View Slide

  33. JenkinsʹJobΛొ࿥
    https://github.com/kaz29/blogapp.git

    View Slide

  34. JenkinsʹJobΛొ࿥
    4$.ΛϙʔϦϯάΛνΣοΫ
    )
    ઃఆ׬ྃͨ͠Βอଘ

    View Slide

  35. JenkinsʹJobΛొ࿥
    ϏϧυΛ࣮ߦ

    View Slide

  36. JenkinsʹJobΛొ࿥

    View Slide

  37. JenkinsʹJobΛొ࿥

    View Slide

  38. ؀ڥઃఆ׬ྃʂ
    $ vagrant halt deploy
    ͠͹Β͘࢖Θͳ͍ͷͰམͱ͓͖ͯ͠·͢

    View Slide

  39. ؀ڥߏஙฤ
    Fin
    @kaz_29

    View Slide