Slide 1

Slide 1 text

ՆٳΈͰ͕ࠩͭ͘ʂ Ansible #ansiblejp 2018/8/3 Ansible Night in Fukuoka 2018.08 1

Slide 2

Slide 2 text

৿ా๜༟ גࣜձࣾΦϧλʔϒʔε ιϦϡʔγϣϯΞʔΩςΫτ ૊ΈࠐΈ → Ϋϥ΢υΠϯϑϥ @morita92hiro https://hawaku.hateblo.jp 2018/8/3 Ansible Night in Fukuoka 2018.08 2

Slide 3

Slide 3 text

Ansibleపఈೖ໳ ൃചதʂ 2018/8/3 Ansible Night in Fukuoka 2018.08 3

Slide 4

Slide 4 text

ͭ·Βͳ͍ੈք͔Β΋ͬͱܹࢗͷ͋Δੈք΁มԽͤ͞Α͏ʂ ɹɹɹɹɹ 2018/8/3 Ansible Night in Fukuoka 2018.08 4

Slide 5

Slide 5 text

2018/8/3 Ansible Night in Fukuoka 2018.08 5

Slide 6

Slide 6 text

Ansibleͱ͸1 1 https://www.ansible.com/overview/it-automation 2018/8/3 Ansible Night in Fukuoka 2018.08 6

Slide 7

Slide 7 text

ΤʔδΣϯτϨεʹίʔ υͰߏ੒؅ཧ͢Δπʔϧ 2018/8/3 Ansible Night in Fukuoka 2018.08 7

Slide 8

Slide 8 text

ͳͥAnsibleΛ࢖͍࢝Ί͔ͨʁ! 2018/8/3 Ansible Night in Fukuoka 2018.08 8

Slide 9

Slide 9 text

࡞੒ͷґཔΛड͚Δ 2018/8/3 Ansible Night in Fukuoka 2018.08 9

Slide 10

Slide 10 text

୔ࢁͷ࡞੒ͷґཔΛड͚Δ 2018/8/3 Ansible Night in Fukuoka 2018.08 10

Slide 11

Slide 11 text

• Ҋ݅͝ͱͷαʔόʔ • ։ൃɺຊ൪༻ • ෳ਺୆ߏங • Ϋϥ΢υʹΑΔαʔόʔͷ࢖͍ࣺͯ • ӡ༻ ͜Εશ෦1ਓͰɾɾɾʁ 2018/8/3 Ansible Night in Fukuoka 2018.08 11

Slide 12

Slide 12 text

Ͳ͏΍ͬͯࡹ͘ʁ 2018/8/3 Ansible Night in Fukuoka 2018.08 12

Slide 13

Slide 13 text

!஥ؒΛݺͿ ͔͠͠ɺॿ͚͸ɾɾɾ! 2018/8/3 Ansible Night in Fukuoka 2018.08 13

Slide 14

Slide 14 text

௕͕࣌ؒΜ͹Δ 2018/8/3 Ansible Night in Fukuoka 2018.08 14

Slide 15

Slide 15 text

#͍͍͑ 2018/8/3 Ansible Night in Fukuoka 2018.08 15

Slide 16

Slide 16 text

Infrastructure as Code 2018/8/3 Ansible Night in Fukuoka 2018.08 16

Slide 17

Slide 17 text

ʊਓਓਓਓਓਓਓʊ ʼɹಇ͖ํվֵɹʻ ʉY^Y^Y^Y^Y^Yʉ 2018/8/3 Ansible Night in Fukuoka 2018.08 17

Slide 18

Slide 18 text

ߏ੒؅ཧπʔϧͳ͠ • खॱॻΛݩʹखಈͰઃఆ • खಈ͸ΦϖϛεͷՄೳੑ • खॱॻ͸ຊ౰ʹ࠷৽ʁ • ࢼ͞ΕΔهԱྗ • ൿ఻ͷλϨ 2018/8/3 Ansible Night in Fukuoka 2018.08 18

Slide 19

Slide 19 text

ߏ੒؅ཧπʔϧ͋Γ • खॱΛίʔυͰهड़ • ίʔυΛ࣮ߦͯࣗ͠ಈͰઃఆ • ୭Ͱ΋࣮ߦͰ͖Δ • ίʔυ͕࠷৽ͷঢ়ଶ • όʔδϣϯ؅ཧ(Git)ͯ͠ɺҎલͷঢ়ଶʹ໭͢ͷ΋؆୯ • Կ౓࣮ߦͯ͠΋ಉ͡ঢ়ଶʢႈ౳ੑʣ 2018/8/3 Ansible Night in Fukuoka 2018.08 19

