Slide 1

Slide 1 text

ڞ௨ݴޠʮ"OTJCMFʯ !BVUIFSηϦ ڞ௨ݴޠʮ"OTJCMFʯ

Slide 2

Slide 2 text

γεςϜΛߏங͢Δ͞·͟·ͳιϑτ΢ΣΞ • 1)1 • 1IBMDPO • OHJOY • .Z42- • +BWB • (BUMJOH • 'BCSJD • ;BCCJY • 'MVFOUE • ,JCBOB     FUDʜ

Slide 3

Slide 3 text

൴΋͍·͢

Slide 4

Slide 4 text

؀ڥ͍ͬͺ͍ • ։ൃ؀ڥ • 45(؀ڥ • ෛՙࢼݧ؀ڥ • ຊ൪؀ڥ • ࣍ظຊ൪؀ڥ

Slide 5

Slide 5 text

։ൃ༻ 45(ɾຊ൪༻ ΞϓϦ༻ ෛՙ؀ڥ༻

Slide 6

Slide 6 text

αʔό୆਺ ໿୆

Slide 7

Slide 7 text

؅ཧऀɾɾɾ̍ਓʂ

Slide 8

Slide 8 text

ɾɾɾώϟο

Slide 9

Slide 9 text

αʔό؅ཧऀͷঢ়گ • +BWBͷ8FCΞϓϦέʔγϣϯ։ൃϚϯʢਓ͕͍ͳ͍͔Β΍ͬͯʣ • طଘ؀ڥҾܧ͗ʢ։ൃ؀ڥ͔Βຊ൪؀ڥ·ͰߏஙࡁΈʣ • "OTJCMFʁ΁ʔʢͦΜͳͷ͋ΔΜͩʣ • ࢀը౰ॳ͸ਓνʔϜ • ࠓ͸ਓνʔϜ • αʔόϚγϯࣗମΛௐୡɾ؅ཧ͢ΔΠϯϑϥνʔϜ͕
 ผ్ଘࡏ͢Δ ͦΜͳνʔϜͷ͓࿩Ͱ͢

Slide 10

Slide 10 text

Ansible׆༻ࣄྫ

Slide 11

Slide 11 text

౰ࣾͷΑ͋͘Δαʔόௐୡγʔϯ ΠϯϑϥνʔϜ • αʔό༻్ • εϖοΫ • ୆਺ • ΞΧ΢ϯτ • ௨৴ཁ݅ • ϛυϧ΢ΣΞཁٻ ։ൃνʔϜ ֬ೝ ґཔ

Slide 12

Slide 12 text

ൿ఻ͷεΫϦϓτ αʔό׬੒ʂ ΠϯϑϥνʔϜ

Slide 13

Slide 13 text

ΠϯϑϥνʔϜ ։ൃνʔϜ ड͚౉͠ ࣮ࡍͷߏங࡞ۀ͸ ΄ͱΜͲ΍Βͳͯ͘ࡁΜͩɻ αʔόϝϯς΋΍ͬͯ໯͑Δʂ Ͱ͖·ͨ͠ɻ root͸ͪ͜ΒͰ
 ؅ཧ͠·͢ɻ ೚ͤͯ҆৺

Slide 14

Slide 14 text

ޙ೔ɾɾɾ • ͜͜ͷઃఆ஋Λม͍͑ͨ • ͜͜΋ม͍͑ͨ • ͜ͷϛυϧ͍Εͯ • ઃఆ஋ڭ͑ͯ • ͜͜ม͑ͨʁ • ௥Ճґཔग़ͯ͠ • ͪΐͬͱ଴ͬͯ • ಋೖखॱڭ͑ͯ • ͜ͷࢿྉϝϯςͯ͠ • ͜͜ม͑ͨʁ

Slide 15

Slide 15 text

αʔόઃఆͷओ୲౰͕ɺ
 ։ൃνʔϜͰ͸ͳ͘ΠϯϑϥνʔϜͰ ͋Δ͕ނͷ࡞ۀϥά

Slide 16

Slide 16 text

୹ظతʹ͸ָ͕ͩ ௕ظతʹ͸खؒ

Slide 17

Slide 17 text

ࣗνʔϜͷαʔόௐୡγʔϯ ΠϯϑϥνʔϜ • αʔό༻్ • εϖοΫ • ୆਺ • ΞΧ΢ϯτ • ௨৴ཁ݅ • ϛυϧ΢ΣΞཁٻ • Ansibleͷίʔυ ։ൃνʔϜ ֬ೝ ґཔ

Slide 18

Slide 18 text

ൿ఻ͷεΫϦϓτ αʔό׬੒ʂ ΠϯϑϥνʔϜ ඪ४ߏ੒ͷ

Slide 19

Slide 19 text

ΠϯϑϥνʔϜ ։ൃνʔϜ ड͚౉͠ Α͠ɺAnsibleͰ ؀ڥߏஙͩʂ Ͱ͖·ͨ͠ɻ root౉͢ͷͰ ඞཁͳ࡞ۀͯ͠ ͍ͩ͘͞ɻ ࣗ෼ͨͪͰߏங

Slide 20

Slide 20 text

"OTJCMFͰ؀ڥߏங • "OTJCMFͷίʔυ͸྆νʔϜʹରͯ͠Φʔϓϯ 㱺ෳ਺νΣοΫʹΑΔϛε๷ࢭ • ΠϯϑϥνʔϜ͕جຊઃఆͨ͠ޙ͔Βߋ৽ • αʔόʹೖΒͳͯ͘΋"OTJCMFͷίʔυ͔Βઃఆ஋Λ֬ೝͰ͖Δ 㱺ηΩϡϦςΟରࡦ • ։ൃνʔϜଆ͕ಋೖ͢Δϛυϧ΢ΣΞʹ੹೚Λ࣋ͯΔ 㱺αʔϏεʹ߹Θͤͨࡉ͔͍νϡʔχϯά • ։ൃνʔϜͷΠϯϑϥ࡞ۀྔ͸૿Ճ 㱺ͭΒ͍

Slide 21

Slide 21 text

։ൃதͷ"OTJCMF׆༂ϙΠϯτ ։ൃ؀ڥͷߏங ●7BHSBOUͱ"OTJCMFͰϩʔΧϧ؀ڥΛαΫοͱߏங ●αʔόͷઃఆมߋ΋ϓϧϦΫͰՄೳ σϓϩΠ ●؀ڥࠩ෼ϑΝΠϧͷ҉߸Խͱ෮߸ʢ"OTJCMF7BVMUʣ ●҉߸Խ͢Δ͜ͱʹΑΔର৅ϑΝΠϧͷίʔυ؅ཧ ●σϓϩΠ࣌ʹ͸GBCSJDͷλεΫ಺Ͱ෮߸

Slide 22

Slide 22 text

Ansibleͷམͱ݀͠

Slide 23

Slide 23 text

έʔεɿ৽ͨͳαʔόΛ༻ҙ͍ͨ͠ • ࣍ظຊ൪؀ڥɺෛՙࢼݧ؀ڥΛ৽ͨʹߏங͍ͨ͠
 ʢ߹Θͤͯ୆ۙ͘ʣ • Ҏલྲྀͨ͠"OTJCMF͕͋Δ͔Β
 ͲΜͳ୆਺ͷΠϯετʔϧ΋େৎ෉ Ͱ΋࣮ࡍ͸ɾɾɾ

Slide 24

Slide 24 text

• ྲྀ͢ஈ֊ʹͳͬͯΤϥʔൃੜ • ֎෦αʔόͱͷ͚݀͋ཁٻͷΑ͏ͳɺ
 "OTJCMF؅ཧ֎ͷ࡞ۀΛࣦ೦ • ྲྀ͚ͩ͢Ͱ͸ऴΘΒͣɺεέδϡʔϧ஗Ԇ͕ൃੜ "OTJCMFΛ࡞Δ͚ͩͰຬ଍ͤͣʹ
 υΩϡϝϯτΛͪΌΜͱ࢒͢͜ͱ͕େࣄ έʔεɿ৽ͨͳαʔόΛ༻ҙ͍ͨ͠

Slide 25

Slide 25 text

έʔεɿ"OTJCMFා͍ 1. ຊ൪ͱಉҰͷωοτϫʔΫηάϝϯτ্Ͱྲྀ͢ͷ͸݁ߏා͍ • ࡞੒ऀ͕࢒͍ͬͯͳ͍ͱ࣮ߦ͕ਏ͍ • Ҿ͖ܧ͗͸͘͢͝ॏཁ ●Ͱ΋࡞੒ऀ͸࣮ߦ͢Ε͹େৎ෉ɺఔ౓ʹ͔͠ࢥ͍ͬͯͳ͍ͨΊΪϟοϓ͕ੜ͡Δ ●Ҿ͖ܧ͗ͰҰ౓Ұॹʹ1MBZCPPLΛྲྀ͢͜ͱ͕Ͱ͖Δͱ͍͍ 2. ඪ४ԽAnsible͸Կ͕ೖΔͷ͔Θ͔Βͳͯ͘ා͍ • ֬ೝίϚϯυ΍ESZSVO͕͋Δ͕ɺ1MBZCPPL͕ෳࡶͰ
 Ͳ͏͍͏ಈ࡞ʹͳΔ͔Θ͔Βͳ͍ ●͜Ε΋΍ͬͺΓυΩϡϝϯτ͕͋Δ͔Ͳ͏͔͍ͩ͠

Slide 26

Slide 26 text

έʔεɿ"OTJCMFΛྲྀͯ͠ΈͨΒ • Ҿ͖ܧ͍ͩ"OTJCMFΛྲྀͨ͠ΒɺTZTDPOGJH഑Լ͕
 ॻ͖มΘͬͯ͠·ͬͨʂ ΠϯϑϥνʔϜͷౖ͓Γʹ৮Εͯ͠·ͬͨɻ

Slide 27

Slide 27 text

έʔεɿ"OTJCMFΛྲྀͯ͠ΈͨΒ ࣄલʹ΍͓ͬͯ͘΂͖͜ͱ  • ؅ཧ͠ͳ͍ʢ؅ཧͰ͖ͳ͍ʣ΋ͷΛఆٛΛ͓ͯ͘͠ ● ෦ॺؒΛ·͙ͨ৔߹͸ϧʔϧ͗Ί΋ॏཁ ● TZTDPOGJH഑ԼʢJQUBCMFTͳͲʣ͸͍͡Βͳ͍ͱ͔ • ӡ༻ϧʔϧΛܾΊ͓ͯ͘ ● ϓϧϦΫͷϨϏϡΞʔʹ͢Δͱ͔͠ͳ͍ͱ͔ ● ;BCCJYͷ؂ࢹઃఆ͸ΠϯϑϥνʔϜʹ࣋ͬͯ΋Β͏ͱ͔

Slide 28

Slide 28 text

Ծॳͷສೳײ • αʔόߏஙͷ࡞ۀʹʮ"OTJCMFʯͱ͍͏୯ޠ͕ొ৔͢Δ΄Ͳɺ
 "OTJCMFͰશ෦Ͱ͖Δ͔ͷΑ͏ʹײ͍ͯͨ͡ɻ • 4.51αʔόͷઃఆ͕Ͱ͖͍ͯͳ͔ͬͨΓɺΞϓϦέʔγϣϯͷ ίʔυࣗମʹमਖ਼͕ඞཁͩͬͨΓ͕ͨ͠ɺͦΕΛҙࣝ͠ͳ͍Α͏ ʹͳͬͯ͠·͍ͬͯͨɻ • ྲྀͤ͹େৎ෉ɺͱ͍͏ͱ͜Ζ͔ΒυΩϡϝϯτ࡞੒͕
 ૄ͔ʹͳ͍ͬͯͨɻ • ͦΕ͸͓લͷϕετϓϥΫςΟε໰୊ɻ

Slide 29

Slide 29 text

"OTJCMF͕ෳࡶԽ͢Δͱ໰୊΋ෳࡶԽ͢Δ

Slide 30

Slide 30 text

΋ͬͱγϯϓϧʹ

Slide 31

Slide 31 text

Ansible͕ͭͳ͙ੈք

Slide 32

Slide 32 text

͍Ζ͍Ζͳͭͳ͕Γ • αʔϏε։ൃνʔϜͱΠϯϑϥνʔϜ͸ٕज़ελοΫ͕جຊҧ͏ 㱺"OTJCMFͳΒͲͪΒ΋Θ͔ΔͨΊɺͦ͜Λى఺ʹձ࿩͕Ͱ͖Δ • "OTJCMF͸࢓༷͕γϯϓϧͳͷͰɺͱ͖ͬͭ΍͍͢ɻ 㱺Πϯϑϥͷ࣮࡞ۀΛ͠ͳ͍ਓ΋Πϯϑϥͷ؅ཧํ๏ʹ৮ΕΒΕΔ • Πϯϑϥઃఆ͕ίʔυ؅ཧͰ͖Δ 㱺ΞϓϦ࣮૷ͱαʔόઃఆมߋ͕ϦϙδτϦͰඥ෇͘

Slide 33

Slide 33 text

"OTJCMFΛΤϯδχΞͷ ڞ௨ݴޠʹ "OTJCMFΛΤϯδχΞͷ ڞ௨ݴޠʹ

Slide 34

Slide 34 text

͓·͚

Slide 35

Slide 35 text

Shansible 4IBOHSJ-B"OJNF"1*ʢΞχϝʹؔ࿈͢ΔσʔλΛ3&45Ͱఏڙ͢Δ"1*ʣͷ
 ։ൃ؀ڥΛߏங͢Δ7BHSBOUͱ"OTJCMFͷϦϙδτϦɻ ● https://github.com/Project-ShangriLa/shansible/tree/feature/sora ळ༿ݪ*5ઓུݚڀॴ ʢIUUQBLJCBMBCJOGPʣ

Slide 36

Slide 36 text

1.9͔Β2.0΁มߋ࣌ͷΤϥʔରԠ • failed to resolve remote temporary directory ͷΤϥʔ ● https://github.com/ansible/ansible/issues/13876 • ERROR! SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh ● http://www.torutk.com/projects/swe/wiki/AnsibleͰSSH઀ଓ [defaults]
 host_key_checking = False 
 [ssh_connection]
 ssh_args = -o ControlMaster=no
 pipelining = True
 scp_if_ssh = True ansible-playbookΛ࣮ߦ͢ΔσΟϨΫτϦʹ ӈهͷansible.cfgΛ഑ஔɻ ղܾࡦ

Slide 37

Slide 37 text

1.9͔Β2.0΁มߋ࣌ͷΤϥʔରԠ • failed_whenͱchanged_whenͰϦετ͕࢖͑ͳ͍ ● https://github.com/ansible/ansible/issues/13905 failed_when: - "'pecl/zip is already installed' not in task_result.stdout" - "task_result.rc == 0" changed_when: - "'pecl/zip is already installed' not in task_result.stdout" - "task_result.rc != 0" failed_when: '"pecl/zip is already installed" not in task_result.stdout and task_result.rc != 0' changed_when: '"pecl/zip is already installed" not in task_result.stdout and task_result.rc == 0'