Slide 1

Slide 1 text

ChefɾAnsible౳Λ༻͍ͨ؀ڥͷ ࣗಈߏஙํ๏! ~ೖ໳ฤ~ Yutaro Sugai! 2015/2/23

Slide 2

Slide 2 text

͸͡Ίʹ ͜ͷൃද͸ݸਓͷݟղͰ͋Γɺ ॴଐ͍ͯ͠Δʢ͍ͯͨ͠ʣ૊৫ͷݟղ΍ɺ Chef࣮ફೖ໳ஶऀਞͷݟղͰ͸͋Γ·ͤΜ ٕज़తʹؒҧ͍͕͋Ε͹ ΍͘͞͠ࢦఠ͍ͯͩ͘͠͞

Slide 3

Slide 3 text

ࣗݾ঺հ ɾtwitter: hokkai7go ɾGitHub: hokkai7go ɾRubyܥΧϯϑΝϨϯεͷϨϙʔτ ɾΔͼ·ฤू ɾChef࣮ફೖ໳ ɾWebPay

Slide 4

Slide 4 text

ࠓ೔ͷ࿩ Chef΍Ansible౳Λ࢖ͬͨࣗಈԽʹ͍ͭͯ ͷ࿩΍ɺσϞΛ͓ݟͤ͠·͢ɻ πʔϧ΍ɺίʔυͷ࿩ʹͳΓ͕ͪͰ͕͢ ࠓ೔͸ࣗಈԽͷೖ໳ʹண໨͠·͢ɻ ࣗಈԽΛಋೖ͢Δࡍͷҙࢥܾఆʹ໾ཱͯͯ ͍͚ͨͩΕ͹޾͍Ͱ͢ɻ ओ࠵ऀ͔Βࣄલʹ௖͍࣭ͨ໰ʹ౴͑ͨΓɺ ࣗಈԽಋೖͷࡍʹߟ͑Δ͜ͱΛ঺հ͠·͢ɻ

Slide 5

Slide 5 text

Chef࣮ફೖ໳ • ޷ධൃചதʂ • ٕज़ධ࿦͔ࣾΒ • ݱࡏୈೋ൛ • ߽՚ࣥචਞ • Ұ࡭Ͱ෯޿͘Χόʔ

Slide 6

Slide 6 text

͓ྱ • Chef࣮ફೖ໳ͷஶऀͷΈͳ͞Μ • ౰ൃදͷػձΛ͍͍ͭͬͯͨͩͨ͘ @miyohide ࢯ • ೔ຊOSSਪਐϑΥʔϥϜͷؔ܎ऀͷํʑ

Slide 7

Slide 7 text

࣭໰͍ͤͯͩ͘͞͞ • SIerʹ͓ۈΊͷํ • ؅ཧ৬ͷํ • ݱ৔ͷΤϯδχΞͷํ • Chef΍AnsibleͳͲΛ࢖ͬͨ͜ͱ͕͋Δํ

Slide 8

Slide 8 text

࣭໰͍ͤͯͩ͘͞͞ • Chef΍Ansibleʹڵຯ͕͋Δํ • ࣗಈԽʹڵຯ͕͋Δํ • ͳΜͱͳ͘དྷͨํ

Slide 9

Slide 9 text

େࣄͳ͜ͱ • ChefɾAnsible౳ͱ୊໊ʹ͋Γ·͕͢ɺ πʔϧͷಋೖ͕໨తͰ͸͋Γ·ͤΜ

Slide 10

Slide 10 text

େࣄͳ͜ͱ • ࣗಈԽ΁ࢸΔಓ • ࣗಈԽΛҡ࣋͢Δϓϩηε

Slide 11

Slide 11 text

ࣗಈԽ! ͱ͸

Slide 12

Slide 12 text

ࣗಈԽͱ͸ https://kotobank.jp/word/ࣗಈԽ-681577ɹΑΓҾ༻ ͡Ͳ͏‐͔ʤ‐ΫϫʥʲࣗಈԽʳ ! ʦ໊ʧ(εϧ)ਓखʹΑΒͣɺػց΍ίϯϐϡʔλʔʹΑΔॲཧ ํࣜʹม͑Δ͜ͱɻʮ੡଄޻ఔͷʕΛ࣮ݱ͢Δʯ

Slide 13

