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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
35
Greenは本当にGreenか? - B/GデプロイとAPI自動テストで安心デプロイ
kaz29
1
190
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
490
開発エンジニアが実践するDevSecOps
kaz29
0
150
PHPCon福岡2024-Azureもなかなかいいですよ.pdf
kaz29
2
370
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
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.6k
AIで効率化できた業務・日常
ochtum
0
150
Performance Engineering for Everyone
elenatanasoiu
0
230
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
230
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
170
Oxlintのカスタムルールの現況
syumai
6
1.2k
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.3k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
310
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7.1k
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
220
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
280
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
170
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Statistics for Hackers
jakevdp
799
230k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
A Modern Web Designer's Workflow
chriscoyier
698
190k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
GitHub's CSS Performance
jonrohan
1033
470k
Speed Design
sergeychernyshev
33
1.9k
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