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 ;)