Slide 13 text

ࣗಈԽ ࢲୡ͕࣮ݱ͍ͨ͠ͷ͸ɺ ɾαʔόߏங ɾӡ༻ ɹͷࣗಈԽ

Slide 14

Slide 14 text

ࣗಈԽ ͍͖ͳΓ ɾπʔϧ ɾίʔυ ͷ࿩ʹͳΔͷ͸ૣٸ͗͢Δ

Slide 15

Slide 15 text

໨తͷલʹ • ͲΜͳ૊৫ʁ • ͲΜͳϓϩμΫτʁ • ͩΕ͕ϓϩμΫτΛ࢖͏ͷʁ • ϓϩμΫτ͕མͪΔͱ୭͕ࠔΔͷʁ • མͪͨϓϩμΫτΛ୭͕௚͢ͷʁ • ࣗಈԽͰԿΛղܾ͢Δͷʁ • ϦϦʔεΛओಋ͢Δͷ͸୭ʁͲͷ૊৫ʁ • ϓϩδΣΫτ͸ࠓɺͲΜͳஈ֊ʁ

Slide 16

Slide 16 text

໨తͷલʹ • ͲΜͳ૊৫ʁ • ͲΜͳϓϩμΫτʁ • ͩΕ͕ϓϩμΫτΛ࢖͏ͷʁ • ϓϩμΫτ͕མͪΔͱ୭͕ࠔΔͷʁ • མͪͨϓϩμΫτΛ୭͕௚͢ͷʁ • ࣗಈԽͰԿΛղܾ͢Δͷʁ • ϦϦʔεΛओಋ͢Δͷ͸୭ʁͲͷ૊৫ʁ • ϓϩδΣΫτ͸ࠓɺͲΜͳஈ֊ʁ ӡ༻ʹؔΘΔਓΛ ר͖ࠐΉඞཁ

Slide 17

Slide 17 text

໨తͷલʹ • ͲΜͳ૊৫ʁ • ͲΜͳϓϩμΫτʁ • ͩΕ͕ϓϩμΫτΛ࢖͏ͷʁ • ϓϩμΫτ͕མͪΔͱ୭͕ࠔΔͷʁ • མͪͨϓϩμΫτΛ୭͕௚͢ͷʁ • ࣗಈԽͰԿΛղܾ͢Δͷʁ • ϦϦʔεΛओಋ͢Δͷ͸୭ʁͲͷ૊৫ʁ • ϓϩδΣΫτ͸ࠓɺͲΜͳஈ֊ʁ ϓϩμΫτ΁ͷཧղ

Slide 18

Slide 18 text

໨తͷલʹ • ͲΜͳ૊৫ʁ • ͲΜͳϓϩμΫτʁ • ͩΕ͕ϓϩμΫτΛ࢖͏ͷʁ • ϓϩμΫτ͕མͪΔͱ୭͕ࠔΔͷʁ • མͪͨϓϩμΫτΛ୭͕௚͢ͷʁ • ࣗಈԽͰԿΛղܾ͢Δͷʁ • ϦϦʔεΛओಋ͢Δͷ͸୭ʁͲͷ૊৫ʁ • ϓϩδΣΫτ͸ࠓɺͲΜͳஈ֊ʁ Ұ൪େࣄͳͱ͜Ζ

Slide 19

Slide 19 text

໨తͷલʹ • ͲΜͳ૊৫ʁ • ͲΜͳϓϩμΫτʁ • ͩΕ͕ϓϩμΫτΛ࢖͏ͷʁ • ϓϩμΫτ͕མͪΔͱ୭͕ࠔΔͷʁ • མͪͨϓϩμΫτΛ୭͕௚͢ͷʁ • ࣗಈԽͰԿΛղܾ͢Δͷʁ • ϦϦʔεΛओಋ͢Δͷ͸୭ʁͲͷ૊৫ʁ • ϓϩδΣΫτ͸ࠓɺͲΜͳஈ֊ʁ ஈ֊ʹΑΓ ΍Δ͜ͱ͕มΘΔ

Slide 20

Slide 20 text

