Macの開発環境構築をAnsibleで自動化する
by
Takashi Kanemoto
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Macͷ։ൃڥߏஙΛ AnsibleͰࣗಈԽ͢Δ #phpstudy 2015.08.25 @qckanemoto
Slide 2
Slide 2 text
• ໊ݹ͔Βདྷ·ͨ͠ • (ג)ΧϧςοτίϛϡχέʔγϣϯζCTO • PHPྺ3.5 • #nagoyaphp, #symfony-meetup @qckanemoto
Slide 3
Slide 3 text
Χϧςοτίϛϡχέʔγϣϯζ • PHPerืूதʂ • ໊ݹʢϦϞʔτՄʣ • PHPϝϯλʔζ@hidenorigoto͞ΜJoined • ϦεςΟϯάࠂӡ༻πʔϧʮLisketʯ
Slide 4
Slide 4 text
ΤϯδχΞͷಇ͖͢͞େࣄʹͯ͠·͢ Χϧςοτίϛϡχέʔγϣϯζ
Slide 5
Slide 5 text
SNS͔ϝʔϧͰ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞✨ Χϧςοτίϛϡχέʔγϣϯζ
Slide 6
Slide 6 text
ຊ
Slide 7
Slide 7 text
͡Ίʹ • PHPͷ΄΅ग़͖ͯ·ͤΜস • WindowsϢʔβͷํ͝ΊΜͳ͍͞ • ৄࡉϒϩάهࣄʹ·ͱΊͯ͋Γ·͢ http://tech.quartetcom.co.jp/2015/07/24/ mac-osx-ansible/
Slide 8
Slide 8 text
Macͷ։ൃڥߏஙΛ AnsibleͰࣗಈԽ͢Δ
Slide 9
Slide 9 text
MacΛങ͍͑ͨͱ͖ • brew install ͋Ε͜Ε • GUIΞϓϦ͋Ε͜ΕΠϯετʔϧ • dotfiles (~/.xxx) ೖΕΔ • httpd.conf ฤू • php.ini ฤू
Slide 10
Slide 10 text
• brew install ͋Ε͜Ε • GUIΞϓϦ͋Ε͜ΕΠϯετʔϧ • dotfiles (~/.xxx) ೖΕΔ • httpd.conf ฤू • php.ini ฤू MacΛങ͍͑ͨͱ͖ ίϚϯυҰൃͰ ͯ͢ऴΘΒ͍ͤͨʂ
Slide 11
Slide 11 text
Ansible
Slide 12
Slide 12 text
Ansible • ߏཧπʔϧʢChef, Puppet, etcʣ • ߏ͍ͨ͠ঢ়ଶΛymlͰఆٛ • ରϗετΛɺఆٛͨ͠ঢ়ଶʹͯ͘͠ΕΔ • ႈੑʢఆٛͨ͠ঢ়ଶʹऩଋ͢Δʣ
Slide 13
Slide 13 text
४උ $ brew install python ansible
Slide 14
Slide 14 text
$ cat localhost.yml - hosts: localhost connection: local gather_facts: no sudo: no tasks: - homebrew: name={パッケージ名1} - homebrew: name={パッケージ名2} ؆୯ͳྫʢbrew installʣ $ cat hosts localhost
Slide 15
Slide 15 text
؆୯ͳྫʢbrew installʣ $ ansible-playbook localhost.yml -i hosts
Slide 16
Slide 16 text
؆୯ͳྫʢbrew installʣ $ ansible-playbook localhost.yml -i hosts
Slide 17
Slide 17 text
Homebrew Cask
Slide 18
Slide 18 text
Homebrew Cask • ίϚϯυͰGUIΞϓϦΠϯετʔϧͰ͖ΔΑ ͏ʹͳΔHomebrewͷ֦ு • ී௨ʹ͏߹ˣΈ͍ͨʹ͢Δ $ brew tap caskroom/cask $ brew install brew-cask $ brew cask install {パッケージ名}
Slide 19
Slide 19 text
tasks: - homebrew_tap: tap=caskroom/cask - homebrew: name=brew-cask - homebrew_cask: name={パッケージ名1} - homebrew_cask: name={パッケージ名2} via Ansible
Slide 20
Slide 20 text
httpd.conf php.ini|
Slide 21
Slide 21 text
ஔͱߦૠೖͰԿͱ͔ͳΔ • ྫɿ’Listen 8080’ Λ ‘Listen 80’ ʹஔ - replace: dest: /path/to/httpd.conf regexp: '^( *Listen) .*$' replace: '\1 80'
Slide 22
Slide 22 text
• ྫɿ’#ServerName ‘ Ͱ࢝·Δߦͷ͋ͱʹ ‘ServerName localhost:80’ Λૠೖ - lineinfile: dest: /path/to/httpd.conf insertafter: '^#ServerName ' line: 'ServerName localhost:80' ஔͱߦૠೖͰԿͱ͔ͳΔ
Slide 23
Slide 23 text
dotfiles
Slide 24
Slide 24 text
dotfiles • ~/.xxx తͳ֤छઃఆϑΝΠϧ • ࣗͷdotfiles͕ͳ͍ͱԿΔؾग़ͳ͍ • GitHubͰཧ͢Δͷ͕ओྲྀ • εΫϦϓτͰ ~/ Լʹsymlinkͯ͠ηοτ Ξοϓʢͱ͍͏ਓ͕ଟ͍ͱࢥ͏ʣ
Slide 25
Slide 25 text
via Ansible 1. ~/dotfiles ʹ git clone 2. ~/dotfiles/symlink.sh Λ࣮ߦ - git: repo:
[email protected]
:you/dotfiles.git dest: ~/dotfiles register: ret - shell: 'cd ~/dotfiles ; sh symlink.sh' when: ret|changed
Slide 26
Slide 26 text
via Ansible • shellλεΫΛ࣮ߦ͢ΔͷɺgitλεΫͷ݁Ռ ͕”changed”ͩͬͨ߹ͷΈʢႈੑ֬อʣ - git: repo:
[email protected]
:you/dotfiles.git dest: ~/dotfiles register: ret - shell: 'cd ~/dotfiles ; sh symlink.sh' when: ret|changed
Slide 27
Slide 27 text
·ͱΊ
Slide 28
Slide 28 text
MacΛങ͍͑ͨͱ͖ • brew install ͋Ε͜Ε • GUIΞϓϦ͋Ε͜ΕΠϯετʔϧ • dotfiles (~/.xxx) ೖΕΔ • httpd.conf ฤू • php.ini ฤू
Slide 29
Slide 29 text
• brew install ͋Ε͜Ε • GUIΞϓϦ͋Ε͜ΕΠϯετʔϧ • dotfiles (~/.xxx) ೖΕΔ • httpd.conf ฤू • php.ini ฤू MacΛങ͍͑ͨͱ͖ ίϚϯυҰൃͰ ͯ͢ऴΘΒͤͨͬͨʂ
Slide 30
Slide 30 text
ࡶײ • ύοέʔδͷΠϯετʔϧ͙Β͍ͳΒ؆୯ • ϑΝΠϧͷฤूͱ͔·ͰΔͱͪΐͬͱෳࡶ • MacΛ2Ҏ্࣋ͬͯΔਓͱ͔ʹ͓͢͢Ί • ձࣾͷࢧڅϚγϯͷηοτΞοϓͱ͔ʹ༗ޮ • ৽͍͠ϚγϯʹίϚϯυҰൃͰڥߏஙͰ͖ͨͱ ͖ͷײ
Slide 31
Slide 31 text
Thanks ;)