Slide 20

Slide 20 text

͞Βʹ 2018/8/3 Ansible Night in Fukuoka 2018.08 20

Slide 21

Slide 21 text

ίʔυڞ௨Խ (Ansible Role) • ͍ͭ΋Πϯετʔϧ(sysstat, git౳) • ֤छϛυϧ΢ΣΞ(Apache, MySQL౳) • Ϋϥ΢υʹԠͨ͡ઃఆ(ϝϞϦΩϟογϡ౳) ࢖͑͹࢖͏΄ͲRoleࢿ࢈͕૿͑Δ 2018/8/3 Ansible Night in Fukuoka 2018.08 21

Slide 22

Slide 22 text

Let's Ansible 2018/8/3 Ansible Night in Fukuoka 2018.08 22

Slide 23

Slide 23 text

࠷௿ݶඞཁͳ෺ • Python • AnsibleίϚϯυ • inventory • module • playbook 2018/8/3 Ansible Night in Fukuoka 2018.08 23

Slide 24

Slide 24 text

AnsibleίϚϯυ Πϯετʔϧ $ pip install ansible 2018/8/3 Ansible Night in Fukuoka 2018.08 24

Slide 25

Slide 25 text

inventory ࡞ۀର৅ͱͳΔϗετΛهड़͢ΔϑΝΠϧ [web] 192.168.0.10 [db] 192.168.0.20 2018/8/3 Ansible Night in Fukuoka 2018.08 25

Slide 26

Slide 26 text

module Πϯετʔϧ΍αʔϏεىಈͳͲίϚϯυͷ෦෼ • yum • service $ ansible -i hosts web -m ping 192.168.0.10 | success >> { "changed": false, "ping": "pong" } 2018/8/3 Ansible Night in Fukuoka 2018.08 26

Slide 27

Slide 27 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 2018/8/3 Ansible Night in Fukuoka 2018.08 27

Slide 28

Slide 28 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 2018/8/3 Ansible Night in Fukuoka 2018.08 28

Slide 29

Slide 29 text

ଞʹ΋ • Ϋϥ΢υ • Vagrant • Windows • git • ωοτϫʔΫػث ͳͲͳͲ 2018/8/3 Ansible Night in Fukuoka 2018.08 29

Slide 30

Slide 30 text

AnsibleΛಋೖ͍ͯ͠ΔՕॴ • αʔόʔϓϩϏδϣχϯά • ΞϓϦέʔγϣϯσϓϩΠ Ϋϥ΢υ෦෼͸AWS CloudFormation΍Azure ARM Templateɺ TerraformΛ࢖͍ͬͯ·͢ɻ 2018/8/3 Ansible Night in Fukuoka 2018.08 30

Slide 31

Slide 31 text

Ansibleͷӡ༻ 2018/8/3 Ansible Night in Fukuoka 2018.08 31

Slide 32

Slide 32 text

ಈ࡞؀ڥ 2018/8/3 Ansible Night in Fukuoka 2018.08 32

Slide 33

Slide 33 text

Πϯετʔϧ͸؆୯ • yum install ansible • apt-get install ansible • pip install ansible ͓޷Έͷํ๏Ͱ 2018/8/3 Ansible Night in Fukuoka 2018.08 33

Slide 34

Slide 34 text

όʔδϣϯͷ૊Έ߹Θͤ • Python 2 (versions 2.6 or 2.7) • Python 3 (versions 3.5 and higher) • Ansible 1.x or 2.x • Playbook࡞੒࣌ͷAnsibleόʔδϣϯ 2018/8/3 Ansible Night in Fukuoka 2018.08 34

Slide 35

Slide 35 text

Ansibleઐ༻ಈ࡞؀ڥ͕͋Δ • ܧଓతʹϓϩϏδϣϯΠϯά͢ΔͨΊͷ؀ڥ͕͋Δ • όʔδϣϯ͸ݻఆ or ߹ΘͤΒΕΔ • Not ࠷৽͔΋͠Εͳ͍͕ಈ͘ʹࠔΒͳ͍ !όʔδϣϯ໰୊͸ճආͰ͖ͦ͏ 2018/8/3 Ansible Night in Fukuoka 2018.08 35

Slide 36

Slide 36 text