ࣗಈԽͷϝϦοτ • Πϯϑϥͷߏஙɾӡ༻ΛίʔυͰࣗಈԽ • αʔό୆਺ʹࠨӈ͞Εͳ͍ • Φϖϛεͷ࡟ݮ • ޮ཰Խʢ޻਺ͷ࡟ݮʣ • ଐਓੑͷഉআ • खॱॻ͔Βͷଔۀ • ਖ਼͔֬ͭߴ଎

Slide 21

Slide 21 text

ࣗಈԽͷσϝϦοτ • σϝϦοτ • ࣌ؒͱख͕͔͔ؒΔ • ܧଓతʹอक͢Δ࣌ؒͱखؒ

Slide 22

Slide 22 text

ࣗಈԽʹσϝϦοτ ͕͋Δͱ͸͍͑ɺ! ख࡞ۀ+खॱॻ͸ͭ Β͍

Slide 23

Slide 23 text

• ਫΛҿΉ • ࣍͸ɺࣗಈԽͷಋೖํ๏ʹ͍ͭͯ

Slide 24

Slide 24 text

Ͳ͏΍ͬͯࣗಈԽΛ ಋೖͨ͠Β͍͍ͷʁ

Slide 25

Slide 25 text

ಋೖ • λΠϛϯά • ϓϩδΣΫτ͕࢝·Δͱ͖ • ։ൃ؀ڥΛߏங͢Δͱ͖ • طଘͷγεςϜʹಋೖ͢Δͱ͖ • ্هҎ֎ͷ৔߹(൪֎ฤ)

Slide 26

Slide 26 text

ಋೖ(PJ։࢝࣌) • ϓϩδΣΫτ։࢝࣌ʹࣗಈԽ͓͖͍ͯͨ͠΋ͷ • σϓϩΠɾCIɾߏஙࣗಈԽ • ࣮ࡍʹಈ͘ίʔυ͕ͳͯ͘΋΍Ζ͏ • ϓϩηεΛ܁Γฦ͠վળ͢Δ͜ͱ͕Ͱ͖Δ

Slide 27

Slide 27 text

ಋೖ(։ൃ؀ڥߏங) • ಉ͡؀ڥΛૉૣ͘։ൃऀʹ഑෍Ͱ͖ΔΑ͏ʹͳΔ • όʔδϣϯͷҧ͍Ͱ೰·ͳ͘ͳΔ • ϝϯόʔ૿͑ͨ࣌ʹѹ౗తʹָ • Vagrantͱ૊Έ߹ΘͤΕ͹ߏஙͷ΍Γ௚͕͠͠΍͍͢ • Chef, Ansible౳ͷೖ໳ʹ͓͢͢Ί • Chef࣮ફೖ໳5,6ষ΋͓͢͢Ί • [ؾΛ͚ͭΔ͜ͱ] όʔδϣϯ؅ཧ͠ɺܧଓతʹมߋΛՃ͑ ΒΕΔΑ͏ʹ͓ͯ͘͠

Slide 28

Slide 28 text

ಋೖ(։ൃ؀ڥߏங) ᶃ VM Imageऔಘ ᶄ ϦϙδτϦ͔Β ίʔυऔಘ ίʔυΛऔಘͯ͠͸ ܧଓతʹϓϩϏδϣχϯά

Slide 29

Slide 29 text

ಋೖ(طଘͷγεςϜ΁) • Ұ൪Ή͔͍ͣ͠ • ՔಇதͷαʔϏεʹӨڹΛ༩͑΍͍ͨ͢Ί • αʔό௥Ճ͕͋Ε͹Ұ൪ͱ͖ͬͭ΍͍͢

Slide 30

Slide 30 text

ಋೖ(൪֎ฤ) • ؀ڥ͕มԽ͢Δͱ͖ʹಋೖ͢Δ • αʔόҠߦ • PaaS, IaaSͳͲ΁ͷҠߦ • ·ͬ͞ΒͳαʔόΛࣗಈԽͰߏங

Slide 31

Slide 31 text

ಋೖ(จԽ) • จԽͷಋೖ͕େࣄͰɺࠎ͕ંΕΔ͔΋ • ख࡞ۀΛͳ͘͠ɺࣗಈԽͰͷ࡞ۀத৺ʹ • ݽಠͳChef(ͳͲ)࢖͍ʹͳͬͯ͠·Θͳ͍Α͏ • ·ͣ͸ಡΈॻ͖ग़དྷΔ஥ؒΛ૿΍͢ • Ξϯνύλʔϯʹؾ͕෇͚ΔਓΛ૿΍͢ • ѻ͏ϛυϧ΢ΣΞ΍OSɺίϚϯυ౳΁ͷཧղ͕Լ஍ͱͯ͠ඞཁʹ ͳͬͯ͘Δ • ϝϯςφϯεੑ • ಡΈॻ͖͕͠΍͍͢ • ӡ༻ʹϑΟοτ͢Δ͔

