Slide 1

Slide 1 text

ۭલઈޙͷΥΥʂ ௒ઈౖᔶͷAnsible 2017/1/27 Fukuoka.NET (Fukuten) #5 1

Slide 2

Slide 2 text

Kunihiro Morita AlterBooth,inc. Solutions Architect @morita92hiro morita92hiro http://hawaku.hateblo.jp 2017/1/27 Fukuoka.NET (Fukuten) #5 2

Slide 3

Slide 3 text

2017/1/27 Fukuoka.NET (Fukuten) #5 3

Slide 4

Slide 4 text

Ansible by Red Hat 2017/1/27 Fukuoka.NET (Fukuten) #5 4

Slide 5

Slide 5 text

Red Hat ❤ Microsoft 2017/1/27 Fukuoka.NET (Fukuten) #5 5

Slide 6

Slide 6 text

Ansibleͱ͸ 4 PythonͰಈ͘ 4 ίʔυͰΠϯϑϥΛߏ੒؅ཧ͢Δπʔϧ 4 Infrastructure as code 2017/1/27 Fukuoka.NET (Fukuten) #5 6

Slide 7

Slide 7 text

ྨࣅπʔϧ 4 chef 4 puppet 2017/1/27 Fukuoka.NET (Fukuten) #5 7

Slide 8

Slide 8 text

ͳͥ࢖͏ʁ 2017/1/27 Fukuoka.NET (Fukuten) #5 8

Slide 9

Slide 9 text

ߏ੒؅ཧπʔϧͳ͠ 4 खॱॻΛݩʹखಈͰઃఆ 4 खಈͳͷͰϛε΋͓͖Δ 4 खॱॻ͸࠷৽ͷঢ়ଶʁ 4 ൿ఻ͷλϨ 4 ࢼ͞ΕΔهԱྗ 2017/1/27 Fukuoka.NET (Fukuten) #5 9

Slide 10

Slide 10 text

ߏ੒؅ཧπʔϧ͋Γ 4 खॱΛίʔυͰهड़ 4 ίʔυΛ࣮ߦͯࣗ͠ಈͰઃఆ 4 ίʔυ͕࠷৽ͷঢ়ଶ 4 όʔδϣϯ؅ཧͯ͠ɺҎલͷঢ়ଶʹ໭͢ͷ΋؆୯ 4 Կ౓࣮ߦͯ͠΋ಉ͡ঢ়ଶʢႈ౳ੑʣ 2017/1/27 Fukuoka.NET (Fukuten) #5 10

Slide 11

Slide 11 text

AnsibleΠϯετʔϧ $ pip install ansible 2017/1/27 Fukuoka.NET (Fukuten) #5 11

Slide 12

Slide 12 text

Ansibleͷཁૉ 4 inventory 4 module 4 playbook 2017/1/27 Fukuoka.NET (Fukuten) #5 12

Slide 13

Slide 13 text

inventory ࡞ۀର৅ͱͳΔϗετΛهड़͢ΔϑΝΠϧ [web] 192.168.0.10 [db] 192.168.0.20 2017/1/27 Fukuoka.NET (Fukuten) #5 13

Slide 14

Slide 14 text

module Πϯετʔϧ΍αʔϏεىಈͳͲίϚϯυͷ෦෼ 4 yum 4 service $ ansible -i hosts web -m ping 192.168.0.10 | success >> { "changed": false, "ping": "pong" } 2017/1/27 Fukuoka.NET (Fukuten) #5 14

Slide 15

Slide 15 text

playbook ϞδϡʔϧΛ࣮૷࣮ͯ͠ߦ͢Δ෦෼ - hosts: web sudo: yes tasks: - name: be sure httpd is installed yum: name=httpd state=installed - name: be sure httpd is running and enabled service: name=httpd state=running enabled=yes 2017/1/27 Fukuoka.NET (Fukuten) #5 15

Slide 16

Slide 16 text

