Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CIハンズオン@PHPカンファレンス福岡-環境構築
Search
Kaz Watanabe
June 27, 2015
Programming
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CIハンズオン@PHPカンファレンス福岡-環境構築
Kaz Watanabe
June 27, 2015
More Decks by Kaz Watanabe
See All by Kaz Watanabe
開発エンジニアが取り組む DevSecOps ~ GitHub Enterprise × Azure での実践~
kaz29
0
37
Greenは本当にGreenか? - B/GデプロイとAPI自動テストで安心デプロイ
kaz29
1
200
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
490
開発エンジニアが実践するDevSecOps
kaz29
0
160
PHPCon福岡2024-Azureもなかなかいいですよ.pdf
kaz29
2
380
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
3
1.3k
20220908_フロントエンドパフォーマンス改善.pdf
kaz29
2
200
PHP製のPodCast配信用WebアプリをReact+Next.jsなSSGで作り直してみた話
kaz29
3
720
バックエンドエンジニアの私がお勧めする SPAフロントエンド開発環境
kaz29
6
6.3k
Other Decks in Programming
See All in Programming
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
170
共通化で考えるべきは、実装より公開する型だった
codeegg
0
220
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
860
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
120
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
320
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
320
Creating Composable Callables in Contemporary C++
rollbear
0
210
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
180
AIエージェントで 変わるAndroid開発環境
takahirom
2
610
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
1
720
自作OSでスライド発表する
uyuki234
1
3.8k
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Balancing Empowerment & Direction
lara
6
1.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Practical Orchestrator
shlominoach
191
11k
Speed Design
sergeychernyshev
33
1.9k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
The untapped power of vector embeddings
frankvandijk
2
1.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
270
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Site-Speed That Sticks
csswizardry
13
1.3k
Transcript
$",&1)1ͰֶͿ ܧଓతΠϯςάϨʔγϣϯϋϯζΦϯ ڥߏஙฤ @PHPΧϯϑΝϨϯεԬ 2015/6/27
WHO? • Θͨͳ͔ͣͻΖ(@kaz_29) • ߹ಉձࣾ decr (decr.jp) • PHP(CakePHP)ͰWebΞϓϦ։ൃ •
Πϯϑϥߏஙɾӡ༻ • iOSΞϓϦ։ൃ #beer #iosdev #cakephp #cat #camp #golf #chef #vagrant
WHO?
QUESTION?
QUESTION? VagrantΛͬͨࣄ͕͋Δਓ
QUESTION? chefΛͬͨࣄ͕͋Δਓ
ಈ࡞ڥ • VirtualBox • Vagrant • chef-solo(+knife-solo) • berkshelf
ಈ࡞ڥ ։ൃڥ EFWFMPQ $*ڥ DJ ຊ൪ڥ EFQMPZ ڥઃఆ TIBSFEGPMEFS ͖ͳΤσΟλ*%&Ͱ։ൃ
QVTI QVMM ·ͣ͜͜ͷ
http://bit.ly/1IBecmb ͜͜ͰςΩετΛڞ༗͠·͢
ඞཁͳͷ • VitrtualBox - https://www.virtualbox.org/ • Vagrant - https://www.vagrantup.com/ •
(ChefDK - https://downloads.getchef.com/chef-dk/) ग़དྷΔ͚ͩ࠷৽Λ͏
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͔Βίϐʔͨ͠ͷΛ͍ͬͯͩ͘͞ʂ
Vagrant PluginͷΠϯετʔϧ $ vagrant plugin install vagrant-omnibus $ vagrant plugin
install vagrant-cachier
ڥઃఆϦϙδτϦΛऔಘ $ 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 "<?php phpinfo();" > application/app/webroot/index.php
։ൃ༻αʔόͷىಈ $ vagrant up develop
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"] …
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 …
http://192.168.33.10/
CIαʔόͷىಈ $ vagrant up ci
http://192.168.33.100:8080/
DEPLOYαʔόͷىಈ $ vagrant up deploy
http://192.168.33.200/
αϯϓϧΞϓϦڥͷߏங
։ൃڥ EFWFMPQ ಈ࡞ڥ $*ڥ DJ ຊ൪ڥ EFQMPZ ڥઃఆ TIBSFEGPMEFS ͖ͳΤσΟλ*%&Ͱ։ൃ
QVTI QVMM
ಈ࡞ڥ
BLOGAPPΛFORK͢Δ https://github.com/kaz29/blogapp
伴Λ࡞ͬͯొ $ 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 ެ։伴Λίϐʔ
伴Λ࡞ͬͯొ setting -> SSH Keys ͜͜ʹެ։伴ΛೖΕΔ
GITͷઃఆ $ git config --global user.name "Your Name" $ git
config --global user.email
[email protected]
ΞϓϦέʔγϣϯΛॳظԽ $ 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
None
JenkinsʹJobΛొ
JenkinsʹJobΛొ
JenkinsʹJobΛొ https://github.com/kaz29/blogapp.git
JenkinsʹJobΛొ 4$.ΛϙʔϦϯάΛνΣοΫ ) ઃఆྃͨ͠Βอଘ
JenkinsʹJobΛొ ϏϧυΛ࣮ߦ
JenkinsʹJobΛొ
JenkinsʹJobΛొ
ڥઃఆྃʂ $ vagrant halt deploy ͠Β͘Θͳ͍ͷͰམͱ͓͖ͯ͠·͢
ڥߏஙฤ Fin @kaz_29