Slide 32

Slide 32 text

ࣄલʹ௖͍࣭ͨ໰(1) “࣮ࡍʹɺChefΛ࢖ͬͯɺRailsΞϓϦ͕ಈ͘؀ڥΛߏஙͯ͠ཉ͍͠ ! ʢChefͷΠϯετʔϧ͔Β͸͡ΊͯɺRailsΞϓϦ͕ಈ͘·Ͱʣ”! ! →͜ͷ͋ͱσϞಈըΛ͓ݟͤ͠·͢

Slide 33

Slide 33 text

ࣄલʹ௖͍࣭ͨ໰(2) ”ChefͰݕࡧ͢ΔͱɺChef SoloɺChef ServerɺKnifeɺCookbookɺ ! ϨγϐɺBerkshelfͳͲɺ͞·͟·ͳ༻ޠ͕ͨ͘͞Μ͋Γ ! Α͘෼͔Βͳ͍ɻ੔ཧͯ͠ཉ͍͠ɻ”! ! →Chef Solo: ελϯυΞϩϯܗࣜͷChef! →Chef Server: Chef ClientͱڞʹΫϥΠΞϯτ/αʔόܗࣜͷChef! →Ϩγϐ: Ұ൪جૅతͳߏ੒ཁૉɻίʔυͰॻ͍ͨઃఆखॱ! →Cookbook: Ϩγϐʹඞཁͳσʔλ΍ϑΝΠϧΛ·ͱΊͨ΋ͷ! →Knife: खݩͷΫοΫϒοΫͱର৅ͷαʔόΛͭͳ͙ίϚϯυϥΠϯπʔϧ

Slide 34

Slide 34 text

ࣄલʹ௖͍࣭ͨ໰(2) http://www.slideshare.net/yandod/devopschef-chef12 ΑΓҾ༻ Chef ServerΛ࢖ͬͨߏ੒

Slide 35

Slide 35 text

ࣄલʹ௖͍࣭ͨ໰(2) http://www.slideshare.net/yandod/devopschef-chef12 ΑΓҾ༻

Slide 36

Slide 36 text