playbook࣮ߦ $ ansible-playbook -i hosts simple.yml PLAY [web] ************************************************************ GATHERING FACTS *************************************************************** ok: [192.168.0.10] TASK: [be sure httpd is installed] ******************************************** changed: [192.168.0.10] TASK: [be sure httpd is running and enabled] ********************************** changed: [192.168.0.10] PLAY RECAP ******************************************************************** 192.168.0.10 : ok=3 changed=2 unreachable=0 failed=0 2017/1/27 Fukuoka.NET (Fukuten) #5 16

Slide 17

Slide 17 text

MacͰ΍ͬͯΈΔ 2017/1/27 Fukuoka.NET (Fukuten) #5 17

Slide 18

Slide 18 text

hosts localhost 2017/1/27 Fukuoka.NET (Fukuten) #5 18

Slide 19

Slide 19 text

playbook - hosts: localhost connection: local gather_facts: no tasks: - name: tap homebrew cask homebrew_tap: tap=caskroom/cask state=present - name: install homebrew-cask homebrew: name=brew-cask state=latest - name: install dockertoolbox homebrew_cask: name=dockertoolbox state=present 2017/1/27 Fukuoka.NET (Fukuten) #5 19

Slide 20

Slide 20 text

playbook࣮ߦ $ ansible-playbook -i hosts localhost.yml -vv PLAY [localhost] ************************************************************** TASK: [tap homebrew cask] ***************************************************** REMOTE_MODULE homebrew_tap tap=caskroom/cask state=present CHECKMODE=True ok: [localhost] => {"changed": false, "msg": "added: 0, unchanged: 1"} TASK: [install homebrew-cask] ************************************************* REMOTE_MODULE homebrew name=brew-cask state=latest CHECKMODE=True ok: [localhost] => {"changed": false, "msg": "Package is already upgraded: brew-cask"} TASK: [install dockertoolbox] ************************************************ REMOTE_MODULE homebrew_cask name=dockertoolbox state=present CHECKMODE=True changed: [localhost] => {"changed": true, "msg": "Cask would be installed: dockertoolbox"} PLAY RECAP ******************************************************************** localhost : ok=3 changed=1 unreachable=0 failed=0 2017/1/27 Fukuoka.NET (Fukuten) #5 20

Slide 21

Slide 21 text

WindowsͰ΍ͬͯΈΔ 2017/1/27 Fukuoka.NET (Fukuten) #5 21

Slide 22

Slide 22 text

࢒೦ͳ͕Β௚઀AnsibleΛ ಈ͔͢͜ͱ͸ग़དྷ·ͤΜ ! 2017/1/27 Fukuoka.NET (Fukuten) #5 22

Slide 23

Slide 23 text

ಈ͔͢ʹ͸! 4 Windows্ʹLinuxͷԾ૝ϚγϯΛ༻ҙ͢Δ 4 Cygwinʢαϙʔτ֎ʣ 4 Windows Subsystem for Linux 2017/1/27 Fukuoka.NET (Fukuten) #5 23

Slide 24

Slide 24 text

playbook - hosts: windows tasks: - name: Install git win_chocolatey: name: git - name: Install SourceTree win_chocolatey: name: sourcetree - name: Install Notepad++ win_chocolatey: name: notepadplusplus.install 2017/1/27 Fukuoka.NET (Fukuten) #5 24

Slide 25

Slide 25 text

ଞʹ΋ 4 VagrantϓϩϏδϣχϯά 4 DockerΠϝʔδϏϧυ 4 ֤छΫϥ΢υͷૢ࡞ʢAzure/AWS/OpenStackͳͲʣ ͳͲͳͲ 2017/1/27 Fukuoka.NET (Fukuten) #5 25

Slide 26

Slide 26 text

Ansible࢖͍͍ͨʗڵຯ͕͋Δʁ 4 ͸͍ 4 ͍͍͑ 2017/1/27 Fukuoka.NET (Fukuten) #5 26

Slide 27

Slide 27 text

2/16ൃച✨ http://amzn.to/2jwgzVb 2017/1/27 Fukuoka.NET (Fukuten) #5 27

Slide 28

Slide 28 text

ߪೖ͢Δʁ 4 ͸͍ 4 ͍͑͢ http://amzn.to/2jwgzVb 2017/1/27 Fukuoka.NET (Fukuten) #5 28