Ansibleಈ࡞؀ڥ͕ͳ͍ • ଞਓʹ࣮ߦͯ͠΋Β͍͍͚ͨͲಈ࡞؀ڥ͸ʁ • ୯ൃͷҊ݅ • ίϚϯυΞοϓσʔτޙͷPlaybookಈ͘ʁʢޙํޓ׵ʣ 2018/8/3 Ansible Night in Fukuoka 2018.08 36

Slide 37

Slide 37 text

͍ͨ͜͠ͱ • ؀ڥґଘ͔Βͷղ์ • ϙʔλϏϦςΟ 2018/8/3 Ansible Night in Fukuoka 2018.08 37

Slide 38

Slide 38 text

ίϯςφͰղܾͰ͖ͦ͏ 2018/8/3 Ansible Night in Fukuoka 2018.08 38

Slide 39

Slide 39 text

Docker • Dockerfile FROM python:3.6-onbuild CMD [ "ansible", "--version" ] • requirements.txt ansible>=2.5.0,<2.6.0 • Docker Build docker build -t local/ansible:2.5 . 2018/8/3 Ansible Night in Fukuoka 2018.08 39

Slide 40

Slide 40 text

docker run $ docker run -it --rm \ -v $HOME/.ssh:/root/.ssh:ro \ -v $PWD:/playbooks \ -w /playbooks \ hawaku/ansible:2.5 \ bash root@29867ac2540f:/playbooks# ansible -i hosts all -m ping 2018/8/3 Ansible Night in Fukuoka 2018.08 40

Slide 41

Slide 41 text

alias alias ansible_2.5='docker run -it --rm \ -v $HOME/.ssh:/root/.ssh:ro \ -v $PWD:/playbooks \ -w /playbooks \ hawaku/ansible:2.5 \ bash' $ ansible_2.5 root@29867ac2540f:/playbooks# ansible -i hosts all -m ping 2018/8/3 Ansible Night in Fukuoka 2018.08 41

Slide 42

Slide 42 text

΋͘͠͸ playbook ├── site.yml ├── Dockerfile ├── requirements.txt ├── inventories └── roles PlaybookʹDockerfileஔ͍ͱ͘ 2018/8/3 Ansible Night in Fukuoka 2018.08 42

Slide 43

Slide 43 text

·ͱΊ 2018/8/3 Ansible Night in Fukuoka 2018.08 43

Slide 44

Slide 44 text

AnsibleಋೖͷޮՌ • Πϯϑϥͷߏஙʹ͸ֻ͕͔࣌ؒΔ • !ࣗಈԽͰߏங࣌ؒͷ୹ॖɾۭ͖࣌ؒ༗ޮ׆༻ • !ઃఆ࿙Εɾϛε͕ͳ͘඼࣭͕҆ఆ • ΠϯϑϥΤϯδχΞෆࡏͰͷΞϓϦέʔγϣϯσϓϩΠ 2018/8/3 Ansible Night in Fukuoka 2018.08 44

Slide 45

Slide 45 text

ఆ࣌ୀࣾ2 2 http://redhat.lookbookhq.com/jpansiblecomic 2018/8/3 Ansible Night in Fukuoka 2018.08 45

Slide 46

Slide 46 text

͓·͚ 2018/8/3 Ansible Night in Fukuoka 2018.08 46

Slide 47

Slide 47 text

ࠇ͍ը໘޷͖Ͱ͢ΑͶʁ 2018/8/3 Ansible Night in Fukuoka 2018.08 47

Slide 48

Slide 48 text

AWX 2018/8/3 Ansible Night in Fukuoka 2018.08 48

Slide 49

Slide 49 text

AWXͰͰ͖Δ͜ͱ • AnsibleίϚϯυͷGUI൛ • Ϣʔβʔೝূ • ϩʔϧ؅ཧ • ࣮ߦཤྺ • Rest API ͳͲͳͲ 2018/8/3 Ansible Night in Fukuoka 2018.08 49

Slide 50

Slide 50 text

Azure Cloud Shell ϒϥ΢βͰαʔόʔϨεͰAnsibleಈ͖·͢ 2018/8/3 Ansible Night in Fukuoka 2018.08 50

Slide 51

Slide 51 text

Azure × Ansible 2018/8/3 Ansible Night in Fukuoka 2018.08 51

Slide 52

Slide 52 text

͓ΘΓ 2018/8/3 Ansible Night in Fukuoka 2018.08 52