ࣄલʹ௖͍࣭ͨ໰(3) “RubyͷDSLΛॻ͘͜ͱͰαʔόߏஙͷࣗಈԽ͕ߦ͑Δͱͷ͜ͱ͕ͩɺ ! θϩ͔Β͢΂ͯΛॻ͖ى͜͢ͷ͸େมͩ͠ɺֶशίετ͕ߴ͗͢Δ ! Α͏ʹࢥ͏ɻApache΍Ruby,PassengerͳͲΛΠϯετʔϧ͢ΔͨΊͷ ! ςϯϓϨʔτ͸͋Δͷ͔ʁ “! ! →͍͍࣭໰Ͱ͢Ͷʂ! →Chef supermarket( https://supermarket.chef.io/ )͕͋Γ·͢ɻ! ! ͝ར༻͸ܭըతʹ! ʢ๬Ή΋ͷͰ͸ͳ͍Մೳੑ΍ɺ݁ہιʔείʔυΛಡΉӋ໨ʹͳΔ͜ͱ΋ʣ

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

Chef Supermarket • ୭͕ϝϯς͍ͯ͠Δͷʁ! • Chefࣾ! • PayPal! • HiganWorks! • Chef׆༻ΨΠυஶऀͷᖒొ͞Μͷձࣾ! • ͳͲͳͲ(ΫοΫϒοΫ࣍ୈ)! • ͲΜͳΫοΫϒοΫ͕͋Δͷʁ! • nginx! • apache2! • rbenv! • postgresql! • mysql! • docker! • ͳͲͳͲ

Slide 39

Slide 39 text

ࣄલʹ௖͍࣭ͨ໰(4) “RubyͷDSLͰࣗಈԽͰ͖Δͷ͸ָͩͱ͸ࢥ͏͕ɺςετ͸ ! ͲͷΑ͏ʹ͢Δͷ͔ɻ “! ! →͍͍࣭໰Ͱ͢Ͷʂ! →test-kitchen, Serverspec ΍ Infrataster Ͱςετ͢Δͷ͕ྑͦ͞͏! →͔͠͠ɺ·ͩϕετϓϥΫςΟε͸ͳ͍ͱೝ͍ࣝͯ͠Δ! →ࣗಈԽͷ੒ՌΛ֬ೝ͢Δͷ͕େࣄ! →ςετʹ࣌ؒΛ࢖͍ա͗ͳ͍Α͏ʹɺ·ͣ͸εϞʔϧελʔτͰ! ʢࣗಈԽʹ΋ɺςετʹ΋͕͔͔࣌ؒΔͱվળͷαΠΫϧΛճ͠ʹ͍͘ʣ

Slide 40

Slide 40 text

http://serverspec.org/ ΑΓ

Slide 41

Slide 41 text

http://infrataster.net/ ΑΓ

Slide 42

Slide 42 text

ࣄલʹ௖͍࣭ͨ໰(5) “్தͰࣦഊͨ͠ޙʹ࠶౓ɺ࣮ߦͯ͠΋໰୊ͳ͍͔ɻ ! ࣗ࡞ͷγΣϧεΫϦϓτͳͲͰࣗಈԽΛࢼΈΔͱɺϦϥϯॲཧͷ ! ࡞ΓࠐΈ͕େมɻ “! ! →໰୊ͳ͍ɻ! →ႈ౳ੑ(Կ౓࣮ߦͯ͠΋ಉ݁͡ՌʹͳΔੑ࣭ͷ͜ͱ)Λߟྀͯ͠ॻ͔Εͨ ϨγϐͰ͋Ε͹໰୊ͳ͍ɻ! →ʮखॱʯͰ͸ͳ͘ʮঢ়ଶʯΛఆٛ͢Ε͹Α͍(Chef࣮ફೖ໳ §2.10 p49)! →ྫ͑͹…(࣍ͷεϥΠυ΁

Slide 43

Slide 43 text

ྫ͑͹ɺgit clone͢Δͱ͖ ॳճ͚ͩclone͍ͨ͠ͳΒɺ࣍ճҎ߱͸࣮ߦ͢Δඞཁ͕ͳ͍ bash_profileΛϗʔϜσΟϨΫτϦʹ഑ஔ͍͕ͨ͠ aaa ͱ͍͏಺༰ؚ͕·Ε͍ͯΔͳΒɺมߋΛՃ͑ͨ͘ͳ͍ http://qiita.com/hokkai7go@github/items/37895052b52105be4c51 ΑΓ

Slide 44

Slide 44 text

ࣄલʹ௖͍࣭ͨ໰(6) “αʔόݻ༗ͷઃఆʢϗετ໊΍IPΞυϨεʣͳͲΛChefͰ ! ࣮ݱ͢Δ͜ͱ͸Մೳ͔ʁͦ͜͸΍͸Γख࡞ۀ͔ʁ “! ! →Մೳ͕ͩɺΫϥ΢υ؀ڥΛ࢖͍ͬͯͨͷͰݸਓతʹ͋·Γܦݧ͕ͳ͍! →ϗετ໊΍IPΞυϨεͷඥ෇͚Λ؅ཧ͢Δͷ͕൥ࡶͦ͏ʹࢥ͏

Slide 45

Slide 45 text

ࣄલʹ௖͍࣭ͨ໰(7) “Chefʹࣅͨπʔϧͱͯ͠Puppet΍ansibleͳͲ͕͋ΔΑ͏͕ͩɺ ! ͦΕͧΕͷಛ௃͸ʁ “! ! →͍͍࣭໰Ͱ͢Ͷʂ

Slide 46

Slide 46 text

πʔϧൺֱ Chef Ansible Itamae γΣϧεΫϦϓτ อकੑ ○ ○ ○ ☓ ಋೖָ͕͔ ˚ ○ ○ ○ কདྷੑ ○ ○ ○ ? ೉қ౓ ˚ ○ ˕ ˚ ϓϥοτ ϑΥʔϜ ˕ ○ ○ ○

Slide 47

Slide 47 text

πʔϧൺֱ • Chef • RubyͳͷͰΘ͔Γ΍͍͕͢ɺεΫϦϓτ͕ཚཱ͠ͳ͍ Α͏ؾΛ͚ͭΔඞཁ͕͋Δ • ͍ΖΜͳͱ͜ΖͰίʔυΛࠩ͠ࠐΊΔ෼ɺ͘·ͳ͘ಡ Ήඞཁ͕͋ΔΑ͏ʹࢥ͏ • ઃఆର৅ͷαʔόʹΤʔδΣϯτ(Ruby)ΛΠϯετʔ ϧ͢Δඞཁ͕͋Δ • ར༻ऀ͸૿͍͑ͯ͘ͱࢥ͏ • Windows΍Azureʹ΋ରԠ͍ͯ͠Δ໛༷(Chef12͔Β)

Slide 48

Slide 48 text

πʔϧൺֱ • Ansible • γϯϓϧͰͱͯ΋Α͍ • ͔͠͠ɺyamlͰԿ΋͔΋ॻ͘ͷʹ͸ແཧ͕͋Δ ؾ͕͢Δ • ར༻ऀ͸૿͍͑ͯ͘ͱࢥ͏ • ΤʔδΣϯτϨε࠷ߴʂ • SSH͑͞Ͱ͖Ε͹Α͍

Slide 49

Slide 49 text

πʔϧൺֱ • Itamae • Chef͔Βൃ૝ΛಘͨγϯϓϧͰܰྔͳπʔϧ • ೔ຊਓ͕։ൃɻ৘ใΛಘ΍͍͢ • RubyͳͷͰΘ͔Γ΍͍͢ • ར༻ऀ͸૿͍͑ͯ͘ͱࢥ͏ • ΤʔδΣϯτϨε࠷ߴʂ

Slide 50

Slide 50 text

πʔϧൺֱ • γΣϧεΫϦϓτ • ॻ͘ͷ΋ϝϯςφϯε΋େม • Θ͔Γʹ͍͘ͷͱɺႈ౳ੑͷߟྀ͕େม • EC2ͷcloud-initͷΑ͏ʹɺॳظߏஙͰ͸ڧྗ • γΣϧͷํݴΛߟྀ͢Δඞཁ͕͋Δ

Slide 51

Slide 51 text

·ͱΊ • πʔϧ͕େࣄͰ͸ͳ͍ • ࣗಈԽ΁ࢸΔಓ • ࣗಈԽΛҡ࣋͢Δϓϩηε • ͦͷ্Ͱɺࣗ෼ͨͪͷ૊৫Ͱ͸ͲͷπʔϧΛબͿ͔ • จԽͷಋೖ͕େม͕ͩେࣄ • ʢͳͥಋೖ͢Δͷ͔ͱ͍ͬͨʣࣾ಺޲͚ϙΤϜΛॻ͘ ͱ఻ΘΓ΍͍͔͢΋ • ࣄྫΛ஌Γ͍ͨͷͰɺͥͻൃද͍ͯͩ͘͠͞

Slide 52

Slide 52 text

Q&A • ೖ໳ฤͷൃද͸͜ΕͰऴΘΓͰ͢ • ࣭໰͸͋Γ·͔͢ʁ

Slide 53

Slide 53 text

ChefɾAnsible౳Λ༻͍ͨ؀ڥͷ ࣗಈߏஙํ๏! ~σϞฤ~ Yutaro Sugai! 2015/2/23

Slide 54

Slide 54 text

σϞ • Vagrant + Chef soloΛ࢖ͬͯߏங! • vagrantͷػೳͰ͋ΔprovisionerΛར༻! • ChefͷagentΠϯετʔϧ͸Vagrant͕ࣗಈͰ΍ͬͯ͘ΕΔ! • ΫοΫϒοΫ! • جຊతʹChef supermarketͷ΋ͷΛར༻! • nginx! • postgresql! • nodejs! • rbenv(RubyͷΠϯετʔϧ΍؅ཧ)! • ࣗલͰॻ͍ͨͷ͸্هΫοΫϒοΫͷݺͼग़͠΍ɺnginxͷݻ༗ઃ ఆͷΈ! • σϓϩΠ͸railsΞϓϦଆ͔ΒcapistranoΛར༻ͯ͠ߦ͏