<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://network.cmu.ac.th/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sirapat</id>
	<title>CMU ITSC Network - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://network.cmu.ac.th/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sirapat"/>
	<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php/Special:Contributions/Sirapat"/>
	<updated>2026-05-23T06:20:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4865</id>
		<title>CMU GlobalProtect VPN</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4865"/>
		<updated>2024-10-11T05:27:47Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การเชื่อมต่อ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== บทนำ ==&lt;br /&gt;
[[File:VPN.gif|link=]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN (Virtual Private Network)&amp;#039;&amp;#039;&amp;#039; หรือ &amp;quot;เครือข่ายส่วนตัวเสมือน&amp;quot; ใช้เทคนิคการทำ tunneling วิ่งบนเครือข่ายอินเทอร์เน็ตทำให้ไม่ว่าจะอยู่ที่ใดก็เสมือนว่ายังใช้งานเครือข่ายของมหาวิทยาลัยอยู่ หลังจากเชื่อมต่อ VPN แล้ว ข้อมูลจราจรทั้งหมดจะวิ่งมายังเครือข่ายภายในมหาวิทยาลัยก่อนออกสู่อินเทอร์เน็ต&lt;br /&gt;
&lt;br /&gt;
เนื่องจากการเชื่อมต่อ VPN ทำให้เสมือนว่าใช้งานเครือข่ายของมหาวิทยาลัย จึงทำให้เข้าถึงทรัพยากรต่างๆ ที่จำกัดให้ใช้งานได้จากภายในมหาวิทยาลัยเท่านั้น เช่น ฐานข้อมูลงานวิจัย บทความต่างๆ ของสำนักหอสมุด ระบบการเรียนการสอนออนไลน์ ได้จากที่ไหนก็ได้ โดยการเชื่อมต่อ VPN จะต้องยืนยันตัวตนโดยบัญชีผู้ใช้ไอทีของมหาวิทยาเชียงใหม่ก่อนเชื่อมต่อทุกครั้ง&lt;br /&gt;
&lt;br /&gt;
== ข้อควรทราบ ==&lt;br /&gt;
กรณีที่ใช้งานเครือข่ายภายในมหาวิทยาลัยอยู่แล้ว เช่น เครือข่ายภายในคณะ เครือข่ายไร้สายมหาวิทยาลัยเชียงใหม่ Jumbo Net ท่านไม่จำเป็นต้องเชื่อมต่อ GlobalProtect เพื่อใช้งาน Internet เนื่องจากออกเส้นทางเดียวกันอยู่แล้ว และจะเป็นการเพิ่มภาระให้กับ GlobalProtect server โดยไม่จำเป็น &amp;lt;FONT COLOR=red&amp;gt;&amp;#039;&amp;#039;&amp;#039;จึงได้ทำการปิดกั้นการเชื่อมต่อ GlobalProtect จากเครือข่ายภายในมหาวิทยาลัย&amp;#039;&amp;#039;&amp;#039;&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ข้อตกลงการใช้งาน ==&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ ใช้เพื่อการศึกษาค้นคว้า ในทางที่เป็นประโยชน์เท่านั้น&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ จะถูกบันทึกการใช้งานไว้ตามกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550&lt;br /&gt;
# ในกรณีที่พบว่ามีการใช้งานที่เกิดผลกระทบต่อระบบหรือการใช้งานของผู้ใช้งานอื่น ผู้ดูแลระบบสามารถยุติหรือยกเลิกการใช้งานของผู้ใช้นั้นได้ทันทีโดยไม่ต้องแจ้งให้ทราบล่วงหน้า&lt;br /&gt;
# การใช้งานที่ละเมิดต่อกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550 เจ้าของบัญชีผู้ใช้ที่ละเมิดกฎหมาย จะต้องถูกดำเนินคดีตามกฎหมาย ไม่ว่าจะให้ใครใช้บัญชีผู้ใช้ก็ตาม ดังนั้นผู้ใช้ต้องใช้บัญชีผู้ใช้เป็นการส่วนตัว ไม่แจกจ่ายให้ผู้อื่น เนื่องด้วยเจ้าของบัญชีต้องรับผิดชอบผลอันเกิดจากการใช้บัญชีผู้ใช้แต่เพียงผู้เดียว&lt;br /&gt;
# การใช้งานผ่านระบบเครือข่ายงานวิจัยนี้ จะใช้งานได้เฉพาะเว็บไซต์ที่ทางมหาวิทยาลัยอนุญาตเท่านั้น เพื่อไม่ให้นำทรัพยากรของทางมหาวิทยาลัยไปใช้ในทางที่ไม่ก่อให้เกิดประโยชน์&lt;br /&gt;
# การเข้าสู่ระบบ GlobalProtect VPN ด้วยบัญชี้ผู้ใช้มหาวิทยาลัยเชียงใหม่ถือว่าเป็นการยอมรับข้อตกลงการใช้งานนี้โดยปริยาย&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; แล้วเลือก &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32-bit หรือ 64-bit เพื่อจะได้เลือก Download file ได้ถูกต้อง &amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
กรณีบนหน้า Desktop ไม่มี &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; ให้คลิกช่องค้นหาที่ Taskbar แล้วพิมพ์ค้นหา &amp;#039;&amp;#039;&amp;#039;About your PC&amp;#039;&amp;#039;&amp;#039;  &amp;lt;br/&amp;gt; &lt;br /&gt;
[[File:Aboutpc.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Windows spec.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว Login ด้วย CMU Account หรือ CMU Guest Account เพื่อ Download file สำหรับติดตั้ง จากนั้นคลิกขวาที่ File GlobalProtect.msi (หรือ Double Click) เลือกคำสั่ง &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 01.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gb win 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Welcome to GlobalProtect Setup Wizard&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Select Insatallation Folder&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 04.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Confirm Installation&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งขึ้นว่า &amp;#039;&amp;#039;&amp;#039;Installation Complete&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb win 05.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 06.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;Icon GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ &amp;#039;&amp;#039;&amp;#039;Get Started&amp;#039;&amp;#039;&amp;#039; พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 13.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;[[File:Gb win 08.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gplogin.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gpcompletepopup.png|500px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก I&amp;#039;&amp;#039;con GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 11.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# หากต้องการออกจากระบบ ให้เข้าไปทำการ &amp;#039;&amp;#039;Logout&amp;#039;&amp;#039; ที่ https://mail.cmu.ac.th &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ MacOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;CMU Guest Account&amp;#039;&amp;#039; เพื่อ download file สำหรับติดตั้ง &amp;lt;br/&amp;gt; [[File:Gb mac 01.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จากนั้น &amp;#039;&amp;#039;double click&amp;#039;&amp;#039; ที่ &amp;#039;&amp;#039;&amp;#039;GlobalProtect.pkg&amp;#039;&amp;#039;&amp;#039; เพื่อเริ่มการติดตั้งโปรแกรม &amp;lt;br/&amp;gt; [[File:Gb mac 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Introduction&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Destination Select&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 03.png|link=|alt=|615x615px]][[File:Gb mac 04.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Installation Type&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb mac 05.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ใส่ Password ประจำเครื่อง กด &amp;#039;&amp;#039;&amp;#039;Install software&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งการติดตั้งสำเร็จ กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 06.png|link=|alt=|615x615px]] &amp;amp;nbsp; [[File:Gb mac 07.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ Get Started กรอก Portal Address เป็น &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac01.png|300px|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web Browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpmac02.png|615x615px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open GlobalProtect&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac03.png|615x615px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;System Extension Blocked&amp;#039;&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;&amp;#039;Open Security Preferences&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb mac 10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; ให้กดที่สัญลักษณ์แม่กุญแจด้านล่างเพื่อปลดล็อค จากนั้นใส่รหัสผ่านของเครื่องและกด &amp;#039;&amp;#039;&amp;#039;Unlock&amp;#039;&amp;#039;&amp;#039; ตามรูป &amp;lt;br/&amp;gt;[[File:Gb mac 11.png|link=|alt=|615x615px]]&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 12.png|link=|alt=|615x615px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; ทั้ง 2 ครั้งดังรูป จากนั้นกดที่สัญลักษณ์แม่กุญแจเพื่อให้ล็อค &amp;lt;br/&amp;gt;[[File:Gb mac 13.png|link=|alt=|615x615px]] &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 14.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ Icon GlobalProtect บนเมนูบาร์ จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Screen Shot 2564-05-20 at 15.41.30.png|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ IOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;App Store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt; [[File:Gpios06.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios01.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios02.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios03.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios04.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;[[File:Gpios05.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Android ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;Play Store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt; [[File:Gp and 01.jpg|556x556px|link=|alt=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gp and 02.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;อนุญาต&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gp and 03.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gp and 04.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gp and 05.jpg|556x556px|link=|alt=|border]]          [[File:Gp and 06.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;ตกลง&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gp and 08.jpg|556x556px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;[[File:Gp and 10.jpg|556x556px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== สำหรับ Guest Account ==&lt;br /&gt;
*[[CMU GlobalProtect for Guest Account| GlobalProtect for Guest Account]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_for_Guest_Account&amp;diff=4864</id>
		<title>CMU GlobalProtect for Guest Account</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_for_Guest_Account&amp;diff=4864"/>
		<updated>2024-10-11T05:25:59Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การใช้งานบนระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; แล้วเลือก &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32  bit หรือ 64 bit เพื่อจะได้เลือก download file ได้ถูกต้อง&amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=|alt=|550x550px]] &amp;lt;br/&amp;gt;&lt;br /&gt;
กรณีบนหน้า Desktop ไม่มี &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; ให้คลิกช่องค้นหาที่ Taskbar แล้วพิมพ์ค้นหา &amp;#039;&amp;#039;&amp;#039;About your PC&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; &lt;br /&gt;
[[File:Aboutpc.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Windows spec.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว Login ด้วย CMU Account หรือ CMU Guest Account เพื่อ Download file สำหรับติดตั้ง จากนั้นคลิกขวาที่ File GlobalProtect.msi (หรือ Double Click) เลือกคำสั่ง &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gb win 01.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gb win 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Welcome to GlobalProtect Setup Wizard&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Select Insatallation Folder&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gb win 03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 04.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Confirm Installation&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งขึ้นว่า &amp;#039;&amp;#039;&amp;#039;Installation Complete&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gb win 05.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 06.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อสำหรับ Guest Account ===&lt;br /&gt;
# คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก I&amp;#039;&amp;#039;con GlobalProtect&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gb win 07.png|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ &amp;#039;&amp;#039;&amp;#039;Get Started&amp;#039;&amp;#039;&amp;#039; พิมพ์ &amp;#039;&amp;#039;&amp;#039;guest-vpn.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestwin01.png|link=|alt=|border|392x392px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;Username&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestwin02.png|link=|alt=|border|425x425px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;icon GlobalProtect&amp;#039;&amp;#039; กดปุ่มมุมบนขวา จากนั้นเลือก &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gb win 07.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gpguestwin03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gpguestwin04.png|link=|alt=|border|352x352px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ MacOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;CMU Guest Account&amp;#039;&amp;#039; เพื่อ Download file สำหรับติดตั้ง&amp;lt;br/&amp;gt;[[File:Gb mac 01.png|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จากนั้น D&amp;#039;&amp;#039;ouble click&amp;#039;&amp;#039; ที่ &amp;#039;&amp;#039;&amp;#039;GlobalProtect.pkg&amp;#039;&amp;#039;&amp;#039; เพื่อเริ่มการติดตั้งโปรแกรม&amp;lt;br/&amp;gt;[[File:Gb mac 02.png|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Introduction&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Destination Select&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gb mac 03.png|link=|alt=|border|615x615px]][[File:Gb mac 04.png|link=|alt=|border|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Installation Type&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb mac 05.png|link=|alt=|border|615x615px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ใส่ Password ประจำเครื่อง กด &amp;#039;&amp;#039;&amp;#039;Install software&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งการติดตั้งสำเร็จ กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 06.png|link=|alt=|border|615x615px]] &amp;amp;nbsp; [[File:Gb mac 07.png|link=|alt=|border|615x615px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อสำหรับ Guest Account ===&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ Get Startedกรอก Portal Address เป็น &amp;#039;&amp;#039;&amp;#039;guest-vpn.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestmac01.png|300px|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;Username&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestmac02.png|300px|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;System Extension Blocked&amp;#039;&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;&amp;#039;Open Security Preferences&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gb mac 10.png|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; ให้กดที่สัญลักษณ์แม่กุญแจด้านล่างเพื่อปลดล็อค จากนั้น ใส่รหัสผ่านของเครื่อง และกด &amp;#039;&amp;#039;&amp;#039;Unlock&amp;#039;&amp;#039;&amp;#039; ตามรูป&amp;lt;br/&amp;gt;[[File:Gb mac 11.png|link=|alt=|border|665x665px]] &amp;amp;nbsp; [[File:Gb mac 12.png|link=|alt=|border|665x665px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; ทั้ง 2 ครั้งดังรูป จากนั้นกดที่สัญลักษณ์แม่กุญแจเพื่อให้ล็อค&amp;lt;br/&amp;gt;[[File:Gb mac 13.png|link=|alt=|border|665x665px]] &amp;amp;nbsp; [[File:Gb mac 14.png|link=|alt=|border|665x665px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ Icon GlobalProtect บนเมนูบาร์ กดปุ่มมุมบนขวา จากนั้นเลือก &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestmac03.png|300px|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ IOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;App Store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง&amp;lt;br/&amp;gt;[[File:Gpios06.png|541x541px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อสำหรับ Guest Account ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpios01.png|541x541px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;guest-vpn.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestios01.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestios02.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;Username&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Sign in&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestios03.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดปุ่มมุมบนซ้าย เลือก &amp;#039;&amp;#039;&amp;#039;Sign out&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestios04.png|541x541px|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gpguestios05.png|541x541px|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gpguestios06.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Android ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;Play store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง&amp;lt;br/&amp;gt;[[File:Gp and 01.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อสำหรับ Guest Account ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestand01.png|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;อนุญาต&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestand02.png|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;guest-vpn.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestand03.png|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;Username&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Sign in&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpguestand04.png|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดปุ่มมุมบนซ้าย จากนั้นเลือก &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gpguestand05.png|556x556px|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gpguestand06.png|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4863</id>
		<title>CMU GlobalProtect VPN</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4863"/>
		<updated>2024-10-11T05:12:49Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การใช้งานบนระบบปฏิบัติการ Android */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== บทนำ ==&lt;br /&gt;
[[File:VPN.gif|link=]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN (Virtual Private Network)&amp;#039;&amp;#039;&amp;#039; หรือ &amp;quot;เครือข่ายส่วนตัวเสมือน&amp;quot; ใช้เทคนิคการทำ tunneling วิ่งบนเครือข่ายอินเทอร์เน็ตทำให้ไม่ว่าจะอยู่ที่ใดก็เสมือนว่ายังใช้งานเครือข่ายของมหาวิทยาลัยอยู่ หลังจากเชื่อมต่อ VPN แล้ว ข้อมูลจราจรทั้งหมดจะวิ่งมายังเครือข่ายภายในมหาวิทยาลัยก่อนออกสู่อินเทอร์เน็ต&lt;br /&gt;
&lt;br /&gt;
เนื่องจากการเชื่อมต่อ VPN ทำให้เสมือนว่าใช้งานเครือข่ายของมหาวิทยาลัย จึงทำให้เข้าถึงทรัพยากรต่างๆ ที่จำกัดให้ใช้งานได้จากภายในมหาวิทยาลัยเท่านั้น เช่น ฐานข้อมูลงานวิจัย บทความต่างๆ ของสำนักหอสมุด ระบบการเรียนการสอนออนไลน์ ได้จากที่ไหนก็ได้ โดยการเชื่อมต่อ VPN จะต้องยืนยันตัวตนโดยบัญชีผู้ใช้ไอทีของมหาวิทยาเชียงใหม่ก่อนเชื่อมต่อทุกครั้ง&lt;br /&gt;
&lt;br /&gt;
== ข้อควรทราบ ==&lt;br /&gt;
กรณีที่ใช้งานเครือข่ายภายในมหาวิทยาลัยอยู่แล้ว เช่น เครือข่ายภายในคณะ เครือข่ายไร้สายมหาวิทยาลัยเชียงใหม่ Jumbo Net ท่านไม่จำเป็นต้องเชื่อมต่อ GlobalProtect เพื่อใช้งาน Internet เนื่องจากออกเส้นทางเดียวกันอยู่แล้ว และจะเป็นการเพิ่มภาระให้กับ GlobalProtect server โดยไม่จำเป็น &amp;lt;FONT COLOR=red&amp;gt;&amp;#039;&amp;#039;&amp;#039;จึงได้ทำการปิดกั้นการเชื่อมต่อ GlobalProtect จากเครือข่ายภายในมหาวิทยาลัย&amp;#039;&amp;#039;&amp;#039;&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ข้อตกลงการใช้งาน ==&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ ใช้เพื่อการศึกษาค้นคว้า ในทางที่เป็นประโยชน์เท่านั้น&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ จะถูกบันทึกการใช้งานไว้ตามกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550&lt;br /&gt;
# ในกรณีที่พบว่ามีการใช้งานที่เกิดผลกระทบต่อระบบหรือการใช้งานของผู้ใช้งานอื่น ผู้ดูแลระบบสามารถยุติหรือยกเลิกการใช้งานของผู้ใช้นั้นได้ทันทีโดยไม่ต้องแจ้งให้ทราบล่วงหน้า&lt;br /&gt;
# การใช้งานที่ละเมิดต่อกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550 เจ้าของบัญชีผู้ใช้ที่ละเมิดกฎหมาย จะต้องถูกดำเนินคดีตามกฎหมาย ไม่ว่าจะให้ใครใช้บัญชีผู้ใช้ก็ตาม ดังนั้นผู้ใช้ต้องใช้บัญชีผู้ใช้เป็นการส่วนตัว ไม่แจกจ่ายให้ผู้อื่น เนื่องด้วยเจ้าของบัญชีต้องรับผิดชอบผลอันเกิดจากการใช้บัญชีผู้ใช้แต่เพียงผู้เดียว&lt;br /&gt;
# การใช้งานผ่านระบบเครือข่ายงานวิจัยนี้ จะใช้งานได้เฉพาะเว็บไซต์ที่ทางมหาวิทยาลัยอนุญาตเท่านั้น เพื่อไม่ให้นำทรัพยากรของทางมหาวิทยาลัยไปใช้ในทางที่ไม่ก่อให้เกิดประโยชน์&lt;br /&gt;
# การเข้าสู่ระบบ GlobalProtect VPN ด้วยบัญชี้ผู้ใช้มหาวิทยาลัยเชียงใหม่ถือว่าเป็นการยอมรับข้อตกลงการใช้งานนี้โดยปริยาย&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; แล้วเลือก &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32-bit หรือ 64-bit เพื่อจะได้เลือก Download file ได้ถูกต้อง &amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
กรณีบนหน้า Desktop ไม่มี &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; ให้คลิกช่องค้นหาที่ Taskbar แล้วพิมพ์ค้นหา &amp;#039;&amp;#039;&amp;#039;About your PC&amp;#039;&amp;#039;&amp;#039;  &amp;lt;br/&amp;gt; &lt;br /&gt;
[[File:Aboutpc.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Windows spec.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว Login ด้วย CMU Account หรือ CMU Guest Account เพื่อ Download file สำหรับติดตั้ง จากนั้นคลิกขวาที่ File GlobalProtect.msi (หรือ Double Click) เลือกคำสั่ง &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 01.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gb win 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Welcome to GlobalProtect Setup Wizard&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Select Insatallation Folder&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 04.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Confirm Installation&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งขึ้นว่า &amp;#039;&amp;#039;&amp;#039;Installation Complete&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb win 05.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 06.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;Icon GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ &amp;#039;&amp;#039;&amp;#039;Get Started&amp;#039;&amp;#039;&amp;#039; พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 13.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;[[File:Gb win 08.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gplogin.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gpcompletepopup.png|500px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;icon GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 11.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# หากต้องการออกจากระบบ ให้เข้าไปทำการ &amp;#039;&amp;#039;Logout&amp;#039;&amp;#039; ที่ https://mail.cmu.ac.th &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ MacOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;CMU Guest Account&amp;#039;&amp;#039; เพื่อ download file สำหรับติดตั้ง &amp;lt;br/&amp;gt; [[File:Gb mac 01.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จากนั้น &amp;#039;&amp;#039;double click&amp;#039;&amp;#039; ที่ &amp;#039;&amp;#039;&amp;#039;GlobalProtect.pkg&amp;#039;&amp;#039;&amp;#039; เพื่อเริ่มการติดตั้งโปรแกรม &amp;lt;br/&amp;gt; [[File:Gb mac 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Introduction&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Destination Select&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 03.png|link=|alt=|615x615px]][[File:Gb mac 04.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Installation Type&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb mac 05.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ใส่ Password ประจำเครื่อง กด &amp;#039;&amp;#039;&amp;#039;Install software&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งการติดตั้งสำเร็จ กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 06.png|link=|alt=|615x615px]] &amp;amp;nbsp; [[File:Gb mac 07.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ Get Started กรอก Portal Address เป็น &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac01.png|300px|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web Browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpmac02.png|615x615px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open GlobalProtect&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac03.png|615x615px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;System Extension Blocked&amp;#039;&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;&amp;#039;Open Security Preferences&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb mac 10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; ให้กดที่สัญลักษณ์แม่กุญแจด้านล่างเพื่อปลดล็อค จากนั้นใส่รหัสผ่านของเครื่องและกด &amp;#039;&amp;#039;&amp;#039;Unlock&amp;#039;&amp;#039;&amp;#039; ตามรูป &amp;lt;br/&amp;gt;[[File:Gb mac 11.png|link=|alt=|615x615px]]&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 12.png|link=|alt=|615x615px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; ทั้ง 2 ครั้งดังรูป จากนั้นกดที่สัญลักษณ์แม่กุญแจเพื่อให้ล็อค &amp;lt;br/&amp;gt;[[File:Gb mac 13.png|link=|alt=|615x615px]] &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 14.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ Icon GlobalProtect บนเมนูบาร์ จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Screen Shot 2564-05-20 at 15.41.30.png|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ IOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;App Store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt; [[File:Gpios06.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios01.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios02.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios03.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios04.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;[[File:Gpios05.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Android ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;Play Store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt; [[File:Gp and 01.jpg|556x556px|link=|alt=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gp and 02.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;อนุญาต&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gp and 03.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gp and 04.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;[[File:Gp and 05.jpg|556x556px|link=|alt=|border]]          [[File:Gp and 06.jpg|556x556px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;ตกลง&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gp and 08.jpg|556x556px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;[[File:Gp and 10.jpg|556x556px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== สำหรับ Guest Account ==&lt;br /&gt;
*[[CMU GlobalProtect for Guest Account| GlobalProtect for Guest Account]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4862</id>
		<title>CMU GlobalProtect VPN</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4862"/>
		<updated>2024-10-11T05:10:33Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การใช้งานบนระบบปฏิบัติการ IOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== บทนำ ==&lt;br /&gt;
[[File:VPN.gif|link=]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN (Virtual Private Network)&amp;#039;&amp;#039;&amp;#039; หรือ &amp;quot;เครือข่ายส่วนตัวเสมือน&amp;quot; ใช้เทคนิคการทำ tunneling วิ่งบนเครือข่ายอินเทอร์เน็ตทำให้ไม่ว่าจะอยู่ที่ใดก็เสมือนว่ายังใช้งานเครือข่ายของมหาวิทยาลัยอยู่ หลังจากเชื่อมต่อ VPN แล้ว ข้อมูลจราจรทั้งหมดจะวิ่งมายังเครือข่ายภายในมหาวิทยาลัยก่อนออกสู่อินเทอร์เน็ต&lt;br /&gt;
&lt;br /&gt;
เนื่องจากการเชื่อมต่อ VPN ทำให้เสมือนว่าใช้งานเครือข่ายของมหาวิทยาลัย จึงทำให้เข้าถึงทรัพยากรต่างๆ ที่จำกัดให้ใช้งานได้จากภายในมหาวิทยาลัยเท่านั้น เช่น ฐานข้อมูลงานวิจัย บทความต่างๆ ของสำนักหอสมุด ระบบการเรียนการสอนออนไลน์ ได้จากที่ไหนก็ได้ โดยการเชื่อมต่อ VPN จะต้องยืนยันตัวตนโดยบัญชีผู้ใช้ไอทีของมหาวิทยาเชียงใหม่ก่อนเชื่อมต่อทุกครั้ง&lt;br /&gt;
&lt;br /&gt;
== ข้อควรทราบ ==&lt;br /&gt;
กรณีที่ใช้งานเครือข่ายภายในมหาวิทยาลัยอยู่แล้ว เช่น เครือข่ายภายในคณะ เครือข่ายไร้สายมหาวิทยาลัยเชียงใหม่ Jumbo Net ท่านไม่จำเป็นต้องเชื่อมต่อ GlobalProtect เพื่อใช้งาน Internet เนื่องจากออกเส้นทางเดียวกันอยู่แล้ว และจะเป็นการเพิ่มภาระให้กับ GlobalProtect server โดยไม่จำเป็น &amp;lt;FONT COLOR=red&amp;gt;&amp;#039;&amp;#039;&amp;#039;จึงได้ทำการปิดกั้นการเชื่อมต่อ GlobalProtect จากเครือข่ายภายในมหาวิทยาลัย&amp;#039;&amp;#039;&amp;#039;&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ข้อตกลงการใช้งาน ==&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ ใช้เพื่อการศึกษาค้นคว้า ในทางที่เป็นประโยชน์เท่านั้น&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ จะถูกบันทึกการใช้งานไว้ตามกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550&lt;br /&gt;
# ในกรณีที่พบว่ามีการใช้งานที่เกิดผลกระทบต่อระบบหรือการใช้งานของผู้ใช้งานอื่น ผู้ดูแลระบบสามารถยุติหรือยกเลิกการใช้งานของผู้ใช้นั้นได้ทันทีโดยไม่ต้องแจ้งให้ทราบล่วงหน้า&lt;br /&gt;
# การใช้งานที่ละเมิดต่อกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550 เจ้าของบัญชีผู้ใช้ที่ละเมิดกฎหมาย จะต้องถูกดำเนินคดีตามกฎหมาย ไม่ว่าจะให้ใครใช้บัญชีผู้ใช้ก็ตาม ดังนั้นผู้ใช้ต้องใช้บัญชีผู้ใช้เป็นการส่วนตัว ไม่แจกจ่ายให้ผู้อื่น เนื่องด้วยเจ้าของบัญชีต้องรับผิดชอบผลอันเกิดจากการใช้บัญชีผู้ใช้แต่เพียงผู้เดียว&lt;br /&gt;
# การใช้งานผ่านระบบเครือข่ายงานวิจัยนี้ จะใช้งานได้เฉพาะเว็บไซต์ที่ทางมหาวิทยาลัยอนุญาตเท่านั้น เพื่อไม่ให้นำทรัพยากรของทางมหาวิทยาลัยไปใช้ในทางที่ไม่ก่อให้เกิดประโยชน์&lt;br /&gt;
# การเข้าสู่ระบบ GlobalProtect VPN ด้วยบัญชี้ผู้ใช้มหาวิทยาลัยเชียงใหม่ถือว่าเป็นการยอมรับข้อตกลงการใช้งานนี้โดยปริยาย&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; แล้วเลือก &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32-bit หรือ 64-bit เพื่อจะได้เลือก Download file ได้ถูกต้อง &amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
กรณีบนหน้า Desktop ไม่มี &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; ให้คลิกช่องค้นหาที่ Taskbar แล้วพิมพ์ค้นหา &amp;#039;&amp;#039;&amp;#039;About your PC&amp;#039;&amp;#039;&amp;#039;  &amp;lt;br/&amp;gt; &lt;br /&gt;
[[File:Aboutpc.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Windows spec.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว Login ด้วย CMU Account หรือ CMU Guest Account เพื่อ Download file สำหรับติดตั้ง จากนั้นคลิกขวาที่ File GlobalProtect.msi (หรือ Double Click) เลือกคำสั่ง &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 01.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gb win 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Welcome to GlobalProtect Setup Wizard&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Select Insatallation Folder&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 04.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Confirm Installation&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งขึ้นว่า &amp;#039;&amp;#039;&amp;#039;Installation Complete&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb win 05.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 06.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;Icon GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ &amp;#039;&amp;#039;&amp;#039;Get Started&amp;#039;&amp;#039;&amp;#039; พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 13.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;[[File:Gb win 08.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gplogin.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gpcompletepopup.png|500px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;icon GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 11.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# หากต้องการออกจากระบบ ให้เข้าไปทำการ &amp;#039;&amp;#039;Logout&amp;#039;&amp;#039; ที่ https://mail.cmu.ac.th &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ MacOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;CMU Guest Account&amp;#039;&amp;#039; เพื่อ download file สำหรับติดตั้ง &amp;lt;br/&amp;gt; [[File:Gb mac 01.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จากนั้น &amp;#039;&amp;#039;double click&amp;#039;&amp;#039; ที่ &amp;#039;&amp;#039;&amp;#039;GlobalProtect.pkg&amp;#039;&amp;#039;&amp;#039; เพื่อเริ่มการติดตั้งโปรแกรม &amp;lt;br/&amp;gt; [[File:Gb mac 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Introduction&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Destination Select&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 03.png|link=|alt=|615x615px]][[File:Gb mac 04.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Installation Type&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb mac 05.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ใส่ Password ประจำเครื่อง กด &amp;#039;&amp;#039;&amp;#039;Install software&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งการติดตั้งสำเร็จ กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 06.png|link=|alt=|615x615px]] &amp;amp;nbsp; [[File:Gb mac 07.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ Get Started กรอก Portal Address เป็น &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac01.png|300px|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web Browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpmac02.png|615x615px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open GlobalProtect&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac03.png|615x615px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;System Extension Blocked&amp;#039;&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;&amp;#039;Open Security Preferences&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb mac 10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; ให้กดที่สัญลักษณ์แม่กุญแจด้านล่างเพื่อปลดล็อค จากนั้นใส่รหัสผ่านของเครื่องและกด &amp;#039;&amp;#039;&amp;#039;Unlock&amp;#039;&amp;#039;&amp;#039; ตามรูป &amp;lt;br/&amp;gt;[[File:Gb mac 11.png|link=|alt=|615x615px]]&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 12.png|link=|alt=|615x615px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; ทั้ง 2 ครั้งดังรูป จากนั้นกดที่สัญลักษณ์แม่กุญแจเพื่อให้ล็อค &amp;lt;br/&amp;gt;[[File:Gb mac 13.png|link=|alt=|615x615px]] &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 14.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ Icon GlobalProtect บนเมนูบาร์ จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Screen Shot 2564-05-20 at 15.41.30.png|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ IOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;App Store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt; [[File:Gpios06.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios01.png|541x541px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios02.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios03.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpios04.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;[[File:Gpios05.png|541x541px|link=|alt=|border]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Android ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;Play store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 01.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 02.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;อนุญาต&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 03.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 04.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 05.jpg|200px|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gp and 06.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;ตกลง&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 08.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 10.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== สำหรับ Guest Account ==&lt;br /&gt;
*[[CMU GlobalProtect for Guest Account| GlobalProtect for Guest Account]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4861</id>
		<title>CMU GlobalProtect VPN</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4861"/>
		<updated>2024-10-11T05:06:53Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การใช้งานบนระบบปฏิบัติการ MacOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== บทนำ ==&lt;br /&gt;
[[File:VPN.gif|link=]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN (Virtual Private Network)&amp;#039;&amp;#039;&amp;#039; หรือ &amp;quot;เครือข่ายส่วนตัวเสมือน&amp;quot; ใช้เทคนิคการทำ tunneling วิ่งบนเครือข่ายอินเทอร์เน็ตทำให้ไม่ว่าจะอยู่ที่ใดก็เสมือนว่ายังใช้งานเครือข่ายของมหาวิทยาลัยอยู่ หลังจากเชื่อมต่อ VPN แล้ว ข้อมูลจราจรทั้งหมดจะวิ่งมายังเครือข่ายภายในมหาวิทยาลัยก่อนออกสู่อินเทอร์เน็ต&lt;br /&gt;
&lt;br /&gt;
เนื่องจากการเชื่อมต่อ VPN ทำให้เสมือนว่าใช้งานเครือข่ายของมหาวิทยาลัย จึงทำให้เข้าถึงทรัพยากรต่างๆ ที่จำกัดให้ใช้งานได้จากภายในมหาวิทยาลัยเท่านั้น เช่น ฐานข้อมูลงานวิจัย บทความต่างๆ ของสำนักหอสมุด ระบบการเรียนการสอนออนไลน์ ได้จากที่ไหนก็ได้ โดยการเชื่อมต่อ VPN จะต้องยืนยันตัวตนโดยบัญชีผู้ใช้ไอทีของมหาวิทยาเชียงใหม่ก่อนเชื่อมต่อทุกครั้ง&lt;br /&gt;
&lt;br /&gt;
== ข้อควรทราบ ==&lt;br /&gt;
กรณีที่ใช้งานเครือข่ายภายในมหาวิทยาลัยอยู่แล้ว เช่น เครือข่ายภายในคณะ เครือข่ายไร้สายมหาวิทยาลัยเชียงใหม่ Jumbo Net ท่านไม่จำเป็นต้องเชื่อมต่อ GlobalProtect เพื่อใช้งาน Internet เนื่องจากออกเส้นทางเดียวกันอยู่แล้ว และจะเป็นการเพิ่มภาระให้กับ GlobalProtect server โดยไม่จำเป็น &amp;lt;FONT COLOR=red&amp;gt;&amp;#039;&amp;#039;&amp;#039;จึงได้ทำการปิดกั้นการเชื่อมต่อ GlobalProtect จากเครือข่ายภายในมหาวิทยาลัย&amp;#039;&amp;#039;&amp;#039;&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ข้อตกลงการใช้งาน ==&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ ใช้เพื่อการศึกษาค้นคว้า ในทางที่เป็นประโยชน์เท่านั้น&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ จะถูกบันทึกการใช้งานไว้ตามกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550&lt;br /&gt;
# ในกรณีที่พบว่ามีการใช้งานที่เกิดผลกระทบต่อระบบหรือการใช้งานของผู้ใช้งานอื่น ผู้ดูแลระบบสามารถยุติหรือยกเลิกการใช้งานของผู้ใช้นั้นได้ทันทีโดยไม่ต้องแจ้งให้ทราบล่วงหน้า&lt;br /&gt;
# การใช้งานที่ละเมิดต่อกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550 เจ้าของบัญชีผู้ใช้ที่ละเมิดกฎหมาย จะต้องถูกดำเนินคดีตามกฎหมาย ไม่ว่าจะให้ใครใช้บัญชีผู้ใช้ก็ตาม ดังนั้นผู้ใช้ต้องใช้บัญชีผู้ใช้เป็นการส่วนตัว ไม่แจกจ่ายให้ผู้อื่น เนื่องด้วยเจ้าของบัญชีต้องรับผิดชอบผลอันเกิดจากการใช้บัญชีผู้ใช้แต่เพียงผู้เดียว&lt;br /&gt;
# การใช้งานผ่านระบบเครือข่ายงานวิจัยนี้ จะใช้งานได้เฉพาะเว็บไซต์ที่ทางมหาวิทยาลัยอนุญาตเท่านั้น เพื่อไม่ให้นำทรัพยากรของทางมหาวิทยาลัยไปใช้ในทางที่ไม่ก่อให้เกิดประโยชน์&lt;br /&gt;
# การเข้าสู่ระบบ GlobalProtect VPN ด้วยบัญชี้ผู้ใช้มหาวิทยาลัยเชียงใหม่ถือว่าเป็นการยอมรับข้อตกลงการใช้งานนี้โดยปริยาย&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; แล้วเลือก &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32-bit หรือ 64-bit เพื่อจะได้เลือก Download file ได้ถูกต้อง &amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
กรณีบนหน้า Desktop ไม่มี &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; ให้คลิกช่องค้นหาที่ Taskbar แล้วพิมพ์ค้นหา &amp;#039;&amp;#039;&amp;#039;About your PC&amp;#039;&amp;#039;&amp;#039;  &amp;lt;br/&amp;gt; &lt;br /&gt;
[[File:Aboutpc.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Windows spec.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว Login ด้วย CMU Account หรือ CMU Guest Account เพื่อ Download file สำหรับติดตั้ง จากนั้นคลิกขวาที่ File GlobalProtect.msi (หรือ Double Click) เลือกคำสั่ง &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 01.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gb win 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Welcome to GlobalProtect Setup Wizard&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Select Insatallation Folder&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 04.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Confirm Installation&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งขึ้นว่า &amp;#039;&amp;#039;&amp;#039;Installation Complete&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb win 05.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 06.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;Icon GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ &amp;#039;&amp;#039;&amp;#039;Get Started&amp;#039;&amp;#039;&amp;#039; พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 13.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;[[File:Gb win 08.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gplogin.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gpcompletepopup.png|500px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;icon GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 11.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# หากต้องการออกจากระบบ ให้เข้าไปทำการ &amp;#039;&amp;#039;Logout&amp;#039;&amp;#039; ที่ https://mail.cmu.ac.th &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ MacOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;CMU Guest Account&amp;#039;&amp;#039; เพื่อ download file สำหรับติดตั้ง &amp;lt;br/&amp;gt; [[File:Gb mac 01.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จากนั้น &amp;#039;&amp;#039;double click&amp;#039;&amp;#039; ที่ &amp;#039;&amp;#039;&amp;#039;GlobalProtect.pkg&amp;#039;&amp;#039;&amp;#039; เพื่อเริ่มการติดตั้งโปรแกรม &amp;lt;br/&amp;gt; [[File:Gb mac 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Introduction&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Destination Select&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 03.png|link=|alt=|615x615px]][[File:Gb mac 04.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Installation Type&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb mac 05.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ใส่ Password ประจำเครื่อง กด &amp;#039;&amp;#039;&amp;#039;Install software&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งการติดตั้งสำเร็จ กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gb mac 06.png|link=|alt=|615x615px]] &amp;amp;nbsp; [[File:Gb mac 07.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ Get Started กรอก Portal Address เป็น &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac01.png|300px|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web Browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Gpmac02.png|615x615px|link=|alt=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open GlobalProtect&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gpmac03.png|615x615px|link=|alt=|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;System Extension Blocked&amp;#039;&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;&amp;#039;Open Security Preferences&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb mac 10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; ให้กดที่สัญลักษณ์แม่กุญแจด้านล่างเพื่อปลดล็อค จากนั้นใส่รหัสผ่านของเครื่องและกด &amp;#039;&amp;#039;&amp;#039;Unlock&amp;#039;&amp;#039;&amp;#039; ตามรูป &amp;lt;br/&amp;gt;[[File:Gb mac 11.png|link=|alt=|615x615px]]&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 12.png|link=|alt=|615x615px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; ทั้ง 2 ครั้งดังรูป จากนั้นกดที่สัญลักษณ์แม่กุญแจเพื่อให้ล็อค &amp;lt;br/&amp;gt;[[File:Gb mac 13.png|link=|alt=|615x615px]] &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 14.png|link=|alt=|615x615px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ Icon GlobalProtect บนเมนูบาร์ จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;[[File:Screen Shot 2564-05-20 at 15.41.30.png|link=]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ IOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;App store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios06.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios01.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios02.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios03.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios04.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios05.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Android ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;Play store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 01.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 02.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;อนุญาต&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 03.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 04.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 05.jpg|200px|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gp and 06.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;ตกลง&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 08.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 10.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== สำหรับ Guest Account ==&lt;br /&gt;
*[[CMU GlobalProtect for Guest Account| GlobalProtect for Guest Account]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4860</id>
		<title>CMU GlobalProtect VPN</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=CMU_GlobalProtect_VPN&amp;diff=4860"/>
		<updated>2024-10-11T05:00:16Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== บทนำ ==&lt;br /&gt;
[[File:VPN.gif|link=]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN (Virtual Private Network)&amp;#039;&amp;#039;&amp;#039; หรือ &amp;quot;เครือข่ายส่วนตัวเสมือน&amp;quot; ใช้เทคนิคการทำ tunneling วิ่งบนเครือข่ายอินเทอร์เน็ตทำให้ไม่ว่าจะอยู่ที่ใดก็เสมือนว่ายังใช้งานเครือข่ายของมหาวิทยาลัยอยู่ หลังจากเชื่อมต่อ VPN แล้ว ข้อมูลจราจรทั้งหมดจะวิ่งมายังเครือข่ายภายในมหาวิทยาลัยก่อนออกสู่อินเทอร์เน็ต&lt;br /&gt;
&lt;br /&gt;
เนื่องจากการเชื่อมต่อ VPN ทำให้เสมือนว่าใช้งานเครือข่ายของมหาวิทยาลัย จึงทำให้เข้าถึงทรัพยากรต่างๆ ที่จำกัดให้ใช้งานได้จากภายในมหาวิทยาลัยเท่านั้น เช่น ฐานข้อมูลงานวิจัย บทความต่างๆ ของสำนักหอสมุด ระบบการเรียนการสอนออนไลน์ ได้จากที่ไหนก็ได้ โดยการเชื่อมต่อ VPN จะต้องยืนยันตัวตนโดยบัญชีผู้ใช้ไอทีของมหาวิทยาเชียงใหม่ก่อนเชื่อมต่อทุกครั้ง&lt;br /&gt;
&lt;br /&gt;
== ข้อควรทราบ ==&lt;br /&gt;
กรณีที่ใช้งานเครือข่ายภายในมหาวิทยาลัยอยู่แล้ว เช่น เครือข่ายภายในคณะ เครือข่ายไร้สายมหาวิทยาลัยเชียงใหม่ Jumbo Net ท่านไม่จำเป็นต้องเชื่อมต่อ GlobalProtect เพื่อใช้งาน Internet เนื่องจากออกเส้นทางเดียวกันอยู่แล้ว และจะเป็นการเพิ่มภาระให้กับ GlobalProtect server โดยไม่จำเป็น &amp;lt;FONT COLOR=red&amp;gt;&amp;#039;&amp;#039;&amp;#039;จึงได้ทำการปิดกั้นการเชื่อมต่อ GlobalProtect จากเครือข่ายภายในมหาวิทยาลัย&amp;#039;&amp;#039;&amp;#039;&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ข้อตกลงการใช้งาน ==&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ ใช้เพื่อการศึกษาค้นคว้า ในทางที่เป็นประโยชน์เท่านั้น&lt;br /&gt;
# การใช้งานระบบเครือข่ายงานวิจัยนี้ จะถูกบันทึกการใช้งานไว้ตามกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550&lt;br /&gt;
# ในกรณีที่พบว่ามีการใช้งานที่เกิดผลกระทบต่อระบบหรือการใช้งานของผู้ใช้งานอื่น ผู้ดูแลระบบสามารถยุติหรือยกเลิกการใช้งานของผู้ใช้นั้นได้ทันทีโดยไม่ต้องแจ้งให้ทราบล่วงหน้า&lt;br /&gt;
# การใช้งานที่ละเมิดต่อกฎหมาย พรบ.คอมพิวเตอร์ฯ พ.ศ. 2550 เจ้าของบัญชีผู้ใช้ที่ละเมิดกฎหมาย จะต้องถูกดำเนินคดีตามกฎหมาย ไม่ว่าจะให้ใครใช้บัญชีผู้ใช้ก็ตาม ดังนั้นผู้ใช้ต้องใช้บัญชีผู้ใช้เป็นการส่วนตัว ไม่แจกจ่ายให้ผู้อื่น เนื่องด้วยเจ้าของบัญชีต้องรับผิดชอบผลอันเกิดจากการใช้บัญชีผู้ใช้แต่เพียงผู้เดียว&lt;br /&gt;
# การใช้งานผ่านระบบเครือข่ายงานวิจัยนี้ จะใช้งานได้เฉพาะเว็บไซต์ที่ทางมหาวิทยาลัยอนุญาตเท่านั้น เพื่อไม่ให้นำทรัพยากรของทางมหาวิทยาลัยไปใช้ในทางที่ไม่ก่อให้เกิดประโยชน์&lt;br /&gt;
# การเข้าสู่ระบบ GlobalProtect VPN ด้วยบัญชี้ผู้ใช้มหาวิทยาลัยเชียงใหม่ถือว่าเป็นการยอมรับข้อตกลงการใช้งานนี้โดยปริยาย&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; แล้วเลือก &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32-bit หรือ 64-bit เพื่อจะได้เลือก Download file ได้ถูกต้อง &amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
กรณีบนหน้า Desktop ไม่มี &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; ให้คลิกช่องค้นหาที่ Taskbar แล้วพิมพ์ค้นหา &amp;#039;&amp;#039;&amp;#039;About your PC&amp;#039;&amp;#039;&amp;#039;  &amp;lt;br/&amp;gt; &lt;br /&gt;
[[File:Aboutpc.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Windows spec.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว Login ด้วย CMU Account หรือ CMU Guest Account เพื่อ Download file สำหรับติดตั้ง จากนั้นคลิกขวาที่ File GlobalProtect.msi (หรือ Double Click) เลือกคำสั่ง &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 01.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; [[File:Gb win 02.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Welcome to GlobalProtect Setup Wizard&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Select Insatallation Folder&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 04.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;Confirm Installation&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Next&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งขึ้นว่า &amp;#039;&amp;#039;&amp;#039;Installation Complete&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gb win 05.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 06.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;Icon GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ &amp;#039;&amp;#039;&amp;#039;Get Started&amp;#039;&amp;#039;&amp;#039; พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 13.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;[[File:Gb win 08.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gplogin.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Login&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;lt;br/&amp;gt; [[File:Gpcompletepopup.png|500px|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ &amp;#039;&amp;#039;System tray&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;icon GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; [[File:Gb win 07.png|link=|alt=|border]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb win 11.png|link=|alt=|border]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# หากต้องการออกจากระบบ ให้เข้าไปทำการ &amp;#039;&amp;#039;Logout&amp;#039;&amp;#039; ที่ https://mail.cmu.ac.th &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ MacOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://vpn-gateway.cmu.ac.th แล้ว &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;CMU Guest Account&amp;#039;&amp;#039; เพื่อ download file สำหรับติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 01.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จากนั้น &amp;#039;&amp;#039;double click&amp;#039;&amp;#039; ที่ &amp;#039;&amp;#039;&amp;#039;GlobalProtect.pkg&amp;#039;&amp;#039;&amp;#039; เพื่อเริ่มการติดตั้งโปรแกรม &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 02.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Introduction&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Destination Select&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 03.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 04.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Installation Type&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 05.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ใส่ password ประจำเครื่อง กด &amp;#039;&amp;#039;&amp;#039;Install software&amp;#039;&amp;#039;&amp;#039; รอจนกระทั่งการติดตั้งสำเร็จ กด &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 06.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 07.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# จะพบหน้าต่าง Welcome! กดที่ Get Startedกรอก Portal Address เป็น &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpmac01.png|300px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Web Browser&amp;#039;&amp;#039; จะแสดงขึ้นมา ให้ &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpmac02.png|600px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อทำการ &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; เรียบร้อยแล้วจะเข้าสู่หน้าเว็บของ &amp;#039;&amp;#039;Paloalto&amp;#039;&amp;#039; ให้ทำการคลิก &amp;#039;&amp;#039;&amp;#039;Open GlobalProtect&amp;#039;&amp;#039;&amp;#039; ด้านบนเพื่อกลับเข้าสู่ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpmac03.png|600px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่หน้าต่าง &amp;#039;&amp;#039;&amp;#039;System Extension Blocked&amp;#039;&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;&amp;#039;Open Security Preferences&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; ให้กดที่สัญลักษณ์แม่กุญแจด้านล่างเพื่อปลดล็อค จากนั้น ใส่รหัสผ่านของเครื่อง และกด &amp;#039;&amp;#039;&amp;#039;Unlock&amp;#039;&amp;#039;&amp;#039; ตามรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 11.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 12.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; ทั้ง 2 ครั้งดังรูป จากนั้นกดที่สัญลักษณ์แม่กุญแจเพื่อให้ล็อค &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gb mac 13.png|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gb mac 14.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ คลิกที่ icon GlobalProtect บนเมนูบาร์ จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Disconnect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Screen Shot 2564-05-20 at 15.41.30.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ IOS ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;App store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios06.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios01.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios02.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios03.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios04.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gpios05.png|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== การใช้งานบนระบบปฏิบัติการ Android ==&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# เข้า &amp;#039;&amp;#039;Play store&amp;#039;&amp;#039; แล้วค้นหา &amp;#039;&amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039;&amp;#039; จากนั้นทำการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 01.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การเชื่อมต่อ ===&lt;br /&gt;
# เข้าแอป &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 02.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;อนุญาต&amp;#039;&amp;#039;&amp;#039; เพื่อเปิดการแจ้งเตือนของ &amp;#039;&amp;#039;GlobalProtect&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 03.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์ &amp;#039;&amp;#039;&amp;#039;vpn-gateway.cmu.ac.th&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 04.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;Log in&amp;#039;&amp;#039; ด้วย &amp;#039;&amp;#039;&amp;#039;CMU Account&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 05.jpg|200px|link=]] &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;[[File:Gp and 06.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;ตกลง&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 08.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อต้องการยกเลิกการเชื่อมต่อ กดสัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;รูปโล่&amp;#039;&amp;#039;&amp;#039; ตรงกลาง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Gp and 10.jpg|200px|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== สำหรับ Guest Account ==&lt;br /&gt;
*[[CMU GlobalProtect for Guest Account| GlobalProtect for Guest Account]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=4859</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=4859"/>
		<updated>2024-10-11T04:49:30Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Network Infrastructure and Server Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Services ==&lt;br /&gt;
*[https://jumbo.cmu.ac.th Wireless Network Jumbo-Net]&lt;br /&gt;
*[[CMU OpenVPN | CMU OpenVPN]]&lt;br /&gt;
*[[CMU GlobalProtect VPN| GlobalProtect VPN (Recommend)]]&lt;br /&gt;
*[[CMU Webhosting]]&lt;br /&gt;
*[https://antivirus.cmu.ac.th CMU Antivirus]&lt;br /&gt;
*[[CMU Co-Location | บริการ Co-Location]]&lt;br /&gt;
*[[CMU Private Cloud | บริการ Private Cloud]]&lt;br /&gt;
*[https://hpc.cmu.ac.th/ บริการ HPC: High Performance Computing]&lt;br /&gt;
*[[CMU NTP | บริการเทียบเวลามาตรฐาน NTP]]&lt;br /&gt;
* DNS&lt;br /&gt;
** [[Introduction_to_DNS | ความรู้เบื้องต้นเกี่ยวกับ DNS]]&lt;br /&gt;
**[[CMU caching name server | การให้บริการ dns server สำหรับการใช้งานอินเทอร์เน็ต(caching name server)]]&lt;br /&gt;
**[[Azure_DNS_Zone | การจัดการ DNS Zone บน Azure platform]]&lt;br /&gt;
* [[JumboPlusIoT | @JumboPlusIoT]]&lt;br /&gt;
*[[eduroam Chaing Mai University | eduroam (education roaming)]]&lt;br /&gt;
&lt;br /&gt;
== Network Infrastructure and Server Configuration ==&lt;br /&gt;
*[[Network monitoring | Network Monitoring by Cacti]]&lt;br /&gt;
*[[Wi-Fi_Authentication_Service_version_2019Jan | Wi-Fi Authentication service]]&lt;br /&gt;
*[[DC External trust | Log in PC with CMU IT Account]]&lt;br /&gt;
*[[Let&amp;#039;s Encrypt | การทำ https บน web server โดยใช้บริการฟรี SSL Certificate จาก Let&amp;#039;s Encrypt]]&lt;br /&gt;
*[[CMU_Cloud_Self_Service_Portal | คู่มือการใช้งาน self service portal]]&lt;br /&gt;
*[[Nginx | การทำ reverse proxy และ ssl offloading ด้วย nginx]]&lt;br /&gt;
*[[Fiber_Documentary | Fiber Opitic]]&lt;br /&gt;
**[[Loss Calculator | วิธีการอ่านค่าผลทดสอบสายใยแก้วนำแสง]]&lt;br /&gt;
* [[BackUp_Data_to_Google_Drive | การสำรองข้อมูลจาก server ไปยัง Google Drive (G-Suite for Education)]]&lt;br /&gt;
* [[CMU_OpenVPN_Implementation | การติดตั้ง OpenVPN Server โดยเชื่อมต่อด้วยบัญชีบน RADIUS Server]]&lt;br /&gt;
* [[Docker | Docker]]&lt;br /&gt;
* [[Loadbalance_HAProxy_Keepalived_Nginx | Automatically Failover with Keepalived and NGINX Loadbalance]]&lt;br /&gt;
* [[Web application hardening]]&lt;br /&gt;
* [[PHP hardening]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*[[CMU OAUTH PHP CLASS]]&lt;br /&gt;
*[[CMU OAuth Angular TypeScript]]&lt;br /&gt;
&lt;br /&gt;
== Test Centre ==&lt;br /&gt;
[[Pearson VUE| Pearson VUE Authorised Test Centre]]&lt;br /&gt;
&lt;br /&gt;
== Help and Support ==&lt;br /&gt;
*[[CMU_mail_to_cloud | CMU mail to Cloud]]&lt;br /&gt;
*[[Jumbo_Net_Help | คู่มือการเชื่อมต่อ Jumbo Net]]&lt;br /&gt;
*[[CMU Login | คู่มือการใช้งาน CMU Login]]&lt;br /&gt;
*[[Microsoft_office_365_for_Education | Microsoft office 365 for Education]]&lt;br /&gt;
*[[Antivirus (Endpoint Protection)  | วิธีการติดตั้ง Antivirus for CMU Employee (ESET Endpoint Protection)]]&lt;br /&gt;
*[[CMU DNS | คู่มือการเปลี่ยน DNS (Temp.)]]&lt;br /&gt;
*[[Microsoft Teams | การใช้งาน Microsoft Teams]]&lt;br /&gt;
*[[Zoom Issue| ปัญหาการใช้งาน Zoom ]]&lt;br /&gt;
*[[Phishing| รู้ทันและป้องกันภัยจาก Phishing]]&lt;br /&gt;
*[[pwned| รหัสผ่านหลุด ภัยใกล้ตัวที่ไม่ควรมองข้าม]]&lt;br /&gt;
*[[upload myweb.cmu.ac.th]]&lt;br /&gt;
&lt;br /&gt;
== About us ==&lt;br /&gt;
*[[History]]&lt;br /&gt;
*[https://o365cmu-my.sharepoint.com/:b:/g/personal/supawit_w_cmu_ac_th1/ESBCtnrnxmhCmb0RrJlGMZgBeMv9acnvBDehJgXpNINEOw?e=GqKokB CMU Net history]&lt;br /&gt;
*[[Director history]]&lt;br /&gt;
*[https://itsc.cmu.ac.th/th/departments/8a6b263a-b7e2-4f8b-a4b3-0ed09765b2f0 Staff]&lt;br /&gt;
*[https://network.cmu.ac.th/web/bandwidth_graph Internet bandwidth]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
*[https://cacti.cmu.ac.th/graph_view.php Cacti]&lt;br /&gt;
*[https://zabbix-mon.cmu.ac.th/ Zabbix]&lt;br /&gt;
*[https://itsc.cmu.ac.th/ ITSC]&lt;br /&gt;
*[https://www.cmu.ac.th/ CMU]&lt;br /&gt;
*[https://jumbomap.cmu.ac.th/ JumboMap]&lt;br /&gt;
*[https://portal.cmu.ac.th Service portal]&lt;br /&gt;
*[https://mail.cmu.ac.th CMU Mail]&lt;br /&gt;
*[https://portal.office.com Office365]&lt;br /&gt;
&lt;br /&gt;
== WUNCA ==&lt;br /&gt;
* [[JumboPlusIoT Wunca42|WUNCA 42 การพัฒนาระบบเครือข่ายไร้สายสำหรับอุปกรณ์ส่วนบุคคลบนเครือข่ายองค์กรณ์ กรณีศึกษา ระบบเครือข่ายไร้สายของมหาวิทยาลัยเชียงใหม่]]&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
*[https://www.facebook.com/cmucnoc Facebook page]&lt;br /&gt;
*[[Map]]&lt;br /&gt;
&lt;br /&gt;
== Report Service Using==&lt;br /&gt;
*[[Faculty|คณะและหน่วยงาน]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=4712</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=4712"/>
		<updated>2024-06-18T02:27:37Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การติดตั้ง */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|Headnode &amp;amp; Compute&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|Compute node&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|Compute node&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
ในการ Set IP ใช้คำสั่ง&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
nmtui&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname แต่ละเครื่องหรือเปลี่ยนจากคำสั่งข้างต้นก็ได้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม Hosts โดยเพิ่ม ip ลงในบรรทัดสุดท้ายของไฟล์ Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-test-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld&lt;br /&gt;
systemctl start slurmctld&lt;br /&gt;
systemctl status slurmctld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute (ในกรณีนี้จะใช้เครื่อง Headnode มา Compute ด้วย จึงต้องเปิด Service slurmd)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd&lt;br /&gt;
systemctl start slurmd&lt;br /&gt;
systemctl status slurmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vim /etc/chrony.conf&lt;br /&gt;
&lt;br /&gt;
ใส่ # ที่เป็น pool แล้วใส่&lt;br /&gt;
server ntp.cmu.ac.th iburst&lt;br /&gt;
&lt;br /&gt;
systemctl restart chronyd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chronyc sources -v&lt;br /&gt;
หรือ&lt;br /&gt;
timedatectl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ติดตั้ง Module Libary&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openmpi-devel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== อ้างอิง ==&lt;br /&gt;
[https://medium.com/@bankz.sukonvijit/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-slurm-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%80%E0%B8%94%E0%B9%87%E0%B8%81%E0%B8%88%E0%B8%9A%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88-ce4dd2885a55 ติดตั้ง Slurm แบบเด็กจบใหม่]&lt;br /&gt;
&lt;br /&gt;
[https://www.slothparadise.com/how-to-install-slurm-on-centos-7-cluster/ How to Install Slurm on CentOS 7 Cluster]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Artlands/Install-Slurm Artlands/Install-Slurm]&lt;br /&gt;
&lt;br /&gt;
[https://www.howtoforge.com/nfs-server-and-client-on-centos-7 NFS Server and Client Installation on CentOS 7]&lt;br /&gt;
&lt;br /&gt;
[https://bitsanddragons.wordpress.com/2016/09/29/software-modules-on-centos-7/ Software modules on CentOS 7]&lt;br /&gt;
&lt;br /&gt;
[https://sites.google.com/site/rangsiman1993/comp-env/program-install/install-openmpi Installation of OpenMPI by Rangsiman Ketkaew]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3995</id>
		<title>Microsoft office 365 install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3995"/>
		<updated>2023-08-28T06:59:28Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== วิธีการติดตั้ง Office 365  ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;หากเครื่องของท่านมีการติดตั้ง Microsoft Office เวอร์ชั่นอื่น ๆ อยู่ ต้องทำการถอนการติดตั้งออกก่อนเป็นอันดับแรก &amp;lt;/pre&amp;gt;&lt;br /&gt;
# สามารถ Download ตัวติดตั้งได้จากหน้าหลักของ [https://office.com office.com] Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_01.png | border | link= ]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อคลิก Install Office apps ให้เลือก Office 365 Apps &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:Ms365 install 02.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ระบบจะทำการ Download ให้อัตโนมัติ เมื่อ Download เสร็จทำการกดตัวติดตั้ง ดังรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_03.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทำการรอการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อติดตั้งเสร็จจะมีข้อความแจ้งเตือนของ Windows &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_05.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทดสอบค้นหาโปรแกรมที่ต้องการใช้งาน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_06.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อเข้าครั้งแรกจะมีข้อความแจ้งเตือนว่า คุณได้ทำการติดตั้งแอปพลิเคชันแล้วดังนี้ จากนั้นกด Accept and start Word &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_07.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ตัวอย่างการใช้งานชุดโปรแกรม Office ที่ติดตั้งเสร็จแล้ว &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_08.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== วิธีเช็คจำนวนเครื่องที่ติดตั้ง Office 365 ==&lt;br /&gt;
# ไปที่ [http://mail.cmu.ac.th/ CMU Mail ] แล้ว Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
#:[[File:O365 Check01.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ขวามือบน จะมี Profile ผู้ใช้งานอยู่ ให้กดแล้วเลือก My Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check02.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ซ้ายมือสุดให้เลือก tab Apps &amp;amp; devices จากนั้นคลิกเลือกที่ devides จะมี drop down แสดงจำนวนเครื่องที่ติดตั้ง Office 365 และสถานะที่ใช้งานอยู่ในปัจจุบัน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check03.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 check04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check05.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#: &amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt; เนื่องจาก Office 365 มีการจำกัดจำนวนในการติดตั้ง โดย 1 Account สามารถติดตั้งได้ 5 เครื่อง หากท่านติดตั้งครบ 5 เครื่องแล้วต้องการติดตั้งในเครื่องใหม่ ให้ท่านทำการถอนการติดตั้ง (uninstall) จากเครื่องเก่าก่อน &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3994</id>
		<title>Microsoft office 365 install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3994"/>
		<updated>2023-08-28T06:58:33Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== วิธีการติดตั้ง Office 365  ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;หากเครื่องของท่านมีการติดตั้ง Microsoft Office เวอร์ชั่นอื่น ๆ อยู่ ต้องทำการถอนการติดตั้งออกก่อนเป็นอันดับแรก &amp;lt;/pre&amp;gt;&lt;br /&gt;
# สามารถ Download ตัวติดตั้งได้จากหน้าหลักของ [https://office.com office.com] Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_01.png | border ]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อคลิก Install Office apps ให้เลือก Office 365 Apps &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:Ms365 install 02.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ระบบจะทำการ Download ให้อัตโนมัติ เมื่อ Download เสร็จทำการกดตัวติดตั้ง ดังรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_03.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทำการรอการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อติดตั้งเสร็จจะมีข้อความแจ้งเตือนของ Windows &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_05.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทดสอบค้นหาโปรแกรมที่ต้องการใช้งาน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_06.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อเข้าครั้งแรกจะมีข้อความแจ้งเตือนว่า คุณได้ทำการติดตั้งแอปพลิเคชันแล้วดังนี้ จากนั้นกด Accept and start Word &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_07.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ตัวอย่างการใช้งานชุดโปรแกรม Office ที่ติดตั้งเสร็จแล้ว &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_08.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== วิธีเช็คจำนวนเครื่องที่ติดตั้ง Office 365 ==&lt;br /&gt;
# ไปที่ [http://mail.cmu.ac.th/ CMU Mail ] แล้ว Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
#:[[File:O365 Check01.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ขวามือบน จะมี Profile ผู้ใช้งานอยู่ ให้กดแล้วเลือก My Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check02.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ซ้ายมือสุดให้เลือก tab Apps &amp;amp; devices จากนั้นคลิกเลือกที่ devides จะมี drop down แสดงจำนวนเครื่องที่ติดตั้ง Office 365 และสถานะที่ใช้งานอยู่ในปัจจุบัน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check03.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 check04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check05.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#: &amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt; เนื่องจาก Office 365 มีการจำกัดจำนวนในการติดตั้ง โดย 1 Account สามารถติดตั้งได้ 5 เครื่อง หากท่านติดตั้งครบ 5 เครื่องแล้วต้องการติดตั้งในเครื่องใหม่ ให้ท่านทำการถอนการติดตั้ง (uninstall) จากเครื่องเก่าก่อน &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3993</id>
		<title>Microsoft office 365 install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3993"/>
		<updated>2023-08-28T06:58:21Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== วิธีการติดตั้ง Office 365  ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;หากเครื่องของท่านมีการติดตั้ง Microsoft Office เวอร์ชั่นอื่น ๆ อยู่ ต้องทำการถอนการติดตั้งออกก่อนเป็นอันดับแรก &amp;lt;/pre&amp;gt;&lt;br /&gt;
# สามารถ Download ตัวติดตั้งได้จากหน้าหลักของ [https://office.com office.com] Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_01.png | border &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อคลิก Install Office apps ให้เลือก Office 365 Apps &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:Ms365 install 02.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ระบบจะทำการ Download ให้อัตโนมัติ เมื่อ Download เสร็จทำการกดตัวติดตั้ง ดังรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_03.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทำการรอการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อติดตั้งเสร็จจะมีข้อความแจ้งเตือนของ Windows &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_05.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทดสอบค้นหาโปรแกรมที่ต้องการใช้งาน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_06.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อเข้าครั้งแรกจะมีข้อความแจ้งเตือนว่า คุณได้ทำการติดตั้งแอปพลิเคชันแล้วดังนี้ จากนั้นกด Accept and start Word &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_07.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ตัวอย่างการใช้งานชุดโปรแกรม Office ที่ติดตั้งเสร็จแล้ว &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_08.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== วิธีเช็คจำนวนเครื่องที่ติดตั้ง Office 365 ==&lt;br /&gt;
# ไปที่ [http://mail.cmu.ac.th/ CMU Mail ] แล้ว Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
#:[[File:O365 Check01.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ขวามือบน จะมี Profile ผู้ใช้งานอยู่ ให้กดแล้วเลือก My Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check02.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ซ้ายมือสุดให้เลือก tab Apps &amp;amp; devices จากนั้นคลิกเลือกที่ devides จะมี drop down แสดงจำนวนเครื่องที่ติดตั้ง Office 365 และสถานะที่ใช้งานอยู่ในปัจจุบัน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check03.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 check04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check05.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#: &amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt; เนื่องจาก Office 365 มีการจำกัดจำนวนในการติดตั้ง โดย 1 Account สามารถติดตั้งได้ 5 เครื่อง หากท่านติดตั้งครบ 5 เครื่องแล้วต้องการติดตั้งในเครื่องใหม่ ให้ท่านทำการถอนการติดตั้ง (uninstall) จากเครื่องเก่าก่อน &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3992</id>
		<title>Microsoft office 365 install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3992"/>
		<updated>2023-08-28T06:53:57Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== วิธีการติดตั้ง Office 365  ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;หากเครื่องของท่านมีการติดตั้ง Microsoft Office เวอร์ชั่นอื่น ๆ อยู่ ต้องทำการถอนการติดตั้งออกก่อนเป็นอันดับแรก &amp;lt;/pre&amp;gt;&lt;br /&gt;
# สามารถ Download ตัวติดตั้งได้จากหน้าหลักของ [https://office.com office.com] Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_01.png | border | link=https://network.cmu.ac.th/wiki/images/4/49/Ms365_install_01.png ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อคลิก Install Office apps ให้เลือก Office 365 Apps &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:Ms365 install 02.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ระบบจะทำการ Download ให้อัตโนมัติ เมื่อ Download เสร็จทำการกดตัวติดตั้ง ดังรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_03.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทำการรอการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อติดตั้งเสร็จจะมีข้อความแจ้งเตือนของ Windows &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_05.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทดสอบค้นหาโปรแกรมที่ต้องการใช้งาน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_06.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อเข้าครั้งแรกจะมีข้อความแจ้งเตือนว่า คุณได้ทำการติดตั้งแอปพลิเคชันแล้วดังนี้ จากนั้นกด Accept and start Word &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_07.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ตัวอย่างการใช้งานชุดโปรแกรม Office ที่ติดตั้งเสร็จแล้ว &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_08.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== วิธีเช็คจำนวนเครื่องที่ติดตั้ง Office 365 ==&lt;br /&gt;
# ไปที่ [http://mail.cmu.ac.th/ CMU Mail ] แล้ว Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
#:[[File:O365 Check01.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ขวามือบน จะมี Profile ผู้ใช้งานอยู่ ให้กดแล้วเลือก My Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check02.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ซ้ายมือสุดให้เลือก tab Apps &amp;amp; devices จากนั้นคลิกเลือกที่ devides จะมี drop down แสดงจำนวนเครื่องที่ติดตั้ง Office 365 และสถานะที่ใช้งานอยู่ในปัจจุบัน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check03.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 check04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check05.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#: &amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt; เนื่องจาก Office 365 มีการจำกัดจำนวนในการติดตั้ง โดย 1 Account สามารถติดตั้งได้ 5 เครื่อง หากท่านติดตั้งครบ 5 เครื่องแล้วต้องการติดตั้งในเครื่องใหม่ ให้ท่านทำการถอนการติดตั้ง (uninstall) จากเครื่องเก่าก่อน &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3991</id>
		<title>Microsoft office 365 install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Microsoft_office_365_install&amp;diff=3991"/>
		<updated>2023-08-28T06:53:01Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== วิธีการติดตั้ง Office 365  ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;หากเครื่องของท่านมีการติดตั้ง Microsoft Office เวอร์ชั่นอื่น ๆ อยู่ ต้องทำการถอนการติดตั้งออกก่อนเป็นอันดับแรก &amp;lt;/pre&amp;gt;&lt;br /&gt;
# สามารถ Download ตัวติดตั้งได้จากหน้าหลักของ [https://office.com office.com] Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_01.png | border | link=https://network.cmu.ac.th/wiki/index.php/File:Ms365_install_01.png#/media/File:Ms365_install_01.png ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อคลิก Install Office apps ให้เลือก Office 365 Apps &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:Ms365 install 02.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ระบบจะทำการ Download ให้อัตโนมัติ เมื่อ Download เสร็จทำการกดตัวติดตั้ง ดังรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_03.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทำการรอการติดตั้ง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อติดตั้งเสร็จจะมีข้อความแจ้งเตือนของ Windows &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_05.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทดสอบค้นหาโปรแกรมที่ต้องการใช้งาน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_06.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อเข้าครั้งแรกจะมีข้อความแจ้งเตือนว่า คุณได้ทำการติดตั้งแอปพลิเคชันแล้วดังนี้ จากนั้นกด Accept and start Word &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_07.png | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ตัวอย่างการใช้งานชุดโปรแกรม Office ที่ติดตั้งเสร็จแล้ว &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:ms365_install_08.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== วิธีเช็คจำนวนเครื่องที่ติดตั้ง Office 365 ==&lt;br /&gt;
# ไปที่ [http://mail.cmu.ac.th/ CMU Mail ] แล้ว Login ด้วย CMU Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
#:[[File:O365 Check01.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ขวามือบน จะมี Profile ผู้ใช้งานอยู่ ให้กดแล้วเลือก My Account &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check02.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ซ้ายมือสุดให้เลือก tab Apps &amp;amp; devices จากนั้นคลิกเลือกที่ devides จะมี drop down แสดงจำนวนเครื่องที่ติดตั้ง Office 365 และสถานะที่ใช้งานอยู่ในปัจจุบัน &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check03.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 check04.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#:[[File:O365 Check05.png | border | link= ]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#: &amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt; เนื่องจาก Office 365 มีการจำกัดจำนวนในการติดตั้ง โดย 1 Account สามารถติดตั้งได้ 5 เครื่อง หากท่านติดตั้งครบ 5 เครื่องแล้วต้องการติดตั้งในเครื่องใหม่ ให้ท่านทำการถอนการติดตั้ง (uninstall) จากเครื่องเก่าก่อน &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3697</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3697"/>
		<updated>2023-01-17T03:31:47Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: Delete HPC Session&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Services ==&lt;br /&gt;
*[https://jumbo.cmu.ac.th Wireless Network Jumbo-Net]&lt;br /&gt;
*[[CMU OpenVPN | CMU OpenVPN (Recommend)]]&lt;br /&gt;
*[[CMU GlobalProtect VPN| GlobalProtect VPN (beta)]]&lt;br /&gt;
*[[CMU Webhosting]]&lt;br /&gt;
*[https://antivirus.cmu.ac.th CMU Antivirus]&lt;br /&gt;
*[[CMU Co-Location | บริการ Co-Location]]&lt;br /&gt;
*[[CMU Private Cloud | บริการ Private Cloud]]&lt;br /&gt;
*[https://hpc.cmu.ac.th/ บริการ HPC: High Performance Computing]&lt;br /&gt;
*[[CMU NTP | บริการเทียบเวลามาตรฐาน NTP]]&lt;br /&gt;
* DNS&lt;br /&gt;
** [[Introduction_to_DNS | ความรู้เบื้องต้นเกี่ยวกับ DNS]]&lt;br /&gt;
**[[CMU caching name server | การให้บริการ dns server สำหรับการใช้งานอินเทอร์เน็ต(caching name server)]]&lt;br /&gt;
**[[Azure_DNS_Zone | การจัดการ DNS Zone บน Azure platform]]&lt;br /&gt;
* [[JumboPlusIoT | @JumboPlusIoT]]&lt;br /&gt;
&lt;br /&gt;
== Network Infrastructure and Server Configuration ==&lt;br /&gt;
*[[Network monitoring | Network Monitoring by Cacti]]&lt;br /&gt;
*[[Wi-Fi_Authentication_Service_version_2019Jan | Wi-Fi Authentication service]]&lt;br /&gt;
*[[DC External trust | Log in PC with CMU IT Account]]&lt;br /&gt;
*[[Let&amp;#039;s Encrypt | การทำ https บน web server โดยใช้บริการฟรี SSL Certificate จาก Let&amp;#039;s Encrypt]]&lt;br /&gt;
*[[CMU_Cloud_Self_Service_Portal | คู่มือการใช้งาน self service portal]]&lt;br /&gt;
*[[Nginx | การทำ reverse proxy และ ssl offloading ด้วย nginx]]&lt;br /&gt;
*[[Fiber_Documentary | Fiber Opitic]]&lt;br /&gt;
**[[Loss Calculator | วิธีการอ่านค่าผลทดสอบสายใยแก้วนำแสง]]&lt;br /&gt;
* [[BackUp_Data_to_Google_Drive | การสำรองข้อมูลจาก server ไปยัง Google Drive(G-Suite for Education)]]&lt;br /&gt;
* [[CMU_OpenVPN_Implementation | การติดตั้ง OpenVPN Server โดยเชื่อมต่อด้วยบัญชีบน RADIUS Server]]&lt;br /&gt;
* [[Docker | Docker]]&lt;br /&gt;
* [[Loadbalance_HAProxy_Keepalived_Nginx | Automatically Failover with Keepalived and NGINX Loadbalance]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*[[CMU OAUTH PHP CLASS]]&lt;br /&gt;
*[[CMU OAuth Angular TypeScript]]&lt;br /&gt;
&lt;br /&gt;
== Test Centre ==&lt;br /&gt;
[[Pearson VUE| Pearson VUE Authorised Test Centre]]&lt;br /&gt;
&lt;br /&gt;
== Help and Support ==&lt;br /&gt;
*[[CMU_mail_to_cloud | CMU mail to Cloud]]&lt;br /&gt;
*[[Jumbo_Net_Help | คู่มือการเชื่อมต่อ Jumbo Net]]&lt;br /&gt;
*[[Microsoft_office_365_for_Education | Microsoft office 365 for Education]]&lt;br /&gt;
*[[Antivirus (Endpoint Protection)  | วิธีการติดตั้ง Antivirus for CMU Employee (ESET Endpoint Protection)]]&lt;br /&gt;
*[[Antivirus (Bitdefender Endpoint Antivirus)  | วิธีการติดตั้ง Antivirus for CMU Student (Bitdefender Endpoint Antivirus)]]&lt;br /&gt;
*[[CMU DNS | คู่มือการเปลี่ยน DNS (Temp.)]]&lt;br /&gt;
*[[Microsoft Teams | การใช้งาน Microsoft Teams]]&lt;br /&gt;
*[[Zoom Issue| ปัญหาการใช้งาน Zoom ]]&lt;br /&gt;
*[[Phishing| รู้ทันและป้องกันภัยจาก Phishing]]&lt;br /&gt;
*[[pwned| รหัสผ่านหลุด ภัยใกล้ตัวที่ไม่ควรมองข้าม]]&lt;br /&gt;
&lt;br /&gt;
== About us ==&lt;br /&gt;
*[[History]]&lt;br /&gt;
*[https://o365cmu-my.sharepoint.com/:b:/g/personal/supawit_w_cmu_ac_th1/ESBCtnrnxmhCmb0RrJlGMZgBeMv9acnvBDehJgXpNINEOw?e=GqKokB CMU Net history]&lt;br /&gt;
*[[Director history]]&lt;br /&gt;
*[https://itsc.cmu.ac.th/th/departments/8a6b263a-b7e2-4f8b-a4b3-0ed09765b2f0 Staff]&lt;br /&gt;
*[https://network.cmu.ac.th/web/bandwidth_graph Internet bandwidth]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
*[https://cacti.cmu.ac.th/graph_view.php Cacti]&lt;br /&gt;
*[https://zabbix-mon.cmu.ac.th/ Zabbix]&lt;br /&gt;
*[https://itsc.cmu.ac.th/ ITSC]&lt;br /&gt;
*[https://www.cmu.ac.th/ CMU]&lt;br /&gt;
*[https://jumbomap.cmu.ac.th/ JumboMap]&lt;br /&gt;
*[https://portal.cmu.ac.th Service portal]&lt;br /&gt;
*[https://mail.cmu.ac.th CMU Mail]&lt;br /&gt;
*[https://portal.office.com Office365]&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
*[https://www.facebook.com/cmucnoc Facebook page]&lt;br /&gt;
*[[Map]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3646</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3646"/>
		<updated>2022-07-27T07:17:01Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Services ==&lt;br /&gt;
*[https://jumbo.cmu.ac.th Wireless Network Jumbo-Net]&lt;br /&gt;
*[[CMU OpenVPN | CMU OpenVPN (Recommend)]]&lt;br /&gt;
*[[CMU GlobalProtect VPN| GlobalProtect VPN (beta)]]&lt;br /&gt;
*[[CMU Webhosting]]&lt;br /&gt;
*[https://antivirus.cmu.ac.th CMU Antivirus]&lt;br /&gt;
*[[CMU Co-Location | บริการ Co-Location]]&lt;br /&gt;
*[[CMU Private Cloud | บริการ Private Cloud]]&lt;br /&gt;
*[https://hpc.cmu.ac.th/ บริการ HPC: High Performance Computing]&lt;br /&gt;
*[[CMU NTP | บริการเทียบเวลามาตรฐาน NTP]]&lt;br /&gt;
* DNS&lt;br /&gt;
** [[Introduction_to_DNS | ความรู้เบื้องต้นเกี่ยวกับ DNS]]&lt;br /&gt;
**[[CMU caching name server | การให้บริการ dns server สำหรับการใช้งานอินเทอร์เน็ต(caching name server)]]&lt;br /&gt;
**[[Azure_DNS_Zone | การจัดการ DNS Zone บน Azure platform]]&lt;br /&gt;
* [[JumboPlusIoT | @JumboPlusIoT]]&lt;br /&gt;
&lt;br /&gt;
== Network Infrastructure and Server Configuration ==&lt;br /&gt;
*[[Network monitoring | Network Monitoring by Cacti]]&lt;br /&gt;
*[[Wi-Fi_Authentication_Service_version_2019Jan | Wi-Fi Authentication service]]&lt;br /&gt;
*[[DC External trust | Log in PC with CMU IT Account]]&lt;br /&gt;
*[[Let&amp;#039;s Encrypt | การทำ https บน web server โดยใช้บริการฟรี SSL Certificate จาก Let&amp;#039;s Encrypt]]&lt;br /&gt;
*[[CMU_Cloud_Self_Service_Portal | คู่มือการใช้งาน self service portal]]&lt;br /&gt;
*[[Nginx | การทำ reverse proxy และ ssl offloading ด้วย nginx]]&lt;br /&gt;
*[[Fiber_Documentary | Fiber Opitic]]&lt;br /&gt;
**[[Loss Calculator | วิธีการอ่านค่าผลทดสอบสายใยแก้วนำแสง]]&lt;br /&gt;
* [[BackUp_Data_to_Google_Drive | การสำรองข้อมูลจาก server ไปยัง Google Drive(G-Suite for Education)]]&lt;br /&gt;
* [[CMU_OpenVPN_Implementation | การติดตั้ง OpenVPN Server โดยเชื่อมต่อด้วยบัญชีบน RADIUS Server]]&lt;br /&gt;
* [[Docker | Docker]]&lt;br /&gt;
* [[Loadbalance_HAProxy_Keepalived_Nginx | Automatically Failover with Keepalived and NGINX Loadbalance]]&lt;br /&gt;
* [[Slurm_Install | How to Install Slurm on CentOS 7 Cluster]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*[[CMU OAUTH PHP CLASS]]&lt;br /&gt;
*[[CMU OAuth Angular TypeScript]]&lt;br /&gt;
&lt;br /&gt;
== Test Centre ==&lt;br /&gt;
[[Pearson VUE| Pearson VUE Authorised Test Centre]]&lt;br /&gt;
&lt;br /&gt;
== Help and Support ==&lt;br /&gt;
*[[CMU_mail_to_cloud | CMU mail to Cloud]]&lt;br /&gt;
*[[Jumbo_Net_Help | คู่มือการเชื่อมต่อ Jumbo Net]]&lt;br /&gt;
*[[Microsoft_office_365_for_Education | Microsoft office 365 for Education]]&lt;br /&gt;
*[[Antivirus (Endpoint Protection)  | วิธีการติดตั้ง Antivirus for CMU Employee (ESET Endpoint Protection)]]&lt;br /&gt;
*[[Antivirus (Bitdefender Endpoint Antivirus)  | วิธีการติดตั้ง Antivirus for CMU Student (Bitdefender Endpoint Antivirus)]]&lt;br /&gt;
*[[CMU DNS | คู่มือการเปลี่ยน DNS (Temp.)]]&lt;br /&gt;
*[[Microsoft Teams | การใช้งาน Microsoft Teams]]&lt;br /&gt;
*[[Zoom Issue| ปัญหาการใช้งาน Zoom ]]&lt;br /&gt;
*[[Phishing| รู้ทันและป้องกันภัยจาก Phishing]]&lt;br /&gt;
*[[pwned| รหัสผ่านหลุด ภัยใกล้ตัวที่ไม่ควรมองข้าม]]&lt;br /&gt;
&lt;br /&gt;
== About us ==&lt;br /&gt;
*[[History]]&lt;br /&gt;
*[https://o365cmu-my.sharepoint.com/:b:/g/personal/supawit_w_cmu_ac_th1/ESBCtnrnxmhCmb0RrJlGMZgBeMv9acnvBDehJgXpNINEOw?e=GqKokB CMU Net history]&lt;br /&gt;
*[[Director history]]&lt;br /&gt;
*[https://itsc.cmu.ac.th/th/departments/8a6b263a-b7e2-4f8b-a4b3-0ed09765b2f0 Staff]&lt;br /&gt;
*[https://network.cmu.ac.th/web/bandwidth_graph Internet bandwidth]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
*[https://cacti.cmu.ac.th/graph_view.php Cacti]&lt;br /&gt;
*[https://zabbix-mon.cmu.ac.th/ Zabbix]&lt;br /&gt;
*[https://itsc.cmu.ac.th/ ITSC]&lt;br /&gt;
*[https://www.cmu.ac.th/ CMU]&lt;br /&gt;
*[https://jumbomap.cmu.ac.th/ JumboMap]&lt;br /&gt;
*[https://portal.cmu.ac.th Service portal]&lt;br /&gt;
*[https://mail.cmu.ac.th CMU Mail]&lt;br /&gt;
*[https://portal.office.com Office365]&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
*[https://www.facebook.com/cmucnoc Facebook page]&lt;br /&gt;
*[[Map]]&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
*[[Nonmem Software]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3645</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3645"/>
		<updated>2022-07-27T07:15:03Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Services ==&lt;br /&gt;
*[https://jumbo.cmu.ac.th Wireless Network Jumbo-Net]&lt;br /&gt;
*[[CMU OpenVPN | CMU OpenVPN (Recommend)]]&lt;br /&gt;
*[[CMU GlobalProtect VPN| GlobalProtect VPN (beta)]]&lt;br /&gt;
*[[CMU Webhosting]]&lt;br /&gt;
*[https://antivirus.cmu.ac.th CMU Antivirus]&lt;br /&gt;
*[[CMU Co-Location | บริการ Co-Location]]&lt;br /&gt;
*[[CMU Private Cloud | บริการ Private Cloud]]&lt;br /&gt;
*[https://hpc.cmu.ac.th/ บริการ HPC: High Performance Computing]&lt;br /&gt;
*[[CMU NTP | บริการเทียบเวลามาตรฐาน NTP]]&lt;br /&gt;
* DNS&lt;br /&gt;
** [[Introduction_to_DNS | ความรู้เบื้องต้นเกี่ยวกับ DNS]]&lt;br /&gt;
**[[CMU caching name server | การให้บริการ dns server สำหรับการใช้งานอินเทอร์เน็ต(caching name server)]]&lt;br /&gt;
**[[Azure_DNS_Zone | การจัดการ DNS Zone บน Azure platform]]&lt;br /&gt;
* [[JumboPlusIoT | @JumboPlusIoT]]&lt;br /&gt;
&lt;br /&gt;
== Network Infrastructure and Server Configuration ==&lt;br /&gt;
*[[Network monitoring | Network Monitoring by Cacti]]&lt;br /&gt;
*[[Wi-Fi_Authentication_Service_version_2019Jan | Wi-Fi Authentication service]]&lt;br /&gt;
*[[DC External trust | Log in PC with CMU IT Account]]&lt;br /&gt;
*[[Let&amp;#039;s Encrypt | การทำ https บน web server โดยใช้บริการฟรี SSL Certificate จาก Let&amp;#039;s Encrypt]]&lt;br /&gt;
*[[CMU_Cloud_Self_Service_Portal | คู่มือการใช้งาน self service portal]]&lt;br /&gt;
*[[Nginx | การทำ reverse proxy และ ssl offloading ด้วย nginx]]&lt;br /&gt;
*[[Fiber_Documentary | Fiber Opitic]]&lt;br /&gt;
**[[Loss Calculator | วิธีการอ่านค่าผลทดสอบสายใยแก้วนำแสง]]&lt;br /&gt;
* [[BackUp_Data_to_Google_Drive | การสำรองข้อมูลจาก server ไปยัง Google Drive(G-Suite for Education)]]&lt;br /&gt;
* [[CMU_OpenVPN_Implementation | การติดตั้ง OpenVPN Server โดยเชื่อมต่อด้วยบัญชีบน RADIUS Server]]&lt;br /&gt;
* [[Docker | Docker]]&lt;br /&gt;
* [[Loadbalance_HAProxy_Keepalived_Nginx | Automatically Failover with Keepalived and NGINX Loadbalance]]&lt;br /&gt;
* [[Slurm_Install | How to Install Slurm on CentOS 7 Cluster]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*[[CMU OAUTH PHP CLASS]]&lt;br /&gt;
*[[CMU OAuth Angular TypeScript]]&lt;br /&gt;
&lt;br /&gt;
== Test Centre ==&lt;br /&gt;
[[Pearson VUE| Pearson VUE Authorised Test Centre]]&lt;br /&gt;
&lt;br /&gt;
== Help and Support ==&lt;br /&gt;
*[[CMU_mail_to_cloud | CMU mail to Cloud]]&lt;br /&gt;
*[[Jumbo_Net_Help | คู่มือการเชื่อมต่อ Jumbo Net]]&lt;br /&gt;
*[[Microsoft_office_365_for_Education | Microsoft office 365 for Education]]&lt;br /&gt;
*[[Antivirus (Endpoint Protection)  | วิธีการติดตั้ง Antivirus for CMU Employee (ESET Endpoint Protection)]]&lt;br /&gt;
*[[Antivirus (Bitdefender Endpoint Antivirus)  | วิธีการติดตั้ง Antivirus for CMU Student (Bitdefender Endpoint Antivirus)]]&lt;br /&gt;
*[[CMU DNS | คู่มือการเปลี่ยน DNS (Temp.)]]&lt;br /&gt;
*[[Microsoft Teams | การใช้งาน Microsoft Teams]]&lt;br /&gt;
*[[Zoom Issue| ปัญหาการใช้งาน Zoom ]]&lt;br /&gt;
*[[Phishing| รู้ทันและป้องกันภัยจาก Phishing]]&lt;br /&gt;
*[[pwned| รหัสผ่านหลุด ภัยใกล้ตัวที่ไม่ควรมองข้าม]]&lt;br /&gt;
&lt;br /&gt;
== About us ==&lt;br /&gt;
*[[History]]&lt;br /&gt;
*[https://o365cmu-my.sharepoint.com/:b:/g/personal/supawit_w_cmu_ac_th1/ESBCtnrnxmhCmb0RrJlGMZgBeMv9acnvBDehJgXpNINEOw?e=GqKokB CMU Net history]&lt;br /&gt;
*[[Director history]]&lt;br /&gt;
*[https://itsc.cmu.ac.th/th/departments/8a6b263a-b7e2-4f8b-a4b3-0ed09765b2f0 Staff]&lt;br /&gt;
*[https://network.cmu.ac.th/web/bandwidth_graph Internet bandwidth]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
*[https://cacti.cmu.ac.th/graph_view.php Cacti]&lt;br /&gt;
*[https://zabbix-mon.cmu.ac.th/ Zabbix]&lt;br /&gt;
*[https://itsc.cmu.ac.th/ ITSC]&lt;br /&gt;
*[https://www.cmu.ac.th/ CMU]&lt;br /&gt;
*[https://jumbomap.cmu.ac.th/ JumboMap]&lt;br /&gt;
*[https://portal.cmu.ac.th Service portal]&lt;br /&gt;
*[https://mail.cmu.ac.th CMU Mail]&lt;br /&gt;
*[https://portal.office.com Office365]&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
*[https://www.facebook.com/cmucnoc Facebook page]&lt;br /&gt;
*[[Map]]&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3491</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3491"/>
		<updated>2021-11-29T11:14:38Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|Headnode &amp;amp; Compute&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|Compute node&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|Compute node&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname แต่ละเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม Hosts โดยเพิ่ม ip ลงในบรรทัดสุดท้ายของไฟล์ Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-test-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld&lt;br /&gt;
systemctl start slurmctld&lt;br /&gt;
systemctl status slurmctld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute (ในกรณีนี้จะใช้เครื่อง Headnode มา Compute ด้วย จึงต้องเปิด Service slurmd)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd&lt;br /&gt;
systemctl start slurmd&lt;br /&gt;
systemctl status slurmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ติดตั้ง Module Libary&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openmpi-devel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== อ้างอิง ==&lt;br /&gt;
[https://medium.com/@bankz.sukonvijit/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-slurm-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%80%E0%B8%94%E0%B9%87%E0%B8%81%E0%B8%88%E0%B8%9A%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88-ce4dd2885a55 ติดตั้ง Slurm แบบเด็กจบใหม่]&lt;br /&gt;
&lt;br /&gt;
[https://www.slothparadise.com/how-to-install-slurm-on-centos-7-cluster/ How to Install Slurm on CentOS 7 Cluster]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Artlands/Install-Slurm Artlands/Install-Slurm]&lt;br /&gt;
&lt;br /&gt;
[https://www.howtoforge.com/nfs-server-and-client-on-centos-7 NFS Server and Client Installation on CentOS 7]&lt;br /&gt;
&lt;br /&gt;
[https://bitsanddragons.wordpress.com/2016/09/29/software-modules-on-centos-7/ Software modules on CentOS 7]&lt;br /&gt;
&lt;br /&gt;
[https://sites.google.com/site/rangsiman1993/comp-env/program-install/install-openmpi Installation of OpenMPI by Rangsiman Ketkaew]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3490</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3490"/>
		<updated>2021-11-29T08:05:48Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|Headnode &amp;amp; Compute&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|Compute node&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|Compute node&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname แต่ละเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม Hosts โดยเพิ่ม ip ลงในบรรทัดสุดท้ายของไฟล์ Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-test-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld&lt;br /&gt;
systemctl start slurmctld&lt;br /&gt;
systemctl status slurmctld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute (ในกรณีนี้จะใช้เครื่อง Headnode มา Compute ด้วย จึงต้องเปิด Service slurmd)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd&lt;br /&gt;
systemctl start slurmd&lt;br /&gt;
systemctl status slurmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== อ้างอิง ==&lt;br /&gt;
[https://medium.com/@bankz.sukonvijit/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-slurm-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%80%E0%B8%94%E0%B9%87%E0%B8%81%E0%B8%88%E0%B8%9A%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88-ce4dd2885a55 ติดตั้ง Slurm แบบเด็กจบใหม่]&lt;br /&gt;
&lt;br /&gt;
[https://www.slothparadise.com/how-to-install-slurm-on-centos-7-cluster/ How to Install Slurm on CentOS 7 Cluster]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Artlands/Install-Slurm Artlands/Install-Slurm]&lt;br /&gt;
&lt;br /&gt;
[https://www.howtoforge.com/nfs-server-and-client-on-centos-7 NFS Server and Client Installation on CentOS 7]&lt;br /&gt;
&lt;br /&gt;
[https://bitsanddragons.wordpress.com/2016/09/29/software-modules-on-centos-7/ Software modules on CentOS 7]&lt;br /&gt;
&lt;br /&gt;
[https://sites.google.com/site/rangsiman1993/comp-env/program-install/install-openmpi Installation of OpenMPI by Rangsiman Ketkaew]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3489</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3489"/>
		<updated>2021-11-28T17:53:07Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: อ้างอิง&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|Headnode &amp;amp; Compute&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|Compute node&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|Compute node&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname แต่ละเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม Hosts โดยเพิ่ม ip ลงในบรรทัดสุดท้ายของไฟล์ Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-test-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld&lt;br /&gt;
systemctl start slurmctld&lt;br /&gt;
systemctl status slurmctld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute (ในกรณีนี้จะใช้เครื่อง Headnode มา Compute ด้วย จึงต้องเปิด Service slurmd)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd&lt;br /&gt;
systemctl start slurmd&lt;br /&gt;
systemctl status slurmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== อ้างอิง ==&lt;br /&gt;
[https://medium.com/@bankz.sukonvijit/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-slurm-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%80%E0%B8%94%E0%B9%87%E0%B8%81%E0%B8%88%E0%B8%9A%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88-ce4dd2885a55 ติดตั้ง Slurm แบบเด็กจบใหม่]&lt;br /&gt;
&lt;br /&gt;
[https://www.slothparadise.com/how-to-install-slurm-on-centos-7-cluster/ How to Install Slurm on CentOS 7 Cluster]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Artlands/Install-Slurm Artlands/Install-Slurm]&lt;br /&gt;
&lt;br /&gt;
[https://www.howtoforge.com/nfs-server-and-client-on-centos-7 NFS Server and Client Installation on CentOS 7]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3488</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3488"/>
		<updated>2021-11-26T13:32:50Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การติดตั้ง */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|Headnode &amp;amp; Compute&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|Compute node&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|Compute node&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname แต่ละเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม Hosts โดยเพิ่ม ip ลงในบรรทัดสุดท้ายของไฟล์ Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-test-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld&lt;br /&gt;
systemctl start slurmctld&lt;br /&gt;
systemctl status slurmctld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute (ในกรณีนี้จะใช้เครื่อง Headnode มา Compute ด้วย จึงต้องเปิด Service slurmd)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd&lt;br /&gt;
systemctl start slurmd&lt;br /&gt;
systemctl status slurmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3487</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3487"/>
		<updated>2021-11-26T13:25:10Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Config Slurm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname แต่ละเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม Hosts โดยเพิ่ม ip ลงในบรรทัดสุดท้ายของไฟล์ Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-test-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-test-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld.service&lt;br /&gt;
systemctl start slurmctld.service&lt;br /&gt;
systemctl status slurmctld.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd.service&lt;br /&gt;
systemctl start slurmd.service&lt;br /&gt;
systemctl status slurmd.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3486</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3486"/>
		<updated>2021-11-26T13:19:13Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname แต่ละเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม Hosts โดยเพิ่ม ip ลงในบรรทัดสุดท้ายของไฟล์ Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld.service&lt;br /&gt;
systemctl start slurmctld.service&lt;br /&gt;
systemctl status slurmctld.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd.service&lt;br /&gt;
systemctl start slurmd.service&lt;br /&gt;
systemctl status slurmd.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3485</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3485"/>
		<updated>2021-11-26T13:17:43Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld.service&lt;br /&gt;
systemctl start slurmctld.service&lt;br /&gt;
systemctl status slurmctld.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd.service&lt;br /&gt;
systemctl start slurmd.service&lt;br /&gt;
systemctl status slurmd.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3484</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3484"/>
		<updated>2021-11-26T13:16:09Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ro / rw&lt;br /&gt;
** ro : allow clients read only access to the share.&lt;br /&gt;
** rw : allow clients read write access to the share.&lt;br /&gt;
&lt;br /&gt;
* sync / async&lt;br /&gt;
** sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
** async : specifies that the server does not have to wait.&lt;br /&gt;
&lt;br /&gt;
* wdelay / no_wdelay&lt;br /&gt;
** wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
** no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
&lt;br /&gt;
* no_all_squash / all_squash&lt;br /&gt;
** no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
** all_squash : to squash all remote users including root.&lt;br /&gt;
&lt;br /&gt;
* root_squash / no_root_squash&lt;br /&gt;
** root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
** no_root_squash : disable root squashing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
* exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
* exportfs -u: UnExport one or more directories.&lt;br /&gt;
* exportfs -r: ReExport all directories after modifying /etc/exports.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld.service&lt;br /&gt;
systemctl start slurmctld.service&lt;br /&gt;
systemctl status slurmctld.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd.service&lt;br /&gt;
systemctl start slurmd.service&lt;br /&gt;
systemctl status slurmd.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3483</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3483"/>
		<updated>2021-11-26T13:07:58Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* ติดตั้ง Slurm (ต่อ) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง NFS Server เพื่อ Share folder ===&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- ro / rw :&lt;br /&gt;
a) ro : allow clients read only access to the share.&lt;br /&gt;
b) rw : allow clients read write access to the share.&lt;br /&gt;
sync / async :&lt;br /&gt;
a) sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
b) async : specifies that the server does not have to wait.&lt;br /&gt;
wdelay / no_wdelay&lt;br /&gt;
a) wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
b) no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
no_all_squash / all_squash :&lt;br /&gt;
a) no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
b) all_squash : to squash all remote users including root.&lt;br /&gt;
root_squash / no_root_squash :&lt;br /&gt;
a) root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
b) no_root_squash : disable root squashing. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
exportfs -u: UnExport one or more directories.&lt;br /&gt;
exportfs -r: ReExport all directories after modifying /etc/exports. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld.service&lt;br /&gt;
systemctl start slurmctld.service&lt;br /&gt;
systemctl status slurmctld.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd.service&lt;br /&gt;
systemctl start slurmd.service&lt;br /&gt;
systemctl status slurmd.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3482</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3482"/>
		<updated>2021-11-26T13:06:09Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* สร้าง Global users ให้กับทุก Node */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ติดตั้ง NFS Server เพื่อ Share folder ====&lt;br /&gt;
&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- ro / rw :&lt;br /&gt;
a) ro : allow clients read only access to the share.&lt;br /&gt;
b) rw : allow clients read write access to the share.&lt;br /&gt;
sync / async :&lt;br /&gt;
a) sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
b) async : specifies that the server does not have to wait.&lt;br /&gt;
wdelay / no_wdelay&lt;br /&gt;
a) wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
b) no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
no_all_squash / all_squash :&lt;br /&gt;
a) no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
b) all_squash : to squash all remote users including root.&lt;br /&gt;
root_squash / no_root_squash :&lt;br /&gt;
a) root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
b) no_root_squash : disable root squashing. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
exportfs -u: UnExport one or more directories.&lt;br /&gt;
exportfs -r: ReExport all directories after modifying /etc/exports. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm (ต่อ) ===&lt;br /&gt;
[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld.service&lt;br /&gt;
systemctl start slurmctld.service&lt;br /&gt;
systemctl status slurmctld.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd.service&lt;br /&gt;
systemctl start slurmd.service&lt;br /&gt;
systemctl status slurmd.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3481</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3481"/>
		<updated>2021-11-26T13:01:30Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Config Slurm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 0700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ติดตั้ง NFS Server เพื่อ Share folder ====&lt;br /&gt;
&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- ro / rw :&lt;br /&gt;
a) ro : allow clients read only access to the share.&lt;br /&gt;
b) rw : allow clients read write access to the share.&lt;br /&gt;
sync / async :&lt;br /&gt;
a) sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
b) async : specifies that the server does not have to wait.&lt;br /&gt;
wdelay / no_wdelay&lt;br /&gt;
a) wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
b) no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
no_all_squash / all_squash :&lt;br /&gt;
a) no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
b) all_squash : to squash all remote users including root.&lt;br /&gt;
root_squash / no_root_squash :&lt;br /&gt;
a) root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
b) no_root_squash : disable root squashing. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
exportfs -u: UnExport one or more directories.&lt;br /&gt;
exportfs -r: ReExport all directories after modifying /etc/exports. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm (ต่อ) ===&lt;br /&gt;
[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;br /&gt;
เข้าเว็บ http://slurm.schedmd.com/configurator.easy.html เพื่อทำการสร้าง slurm.conf&lt;br /&gt;
&lt;br /&gt;
* ใส่ Cluster Name ตามต้องการ&lt;br /&gt;
* ใส่ Control Machine เป็นเครื่อง Headnode&lt;br /&gt;
* ใส่ NodeName เป็นเครื่องที่มีเช่น sluem-test-[01-03]&lt;br /&gt;
* ใส่ CPUs ตามทรัพยากรณ์ของเครื่อง&lt;br /&gt;
* เปลี่ยน Process Tracking เป็น pgid &lt;br /&gt;
* จากนั้นกด submit จะได้ text config มา&lt;br /&gt;
&lt;br /&gt;
ก็อบทั้งหมดไปยัง slurm.conf ในเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /etc/slurm&lt;br /&gt;
vi slurm.conf&lt;br /&gt;
เปลี่ยนคอนฟิกบางอย่างในหมวด #COMPUTE NODES ในส่วนของ Nodename เป็น&lt;br /&gt;
NodeName=slurm-01 NodeAddr=10.98.6.51 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-02 NodeAddr=10.98.6.52 CPUs=2 State=UNKNOWN&lt;br /&gt;
NodeName=slurm-03 NodeAddr=10.98.6.53 CPUs=2 State=UNKNOWN&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จากนั้น Copy slurm.conf ไปยง Node อื่น ๆ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp slurm.conf root@10.98.6.52:/etc/slurm/slurm.conf&lt;br /&gt;
scp slurm.conf root@10.98.6.53:/etc/slurm/slurm.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้างโฟล์เดอร์เก็บ log ตามไฟล์คอนฟิก&lt;br /&gt;
&lt;br /&gt;
บนเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmctld&lt;br /&gt;
chown slurm: /var/spool/slurmctld&lt;br /&gt;
chmod 755 /var/spool/slurmctld&lt;br /&gt;
touch /var/log/slurmctld.log&lt;br /&gt;
chown slurm: /var/log/slurmctld.log&lt;br /&gt;
touch /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
chown slurm: /var/log/slurm_jobacct.log /var/log/slurm_jobcomp.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;บนเครื่อง Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /var/spool/slurmd&lt;br /&gt;
chown slurm: /var/spool/slurmd&lt;br /&gt;
chmod 755 /var/spool/slurmd&lt;br /&gt;
touch /var/log/slurmd.log&lt;br /&gt;
chown slurm: /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คคอนฟิกด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
slurmd -C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;จะแสดงชื่อเครื่องของตัวเอง เช่น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
NodeName=slurm-test-01 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1819&lt;br /&gt;
UpTime=0-00:05:58&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Firewall อาจบล็อกการติดต่อระหว่าง Node ให้ปิดการใช้งานของ Firewall ในทุก Node compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop firewalld&lt;br /&gt;
systemctl disable firewalld&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เสริมถ้าเครื่อง Headnode ไม่ได้เป็น Compute ด้วย ให้เพิ่มคอนฟิก Firewall เป็น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/udp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6817/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=6818/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-port=7321/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เรื่มการใช้งาน Slurm โดยเครื่องที่เป็น Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmctld.service&lt;br /&gt;
systemctl start slurmctld.service&lt;br /&gt;
systemctl status slurmctld.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เครื่องที่เป็น Compute&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable slurmd.service&lt;br /&gt;
systemctl start slurmd.service&lt;br /&gt;
systemctl status slurmd.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ดูสถานะของเครื่องใน Cluster โดยใช้&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็ค Status โดยใช้คำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
tail /var/log/slurmd.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;คำสั่งเปลี่ยนสถานะเครื่อง เมื่อ Active แล้วสถานะยังเป็น Down และไม่มี Error เกิดขึ้น&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scontrol update nodename=[ชื่อโหนดที่เป็นสถานะ down หรือ อื่น ๆ] state=idle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== เสริมการเซ็ตเวลาของแต่ละเครื่องให้ตรงกันโดยใช้ (NTP) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install ntp&lt;br /&gt;
chkconfig ntpd on&lt;br /&gt;
ntpdate ntp.cmu.ac.th&lt;br /&gt;
systemctl start ntpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3480</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3480"/>
		<updated>2021-11-26T10:13:34Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 0700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ติดตั้ง NFS Server เพื่อ Share folder ====&lt;br /&gt;
&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- ro / rw :&lt;br /&gt;
a) ro : allow clients read only access to the share.&lt;br /&gt;
b) rw : allow clients read write access to the share.&lt;br /&gt;
sync / async :&lt;br /&gt;
a) sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
b) async : specifies that the server does not have to wait.&lt;br /&gt;
wdelay / no_wdelay&lt;br /&gt;
a) wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
b) no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
no_all_squash / all_squash :&lt;br /&gt;
a) no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
b) all_squash : to squash all remote users including root.&lt;br /&gt;
root_squash / no_root_squash :&lt;br /&gt;
a) root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
b) no_root_squash : disable root squashing. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
exportfs -u: UnExport one or more directories.&lt;br /&gt;
exportfs -r: ReExport all directories after modifying /etc/exports. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm (ต่อ) ===&lt;br /&gt;
[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
&lt;br /&gt;
==== Config Slurm ====&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3479</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3479"/>
		<updated>2021-11-26T10:12:50Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* สร้าง Global users ให้กับทุก Node */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Munge ===&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 0700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ถ้าไม่เจอ error แสดงว่า Munge ทำงานได้ปกติ&lt;br /&gt;
&lt;br /&gt;
=== ติดตั้ง Slurm ===&lt;br /&gt;
ติดตั้ง service ต่าง ๆ ที่ Slurm ต้องใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install openssl openssl-devel pam-devel numactl numactl-devel hwloc hwloc-devel lua lua-devel readline-devel rrdtool-devel ncurses-devel man2html libibmad libibumad -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ติดตั้ง NFS Server เพื่อ Share folder ====&lt;br /&gt;
&lt;br /&gt;
===== NFS Server (Headnode) =====&lt;br /&gt;
สร้างโฟล์เดอร์ที่ต้องการแชร์ที่ไหนก็ได้ โดยในที่นี้จะสร้างไว้ใน /var/nfsshare&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
systemctl start nfs-server rpcbind&lt;br /&gt;
systemctl enable nfs-server rpcbind&lt;br /&gt;
mkdir /var/nfsshare&lt;br /&gt;
chmod -R 755 /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตั้งค่าให้ NFS ทำงานทุกครั้งเมื่อเปิดเครื่อง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable rpcbind&lt;br /&gt;
systemctl enable nfs-server&lt;br /&gt;
systemctl enable nfs-lock&lt;br /&gt;
systemctl enable nfs-idmap&lt;br /&gt;
systemctl start rpcbind&lt;br /&gt;
systemctl start nfs-server&lt;br /&gt;
systemctl start nfs-lock&lt;br /&gt;
systemctl start nfs-idmap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Config ไฟล์สำหรับการแชร์&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/exports&lt;br /&gt;
/var/nfsshare    10.98.6.0/24(rw,sync,no_root_squash,no_all_squash)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- ro / rw :&lt;br /&gt;
a) ro : allow clients read only access to the share.&lt;br /&gt;
b) rw : allow clients read write access to the share.&lt;br /&gt;
sync / async :&lt;br /&gt;
a) sync : NFS server replies to request only after changes made by previous request are written to disk.&lt;br /&gt;
b) async : specifies that the server does not have to wait.&lt;br /&gt;
wdelay / no_wdelay&lt;br /&gt;
a) wdelay : NFS server delays committing write requests when it suspects another write request is imminent.&lt;br /&gt;
b) no_wdelay : use this option to disable to the delay. no_wdelay option can only be enabled if default sync option is enabled.&lt;br /&gt;
no_all_squash / all_squash :&lt;br /&gt;
a) no_all_squash : does not change the mapping of remote users.&lt;br /&gt;
b) all_squash : to squash all remote users including root.&lt;br /&gt;
root_squash / no_root_squash :&lt;br /&gt;
a) root_squash : prevent root users connected remotely from having root access. Effectively squashing remote root privileges.&lt;br /&gt;
b) no_root_squash : disable root squashing. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -r&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!-- exportfs -v: Displays a list of shares files and export options on a server.&lt;br /&gt;
exportfs -a: Exports all directories listed in /etc/exports.&lt;br /&gt;
exportfs -u: UnExport one or more directories.&lt;br /&gt;
exportfs -r: ReExport all directories after modifying /etc/exports. --&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart nfs-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม NFS Service เข้าไปใน Firewall&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=nfs&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=mountd&lt;br /&gt;
firewall-cmd --permanent --zone=public --add-service=rpc-bind&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== NFS Client (Compute node) =====&lt;br /&gt;
ไปยังเครื่องที่หลือแล้วลง NFS Client&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install nfs-utils -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เช็คโฟล์ดอร์ที่มีแชร์จากเครื่องหลัก&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
showmount -e 10.98.6.51&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Folder ที่ต้องการให้เห็นไฟล์ที่แชร์มา โดยในที่นี้จะให้เป็น Path เดียวกันกับเครื่อง Headnode&lt;br /&gt;
&lt;br /&gt;
พร้อม Mount เข้ามา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/nfsshare&lt;br /&gt;
mount -t nfs 10.98.6.51:/var/nfsshare /var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธี Mount แบบถาวร =====&lt;br /&gt;
ถ้าไม่ทำการ Mount แบบถาวร เมื่อปิดเครื่องแล้วเปิดใหม่ขึ้นมาตัว Folder ที่ Mount จะหายไป ทำให้ต้อง mount ใหม่ถ้าจะใช้งาน&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/fstab&lt;br /&gt;
10.98.6.51:/var/nfsshare /var/nfsshare nfs defaults 0 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== วิธีการ Unmount =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
umount 10.98.6.51:/var/nfsshare&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ติดตั้ง Slurm (ต่อ) ====&lt;br /&gt;
[https://www.schedmd.com/downloads.php Download] ไฟล์ติดตั้งมาไว้ที่เครื่อง Headnode ใน Path /var/nfsshare (ในที่นี้เป็นเวอร์ชัน 20.08.4)&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/nfsshare&lt;br /&gt;
yum install wget -y&lt;br /&gt;
wget https://download.schedmd.com/slurm/slurm-21.08.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลง rpmbuild&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install rpm-build&lt;br /&gt;
yum install python3 readline-devel &lt;br /&gt;
yum install perl pam-devel perl-ExtUtils\* &lt;br /&gt;
yum install mariadb-server mariadb-devel&lt;br /&gt;
yum install gcc gcc-c++ make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Build ไฟล์ที่โหลดมา&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
rpmbuild -ta slurm-21.8.4.tar.bz2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เมื่อ Build เสร็จจะมี Folder rmbuild ขึ้นมา&lt;br /&gt;
&lt;br /&gt;
เข้าไปยังไฟล์ที่ได้จากการ Build&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cd rpmbuild/RPMS/x86_64&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ลงทุกตัวด้วยคำสั่ง&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum --nogpgcheck localinstall *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ไปยัง Shared folder ที่เครื่องอื่น ๆ เพื่อลงเหมือนกัน&lt;br /&gt;
&lt;br /&gt;
===== Config Slurm =====&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3478</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3478"/>
		<updated>2021-11-26T09:32:02Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* สร้าง Global users ให้กับทุก Node */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== สร้าง Global users ให้กับทุก Node ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== ติดตั้ง Munge ======&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 0700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== ติดตั้ง Slurm ======&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3477</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3477"/>
		<updated>2021-11-26T09:30:46Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การติดตั้ง */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;br /&gt;
ทรัพยากรที่ใช้ในการติดตั้ง ประกอบไปด้วยเครื่องทั้งหมด 3 เครื่องโดยให้เครื่องแรกเป็น Headnode จะลง slurmctld, slurmdbd, slurmd ส่วนเครื่องที่เหลือเป็นเครื่อง computenode ลงแค่ตัว slurmd ทั้งหมดเป็น CentOS7&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Hostname&lt;br /&gt;
!ip address&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-01&lt;br /&gt;
|10.98.6.51&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-02&lt;br /&gt;
|10.98.6.52&lt;br /&gt;
|-&lt;br /&gt;
|slurm-test-03&lt;br /&gt;
|10.98.6.53&lt;br /&gt;
|}&lt;br /&gt;
แนะนำให้ Login ด้วย Root ในการติดตั้ง เพราะบางคำสั่งจะติด Permission&lt;br /&gt;
&lt;br /&gt;
เปลี่ยน Hostname และเพิ่ม Hosts&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname slurm-test-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;เพิ่ม ip ลงในบรรทัดสุดท้าย&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&lt;br /&gt;
..&lt;br /&gt;
..&lt;br /&gt;
10.98.6.51  slurm-test01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Restart network แล้ว Login ใหม่&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl restart network&lt;br /&gt;
hostnamectl status&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== สร้าง Global users ให้กับทุก Node ======&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
export MUNGEUSER=991&lt;br /&gt;
groupadd -g $MUNGEUSER munge&lt;br /&gt;
useradd  -m -c &amp;quot;MUNGE Uid &amp;#039;N&amp;#039; Gid Emporium&amp;quot; -d /var/lib/munge -u $MUNGEUSER -g munge  -s /sbin/nologin munge&lt;br /&gt;
export SLURMUSER=992&lt;br /&gt;
groupadd -g $SLURMUSER slurm&lt;br /&gt;
useradd  -m -c &amp;quot;SLURM workload manager&amp;quot; -d /var/lib/slurm -u $SLURMUSER -g slurm  -s /bin/bash slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ตรวจสอบว่าสร้าง user แล้ว&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/group | grep -e munge -e slurm&lt;br /&gt;
และ&lt;br /&gt;
cat /etc/passwd | grep -e munge -e slurm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== ติดตั้ง Munge ======&lt;br /&gt;
Install REPL repository&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install epel-release -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Install Munge&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
yum install munge munge-libs munge-devel -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;สร้าง Secret key จากเครื่อง Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
dd if=/dev/urandom bs=1 count=1024 &amp;gt; /etc/munge/munge.key&lt;br /&gt;
chown munge: /etc/munge/munge.key&lt;br /&gt;
chmod 400 /etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ก็อป key ไปยังเครื่องที่เหลือ&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.52:/etc/munge/munge.key&lt;br /&gt;
scp /etc/munge/munge.key root@10.98.6.53:/etc/munge/munge.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;SSH ไปยังทุก Node เปลี่ยน Permission แล้วเริ่ม Munge service&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
chown -R munge: /etc/munge/ /var/log/munge/&lt;br /&gt;
chmod 0700 /etc/munge/ /var/log/munge/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable munge&lt;br /&gt;
systemctl start munge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ทดสอบ Munge ว่าติดต่อไปยังเครื่องอื่นได้หรือไม่ โดยเข้าจาก Headnode&amp;lt;syntaxhighlight lang=&amp;quot;linux-config&amp;quot;&amp;gt;&lt;br /&gt;
munge -n&lt;br /&gt;
munge -n | munge&lt;br /&gt;
munge -n | ssh 10.98.6.52 unmunge&lt;br /&gt;
remunge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== ติดตั้ง Slurm ======&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3476</id>
		<title>Slurm Install</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Slurm_Install&amp;diff=3476"/>
		<updated>2021-11-26T08:13:20Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: Created page with &amp;quot;== การติดตั้ง ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== การติดตั้ง ==&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3475</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=3475"/>
		<updated>2021-11-26T08:06:30Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Network Infrastructure and Server Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Services ==&lt;br /&gt;
*[https://jumbo.cmu.ac.th Wireless Network Jumbo-Net]&lt;br /&gt;
*[[CMU OpenVPN | CMU OpenVPN (Recommend)]]&lt;br /&gt;
*[[CMU GlobalProtect VPN| GlobalProtect VPN (beta)]]&lt;br /&gt;
*[[CMU Webhosting]]&lt;br /&gt;
*[https://antivirus.cmu.ac.th CMU Antivirus]&lt;br /&gt;
*[[CMU Co-Location | บริการ Co-Location]]&lt;br /&gt;
*[[CMU Private Cloud | บริการ Private Cloud]]&lt;br /&gt;
*[https://hpc.cmu.ac.th/ บริการ HPC: High Performance Computing]&lt;br /&gt;
*[[CMU NTP | บริการเทียบเวลามาตรฐาน NTP]]&lt;br /&gt;
* DNS&lt;br /&gt;
** [[Introduction_to_DNS | ความรู้เบื้องต้นเกี่ยวกับ DNS]]&lt;br /&gt;
**[[CMU caching name server | การให้บริการ dns server สำหรับการใช้งานอินเทอร์เน็ต(caching name server)]]&lt;br /&gt;
**[[Azure_DNS_Zone | การจัดการ DNS Zone บน Azure platform]]&lt;br /&gt;
* [[JumboPlusIoT | @JumboPlusIoT]]&lt;br /&gt;
&lt;br /&gt;
== Network Infrastructure and Server Configuration ==&lt;br /&gt;
*[[Network monitoring | Network Monitoring by Cacti]]&lt;br /&gt;
*[[Wi-Fi_Authentication_Service_version_2019Jan | Wi-Fi Authentication service]]&lt;br /&gt;
*[[DC External trust | Log in PC with CMU IT Account]]&lt;br /&gt;
*[[Let&amp;#039;s Encrypt | การทำ https บน web server โดยใช้บริการฟรี SSL Certificate จาก Let&amp;#039;s Encrypt]]&lt;br /&gt;
*[[CMU_Cloud_Self_Service_Portal | คู่มือการใช้งาน self service portal]]&lt;br /&gt;
*[[Nginx | การทำ reverse proxy และ ssl offloading ด้วย nginx]]&lt;br /&gt;
*[[Fiber_Documentary | Fiber Opitic]]&lt;br /&gt;
**[[Loss Calculator | วิธีการอ่านค่าผลทดสอบสายใยแก้วนำแสง]]&lt;br /&gt;
* [[BackUp_Data_to_Google_Drive | การสำรองข้อมูลจาก server ไปยัง Google Drive(G-Suite for Education)]]&lt;br /&gt;
* [[CMU_OpenVPN_Implementation | การติดตั้ง OpenVPN Server โดยเชื่อมต่อด้วยบัญชีบน RADIUS Server]]&lt;br /&gt;
* [[Docker | Docker]]&lt;br /&gt;
* [[Loadbalance_HAProxy_Keepalived_Nginx | Automatically Failover with Keepalived and NGINX Loadbalance]]&lt;br /&gt;
* [[Slurm_Install | How to Install Slurm on CentOS 7 Cluster]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*[[CMU OAUTH PHP CLASS]]&lt;br /&gt;
*[[CMU OAuth Angular TypeScript]]&lt;br /&gt;
&lt;br /&gt;
== Test Centre ==&lt;br /&gt;
[[Pearson VUE| Pearson VUE Authorised Test Centre]]&lt;br /&gt;
&lt;br /&gt;
== Help and Support ==&lt;br /&gt;
*[[CMU_mail_to_cloud | CMU mail to Cloud]]&lt;br /&gt;
*[[Jumbo_Net_Help | คู่มือการเชื่อมต่อ Jumbo Net]]&lt;br /&gt;
*[[Microsoft_office_365_for_Education | Microsoft office 365 for Education]]&lt;br /&gt;
*[[Antivirus (Endpoint Protection)  | วิธีการติดตั้ง Antivirus for CMU Employee (ESET Endpoint Protection)]]&lt;br /&gt;
*[[Antivirus (Bitdefender Endpoint Antivirus)  | วิธีการติดตั้ง Antivirus for CMU Student (Bitdefender Endpoint Antivirus)]]&lt;br /&gt;
*[[CMU DNS | คู่มือการเปลี่ยน DNS (Temp.)]]&lt;br /&gt;
*[[Microsoft Teams | การใช้งาน Microsoft Teams]]&lt;br /&gt;
*[[Zoom Issue| ปัญหาการใช้งาน Zoom ]]&lt;br /&gt;
*[[Phishing| รู้ทันและป้องกันภัยจาก Phishing]]&lt;br /&gt;
*[[Cybercrime| รหัสผ่านหลุด ภัยใกล้ตัวที่ไม่ควรมองข้าม]]&lt;br /&gt;
*[[Google Drive File Stream]]&lt;br /&gt;
&lt;br /&gt;
== About us ==&lt;br /&gt;
*[[History]]&lt;br /&gt;
*[https://o365cmu-my.sharepoint.com/:b:/g/personal/supawit_w_cmu_ac_th1/ESBCtnrnxmhCmb0RrJlGMZgBeMv9acnvBDehJgXpNINEOw?e=GqKokB CMU Net history]&lt;br /&gt;
*[[Director history]]&lt;br /&gt;
*[https://itsc.cmu.ac.th/AboutUs/StructureAndMember.aspx#G5 Staff]&lt;br /&gt;
*[https://network.cmu.ac.th/web/bandwidth_graph Internet bandwidth]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
*[https://cacti.cmu.ac.th/graph_view.php Cacti]&lt;br /&gt;
*[https://zabbix-mon.cmu.ac.th/ Zabbix]&lt;br /&gt;
*[https://itsc.cmu.ac.th/ ITSC]&lt;br /&gt;
*[https://www.cmu.ac.th/ CMU]&lt;br /&gt;
*[https://jumbomap.cmu.ac.th/ JumboMap]&lt;br /&gt;
*[https://portal.cmu.ac.th Service portal]&lt;br /&gt;
*[https://mail.cmu.ac.th CMU Mail]&lt;br /&gt;
*[https://portal.office.com Office365]&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
*[https://www.facebook.com/cmucnoc Facebook page]&lt;br /&gt;
*[[Map]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=3079</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=3079"/>
		<updated>2021-06-08T06:47:46Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Network Scenario */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
# Web 1 : 10.0.0.10&lt;br /&gt;
# Web 2 : 10.0.0.11&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* ubuntu คือ servername&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) &lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการเพิ่มไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx stop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2852</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2852"/>
		<updated>2021-02-22T14:54:07Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* ผลการทดสอบ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* ubuntu คือ servername&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) &lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการเพิ่มไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx stop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2655</id>
		<title>Antivirus (Endpoint Protection)</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2655"/>
		<updated>2020-09-23T02:42:21Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การติดตั้ง ESET Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ &amp;#039;&amp;#039;&amp;#039;This PC&amp;#039;&amp;#039;&amp;#039; หรือ &amp;#039;&amp;#039;&amp;#039;My Computer&amp;#039;&amp;#039;&amp;#039; แล้วเลือก &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32  bit หรือ 64 bit เพื่อจะได้เลือก download file ได้ถูกต้อง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การติดตั้ง ESET Endpoint Antivirus ===&lt;br /&gt;
# ไปที่ https://license.cmu.ac.th/ แล้ว Log in ด้วย CMU Account เข้าไป download file ติดตั้งที่ต้องการ&lt;br /&gt;
# คลิกขวาที่ file ที่ download เรียบร้อยแล้ว เลือก &amp;#039;&amp;#039;&amp;#039;Run as administrator&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อพบหน้าต่าง Windows protected your PC เลือก &amp;#039;&amp;#039;&amp;#039;More Info&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Run anyway&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win01.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กรณีเครื่องคอมพิวเตอร์ มีการติดตั้งโปรแกรม Antivirus อื่นอยู่แล้ว ต้องทำการ uninstall ก่อน โดยเลือกที่ข้อความ &amp;#039;&amp;#039;&amp;#039; I want to uninstall unwanted antivirus application using ESET AV Remover&amp;#039;&amp;#039;&amp;#039; จากนั้น คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;หากไม่เคยติดตั้งโปรแกรม Antivirus ในเครื่อง ข้ามไปข้อ 6&amp;#039;&amp;#039;&amp;#039;** &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Est Win06.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่างที่แสดงโปรแกรม Antivirus ตัวเดิม คลิกเลือกที่หน้าชื่อโปรแกรม จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Remove&amp;#039;&amp;#039;&amp;#039; รอสักครู่ กด &amp;#039;&amp;#039;&amp;#039;Continue to install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;ทำต่อที่ข้อ 7&amp;#039;&amp;#039;&amp;#039;**&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win07.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win08.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนกระทั่ง Package Installer ขึ้นมา คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win02.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# คลิก &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win03.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอข้อความขึ้นว่า Installation successful คลิก &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win05.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดโปรแกรม ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Update&amp;#039;&amp;#039;&amp;#039; ด้านซ้าย เลือก &amp;#039;&amp;#039;&amp;#039;Check for updates&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win09.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนการ update เสร็จสิ้น ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Protection Status&amp;#039;&amp;#039;&amp;#039; จะแสดงการ Activate License สำเร็จ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win10.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== เปิดใช้คำสั่งสแกน Thumb drive หรือ External Hard disk อัตโนมัติ ===&lt;br /&gt;
# เปิดโปรแกรม ESET Endpoint Antivirus ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Set up&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ Computer คลิกสัญลักษณ์ &amp;gt; ท้ายข้อความ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win11.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดใช้งานเมนู Device Control &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win17.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ทำการ Restart เครื่อง 1 ครั้ง เพื่อให้ระบบทำงานสมบูรณ์ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win18.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== วิธียกเว้นการ Scan หรือ action file ใน Folder ที่กำหนด ===&lt;br /&gt;
# เปิดโปรแกรม ESET Endpoint Antivirus ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Set up&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ Computer คลิกสัญลักษณ์ &amp;gt; ท้ายข้อความ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win11.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู Real-time file system protection ให้คลิกที่รูปเฟืองด้านท้าย เลือก &amp;#039;&amp;#039;&amp;#039;Edit Exclusion&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win12.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Add&amp;#039;&amp;#039;&amp;#039; จะพบหน้าต่าง Add Exclusion ที่ท้ายหัวข้อ Path คลิกที่สัญลักษณ์ &amp;#039;&amp;#039;&amp;#039;...&amp;#039;&amp;#039;&amp;#039;   &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win13.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เลิอก Drive และ Folder ที่ต้องการให้ยกเว้นการ scan จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; ตามรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win14.png|border|link=]] &amp;lt;br/&amp;gt; [[File:Eset Win15.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เลือก Tab &amp;#039;&amp;#039;&amp;#039;Computer scan&amp;#039;&amp;#039;&amp;#039; และเลือกคำสั่ง &amp;#039;&amp;#039;&amp;#039;Scan your computer&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win19.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ระบบปฏิบัติการ macOS ==&lt;br /&gt;
=== การติดตั้ง ESET Agent===&lt;br /&gt;
# ไปที่ https://license.cmu.ac.th/ แล้ว Log in ด้วย CMU Account เข้าไป download file สำหรับ MacOS จะได้ไฟล์ .zip เมื่อทำการแตกไฟล์ออกมาจะเห็นไฟล์ &amp;#039;&amp;#039;&amp;#039;ESMCAgentInstaller.sh&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC01.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดโปรแกรม Terminal พิมพ์คำสั่ง &amp;#039;&amp;#039;&amp;#039;sudo -i&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; ใส่ &amp;#039;&amp;#039;&amp;#039;Password ประจำเครื่อง&amp;#039;&amp;#039;&amp;#039; จะเข้าสู่ root ของเครื่อง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC02.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จากนั้นพิมพ์คำสั่ง &amp;#039;&amp;#039;&amp;#039;cd /users&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; จะเข้าสู่ users root &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC03.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์คำสั่ง &amp;#039;&amp;#039;&amp;#039;ls&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; เพื่อตรวจสอบ user ของเครื่อง &amp;#039;&amp;#039;&amp;#039;(ในตัวอย่างคือ cnoc หากเครื่องของท่านเป็นชื่ออื่นให้แทน cnoc ด้วยชื่อนั้นในคำสั่งถัดไป)&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC04.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์คำสั่ง &amp;#039;&amp;#039;&amp;#039;cd cnoc/Downloads&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; เพื่อเข้าสู่ Downloads root &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC05.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์คำสั่ง &amp;#039;&amp;#039;&amp;#039;ls&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; เพื่อตรวจสอบว่ามี file ESMCAgentInstaller.sh อยู่ใน Downloads root จริง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC06.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์คำสั่ง &amp;#039;&amp;#039;&amp;#039;chmod 755 ESMCAgentInstaller.sh&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC07.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# พิมพ์คำสั่ง &amp;#039;&amp;#039;&amp;#039;./ESMCAgentInstaller.sh&amp;#039;&amp;#039;&amp;#039; กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC08.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อติดตั้งเรียบร้อยแล้ว จะมีข้อความขึ้นว่า &amp;#039;&amp;#039;&amp;#039;The install was successful&amp;#039;&amp;#039;&amp;#039; ให้ใช้คำสั่ง &amp;#039;&amp;#039;&amp;#039;Exit&amp;#039;&amp;#039;&amp;#039; และ กด &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039; ทำซ้ำจนกว่าจะขึ้นข้อความ &amp;#039;&amp;#039;&amp;#039;Process completed&amp;#039;&amp;#039;&amp;#039; จึงสามารถปิดโปรแกรม Terminal ได้ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC10.png|border|link=]] [[File:EST MAC11.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ไปที่ &amp;#039;&amp;#039;&amp;#039;Launchpad&amp;#039;&amp;#039;&amp;#039; เพื่อยืนยันว่า &amp;#039;&amp;#039;&amp;#039;ESET Agent&amp;#039;&amp;#039;&amp;#039; ได้รับการติดตั้งแล้ว &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EST MAC09.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การติดตั้ง ESET Endpoint Antivirus ===&lt;br /&gt;
# Double Click ที่ file &amp;#039;&amp;#039;&amp;#039;eea_osx_en.dmg&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint01.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# Double Click ที่ file &amp;#039;&amp;#039;&amp;#039;Install ESET Endpoint Antivirus&amp;#039;&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint02.png|border|link=]] [[File:EndPoint03.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Introduction&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Read me&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint04.png|border|link=]] [[File:EndPoint05.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ License กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Agree เพื่อยอมรับข้อตกลงในการใช้ซอฟต์แวร์&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint06.png|border|link=]] [[File:EndPoint07.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ Setup จากนั้นเลือก &amp;#039;&amp;#039;&amp;#039;Enable ESET LiveGrid feedback system (recommended)&amp;#039;&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint08.png|border|link=]] [[File:EndPoint09.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เลือก &amp;#039;&amp;#039;&amp;#039; Enable detection pf potentially unwanted applications&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint10.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหัวข้อ Install Type กด &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; และ&amp;#039;&amp;#039;&amp;#039;ใส่รหัสผ่านของเครื่อง&amp;#039;&amp;#039;&amp;#039; จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Install software&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint11.png|border|link=]] [[File:EndPoint12.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนกระทั่งติดตั้งโปรแกรมเสร็จ จะพบการแจ้งเตือนดังรูป เลือก &amp;#039;&amp;#039;&amp;#039;Open System Preferences&amp;#039;&amp;#039;&amp;#039; ทั้งสองครั้ง  &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint13.png|border|link=]] [[File:EndPoint14.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ในหน้า System Preferences เลือก &amp;#039;&amp;#039;&amp;#039;Security &amp;amp; Privacy&amp;#039;&amp;#039;&amp;#039;  &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:EndPoint15.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; ให้กดที่รูปแม่กุญแจด้านล่าง จากนั้นใส่รหัสผ่านของเครื่อง และกด &amp;#039;&amp;#039;&amp;#039;Unlock&amp;#039;&amp;#039;&amp;#039; และกด &amp;#039;&amp;#039;&amp;#039;Allow&amp;#039;&amp;#039;&amp;#039; ตามรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Mac Setting03.png|border|link=]] [[File:Mac Setting04.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู Privacy เลือก &amp;#039;&amp;#039;&amp;#039;Full Disk Access&amp;#039;&amp;#039;&amp;#039; แล้วกดเครื่องหมาย &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Mac Setting05.png|border|link=]] [[File:Mac Setting06.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ไปที่ &amp;#039;&amp;#039;&amp;#039;Applications&amp;#039;&amp;#039;&amp;#039; เลือก &amp;#039;&amp;#039;&amp;#039;ESET Agent&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;ESET Endpoint Anitivirus&amp;#039;&amp;#039;&amp;#039; แล้วกด &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Mac Setting07.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เลือกใช้โปรแกรมทั้งสอง กด &amp;#039;&amp;#039;&amp;#039;Quit Now&amp;#039;&amp;#039;&amp;#039; และกดที่รูปแม่กุญแจให้ล๊อคดังเดิม &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Mac Setting08.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดโปรแกรม ESET Antivirus เลือกเมนู &amp;#039;&amp;#039;&amp;#039;Update&amp;#039;&amp;#039;&amp;#039; ด้านซ้ายมือ กด &amp;#039;&amp;#039;&amp;#039;Update Module&amp;#039;&amp;#039;&amp;#039; รอจนการ update เสร็จ ตรวจสอบสถานะได้ทีเมนู &amp;#039;&amp;#039;&amp;#039;Protection status&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Mac Setting09.png|border|link=]] [[File:Mac Setting10.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== เปิดใช้คำสั่งสแกน Thumb drive หรือ External Hard disk อัตโนมัติ ===&lt;br /&gt;
# เปิดโปรแกรม ESET Endpoint Antivirus ไปที่ &amp;#039;&amp;#039;&amp;#039;Set up&amp;#039;&amp;#039;&amp;#039; คลิกเครื่องหมาย &amp;#039;&amp;#039;&amp;#039;&amp;gt;&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ &amp;#039;&amp;#039;&amp;#039;Computer&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Mac Setting11.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดใช้งาน &amp;#039;&amp;#039;&amp;#039;Device control&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Mac Setting12.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== วิธียกเว้นการ Scan หรือ action file ใน Folder ที่กำหนด ===&lt;br /&gt;
# เปิดโปรแกรม ESET Endpoint Antivirus ไปที่ &amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039; เลือกเมนู &amp;#039;&amp;#039;&amp;#039;Enter application preference&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;General&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Exclusions 1.png|border|link=]] [[File:Exclusions 2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เลือก &amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039; และกดเครื่องหมาย &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;(บวก) ดังรูป &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Exclusions 3.png|border|link=]] [[File:Exclusions 4.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กดลูกศรที่ Macintosh HD เพื่อเข้าไปเลือก &amp;#039;&amp;#039;&amp;#039;Folder&amp;#039;&amp;#039;&amp;#039; ที่ต้องการยกเว้นการสแกน เลือกแล้วกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; (ตามตัวอย่างเลือก path: /Users/itsc/Documents/Doc-CMU) &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Exclusions 5.png|border|link=]] [[File:Exclusions 6.png|border|link=]]&lt;br /&gt;
[[File:Exclusions 7.png|border|link=]] [[File:Exclusions 8.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ที่เมนู file System จะแสดง path ตรวจสอบอีกครั้งว่าถูกต้องหรือไม่จากนั้นกด &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; เสร็จการคั้งค่าทั้งหมด &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Exclusions 9.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2511</id>
		<title>Antivirus (Endpoint Protection)</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2511"/>
		<updated>2020-09-16T07:28:28Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* วิธียกเว้นการ Scan หรือ action file ใน Folder ที่กำหนด */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ This PC หรือ My Computer แล้วเลือก Properties &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32  bit หรือ 64 bit เพื่อจะได้เลือก download file ได้ถูกต้อง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://antivirus.cmu.ac.th/ แล้ว Log in ด้วย CMU Account เข้าไป download file ติดตั้งที่ต้องการ&lt;br /&gt;
# คลิกขวาที่ file ที่ download เรียบร้อยแล้ว เลือก &amp;#039;&amp;#039;&amp;#039;Run as administrator&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อพบหน้าต่าง Windows protected your PC เลือก &amp;#039;&amp;#039;&amp;#039;More Info&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Run anyway&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win01.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กรณีเครื่องคอมพิวเตอร์ มีการติดตั้งโปรแกรม Antivirus อื่นอยู่แล้ว ต้องทำการ uninstall ก่อน โดยเลือกที่ข้อความ &amp;#039;&amp;#039;&amp;#039; I want to uninstall unwanted antivirus application using ESET AV Remover&amp;#039;&amp;#039;&amp;#039; จากนั้น คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;หากไม่เคยติดตั้งโปรแกรม Antivirus ในเครื่อง ข้ามไปข้อ 6&amp;#039;&amp;#039;&amp;#039;** &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Est Win06.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่างที่แสดงโปรแกรม Antivirus ตัวเดิม คลิกเลือกที่หน้าชื่อโปรแกรม จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Remove&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Continue to install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;ทำต่อที่ข้อ 7&amp;#039;&amp;#039;&amp;#039;**&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win07.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win08.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนกระทั่ง Package Installer ขึ้นมา คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win02.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# คลิก &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win03.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอข้อความขึ้นว่า Installation successful คลิก &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win05.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดโปรแกรม ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Update&amp;#039;&amp;#039;&amp;#039; ด้านซ้าย เลือก &amp;#039;&amp;#039;&amp;#039;Check for updates&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win09.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนการ update เสร็จสิ้น ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Protection Status&amp;#039;&amp;#039;&amp;#039; จะแสดงการ Activate License สำเร็จ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win10.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== วิธียกเว้นการ Scan หรือ action file ใน Folder ที่กำหนด ===&lt;br /&gt;
# เปิดโปรแกรม ESET Endpoint Antivirus ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Set up&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ Computer คลิกสัญลักษณ์ &amp;gt; ท้ายข้อความ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win10.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ระบบปฏิบัติการ OSX ==&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2510</id>
		<title>Antivirus (Endpoint Protection)</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2510"/>
		<updated>2020-09-16T07:28:11Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* การติดตั้ง */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ This PC หรือ My Computer แล้วเลือก Properties &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32  bit หรือ 64 bit เพื่อจะได้เลือก download file ได้ถูกต้อง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://antivirus.cmu.ac.th/ แล้ว Log in ด้วย CMU Account เข้าไป download file ติดตั้งที่ต้องการ&lt;br /&gt;
# คลิกขวาที่ file ที่ download เรียบร้อยแล้ว เลือก &amp;#039;&amp;#039;&amp;#039;Run as administrator&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อพบหน้าต่าง Windows protected your PC เลือก &amp;#039;&amp;#039;&amp;#039;More Info&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Run anyway&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win01.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กรณีเครื่องคอมพิวเตอร์ มีการติดตั้งโปรแกรม Antivirus อื่นอยู่แล้ว ต้องทำการ uninstall ก่อน โดยเลือกที่ข้อความ &amp;#039;&amp;#039;&amp;#039; I want to uninstall unwanted antivirus application using ESET AV Remover&amp;#039;&amp;#039;&amp;#039; จากนั้น คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;หากไม่เคยติดตั้งโปรแกรม Antivirus ในเครื่อง ข้ามไปข้อ 6&amp;#039;&amp;#039;&amp;#039;** &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Est Win06.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่างที่แสดงโปรแกรม Antivirus ตัวเดิม คลิกเลือกที่หน้าชื่อโปรแกรม จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Remove&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Continue to install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;ทำต่อที่ข้อ 7&amp;#039;&amp;#039;&amp;#039;**&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win07.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win08.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนกระทั่ง Package Installer ขึ้นมา คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win02.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# คลิก &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win03.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอข้อความขึ้นว่า Installation successful คลิก &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win05.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดโปรแกรม ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Update&amp;#039;&amp;#039;&amp;#039; ด้านซ้าย เลือก &amp;#039;&amp;#039;&amp;#039;Check for updates&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win09.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนการ update เสร็จสิ้น ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Protection Status&amp;#039;&amp;#039;&amp;#039; จะแสดงการ Activate License สำเร็จ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win10.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== วิธียกเว้นการ Scan หรือ action file ใน Folder ที่กำหนด ===&lt;br /&gt;
# เปิดโปรแกรม ESET Endpoint Antivirus ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Set up&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ Computer คลิกสัญลักษณ์ &amp;gt; ท้ายข้อความ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== ระบบปฏิบัติการ OSX ==&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2509</id>
		<title>Antivirus (Endpoint Protection)</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Antivirus_(Endpoint_Protection)&amp;diff=2509"/>
		<updated>2020-09-16T07:26:29Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ระบบปฏิบัติการ Windows ==&lt;br /&gt;
=== ตรวจสอบ System Type ของเครื่องคอมพิวเตอร์ === &lt;br /&gt;
# คลิกขวาที่ This PC หรือ My Computer แล้วเลือก Properties &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType1.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# ดูที่หัวข้อ System Type ว่าเป็น 32  bit หรือ 64 bit เพื่อจะได้เลือก download file ได้ถูกต้อง &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:SystemType2.png|border|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== การติดตั้ง ===&lt;br /&gt;
# ไปที่ https://antivirus.cmu.ac.th/ แล้ว Log in ด้วย CMU Account เข้าไป download file ติดตั้งที่ต้องการ&lt;br /&gt;
# คลิกขวาที่ file ที่ download เรียบร้อยแล้ว เลือก &amp;#039;&amp;#039;&amp;#039;Run as administrator&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เมื่อพบหน้าต่าง Windows protected your PC เลือก &amp;#039;&amp;#039;&amp;#039;More Info&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Run anyway&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win01.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# กรณีเครื่องคอมพิวเตอร์ มีการติดตั้งโปรแกรม Antivirus อื่นอยู่แล้ว ต้องทำการ uninstall ก่อน โดยเลือกที่ข้อความ &amp;#039;&amp;#039;&amp;#039; I want to uninstall unwanted antivirus application using ESET AV Remover&amp;#039;&amp;#039;&amp;#039; จากนั้น คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;หากไม่เคยติดตั้งโปรแกรม Antivirus ในเครื่อง ข้ามไปข้อ 6&amp;#039;&amp;#039;&amp;#039;** &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Est Win06.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# จะพบหน้าต่างที่แสดงโปรแกรม Antivirus ตัวเดิม คลิกเลือกที่หน้าชื่อโปรแกรม จากนั้นกด &amp;#039;&amp;#039;&amp;#039;Remove&amp;#039;&amp;#039;&amp;#039; และ &amp;#039;&amp;#039;&amp;#039;Continue to install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt; **&amp;#039;&amp;#039;&amp;#039;ทำต่อที่ข้อ 7&amp;#039;&amp;#039;&amp;#039;**&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win07.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win08.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนกระทั่ง Package Installer ขึ้นมา คลิก &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win02.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# คลิก &amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win03.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอข้อความขึ้นว่า Installation successful คลิก &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win05.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# เปิดโปรแกรม ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Update&amp;#039;&amp;#039;&amp;#039; ด้านซ้าย เลือก &amp;#039;&amp;#039;&amp;#039;Check for updates&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win09.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
# รอจนการ update เสร็จสิ้น ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Protection Status&amp;#039;&amp;#039;&amp;#039; จะแสดงการ Activate License สำเร็จ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
=== วิธียกเว้นการ Scan หรือ action file ใน Folder ที่กำหนด ===&lt;br /&gt;
# เปิดโปรแกรม ESET Endpoint Antivirus ไปที่ Tab &amp;#039;&amp;#039;&amp;#039;Set up&amp;#039;&amp;#039;&amp;#039; ในหัวข้อ Computer คลิกสัญลักษณ์ &amp;gt; ท้ายข้อความ &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; [[File:Eset Win10.png|link=]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== ระบบปฏิบัติการ OSX ==&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2375</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2375"/>
		<updated>2020-07-10T07:27:12Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Step 3 - Setup Keepalived */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* ubuntu คือ servername&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) &lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการเพิ่มไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2374</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2374"/>
		<updated>2020-07-10T07:24:30Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Step 3 - Setup Keepalived */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* ubuntu คือ servername&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) &lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการเพิ่มไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2373</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2373"/>
		<updated>2020-07-10T07:07:20Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Step 2 - Setup Nginx TCP Balancing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* ubuntu คือ servername&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) &lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการแก้ไขไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2369</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2369"/>
		<updated>2020-07-03T04:49:33Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Step 2 - Setup Nginx TCP Balancing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) &lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการแก้ไขไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2368</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2368"/>
		<updated>2020-07-03T04:47:54Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พัง จะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดี การทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) $ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการแก้ไขไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_HAProxy_Keepalived_Nginx&amp;diff=2362</id>
		<title>Loadbalance HAProxy Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_HAProxy_Keepalived_Nginx&amp;diff=2362"/>
		<updated>2020-07-01T09:01:49Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: Sirapat moved page Loadbalance HAProxy Keepalived Nginx to Loadbalance with Keepalived Nginx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Loadbalance with Keepalived Nginx]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2361</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2361"/>
		<updated>2020-07-01T09:01:49Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: Sirapat moved page Loadbalance HAProxy Keepalived Nginx to Loadbalance with Keepalived Nginx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) $ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการแก้ไขไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=2360</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Main_Page&amp;diff=2360"/>
		<updated>2020-07-01T08:59:14Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Network Infrastructure and Server Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Network Infrastructure and Server Configuration ==&lt;br /&gt;
*[[Network monitoring | Network Monitoring by Cacti]]&lt;br /&gt;
*[[Wi-Fi_Authentication_Service_version_2019Jan | Wi-Fi Authentication service]]&lt;br /&gt;
*[[DC External trust | Log in PC with CMU IT Account]]&lt;br /&gt;
*[[Let&amp;#039;s Encrypt | การทำ https บน web server โดยใช้บริการฟรี SSL Certificate จาก Let&amp;#039;s Encrypt]]&lt;br /&gt;
*[[CMU Co-Location | บริการ Co-Location]]&lt;br /&gt;
*[[CMU Private Cloud | บริการ Private Cloud]]&lt;br /&gt;
**[[CMU_Cloud_Self_Service_Portal | คู่มือการใช้งาน self service portal]]&lt;br /&gt;
**[[Nginx | การทำ reverse proxy และ ssl offloading ด้วย nginx]]&lt;br /&gt;
*[[Fiber_Documentary | Fiber Opitic]]&lt;br /&gt;
**[[Loss Calculator | วิธีการอ่านค่าผลทดสอบสายใยแก้วนำแสง]]&lt;br /&gt;
* DNS&lt;br /&gt;
** [[Introduction_to_DNS | ความรู้เบื้องต้นเกี่ยวกับ DNS]]&lt;br /&gt;
**[[CMU caching name server | การให้บริการ dns server สำหรับการใช้งานอินเทอร์เน็ต(caching name server)]]&lt;br /&gt;
**[[Azure_DNS_Zone | การจัดการ DNS Zone บน Azure platform]]&lt;br /&gt;
* [[JumboPlusIoT | @JumboPlusIoT]]&lt;br /&gt;
* [[BackUp_Data_to_Google_Drive | การสำรองข้อมูลจาก server ไปยัง Google Drive(G-Suite for Education)]]&lt;br /&gt;
* [[CMU_OpenVPN_Implementation | การติดตั้ง OpenVPN Server โดยเชื่อมต่อด้วยบัญชีบน RADIUS Server]]&lt;br /&gt;
* [[Docker | Docker]]&lt;br /&gt;
* [[Loadbalance_HAProxy_Keepalived_Nginx | Automatically Failover with Keepalived and NGINX Loadbalance]]&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
*[[CMU OAUTH PHP CLASS]]&lt;br /&gt;
*[[CMU OAuth Angular TypeScript]]&lt;br /&gt;
&lt;br /&gt;
== Help and Support ==&lt;br /&gt;
*[[CMU_mail_to_cloud | CMU mail to Cloud]]&lt;br /&gt;
*[[Jumbo_Net_Help | คู่มือการเชื่อมต่อ Jumbo Net]]&lt;br /&gt;
*[[Microsoft_office_365_for_Education | Microsoft office 365 for Education]]&lt;br /&gt;
*[[CMU OpenVPN | คู่มือการใช้งาน CMU OpenVPN]]&lt;br /&gt;
*[[CMU DNS | คู่มือการเปลี่ยน DNS (Temp.)]]&lt;br /&gt;
*[[Microsoft Teams | การใช้งาน Microsoft Teams]]&lt;br /&gt;
*[[Google Apps for Education | สมัครใช้งาน Google Account ด้วย CMU Account]]&lt;br /&gt;
*[[Google Drive File Stream]]&lt;br /&gt;
*[[CMU Webhosting]]&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2359</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2359"/>
		<updated>2020-07-01T08:55:14Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Step 3 - Setup Keepalived */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) $ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการแก้ไขไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;16,18,21&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2358</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2358"/>
		<updated>2020-07-01T08:53:18Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Step 4 - Setup Keepalived */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) $ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Setup Keepalived ===&lt;br /&gt;
ทำการแก้ไขไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;14,22,24,27&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;14,22,24,27&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx หรือ haproxy เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_haproxy {&lt;br /&gt;
    script &amp;quot;killall -0 haproxy&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
    weight 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_haproxy&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
	<entry>
		<id>https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2357</id>
		<title>Loadbalance with Keepalived Nginx</title>
		<link rel="alternate" type="text/html" href="https://network.cmu.ac.th/wiki/index.php?title=Loadbalance_with_Keepalived_Nginx&amp;diff=2357"/>
		<updated>2020-07-01T08:52:56Z</updated>

		<summary type="html">&lt;p&gt;Sirapat: /* Step 1 - Install Packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
* การทำ High availbility จะต้องมีส่วนประกอบที่สามารถเปลี่ยนเส้นทางงานและจะต้องมีกลไกในการตรวจสอบความล้มเหลวและการเปลี่ยนระบบหากตรวจพบการหยุดชะงัก โดยจะใช้ระบบของ Keepalived&lt;br /&gt;
* Keepalived ทำหน้าที่ในการตรวจสอบสถานะของเครื่อง เมื่อเกิดการ Failover ระบบจะเปลี่ยนเส้นทางไปยังอีกระบบหนึ่งที่สแตนบายอยู่โดยอัตโนมัติ เมื่อตัวหลักหยุดทำงาน Floating IP จะย้ายไปยังตัวที่สองโดยอัตโนมัติเพื่อให้บริการต่อ โดยใช้โปรโตคอล VRRP (Virtual Router Redundancy Protocol)&lt;br /&gt;
&lt;br /&gt;
:* การตั้งค่า Priority เป็นตัวกำหนดว่าจะให้เครื่องไหนเป็น Master หรือ Backup&lt;br /&gt;
::- MASTER-MASTER คือ มีค่า Priority เท่ากัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะยังคงอยู่ที่เครื่องที่ 2&lt;br /&gt;
::- MASTER-BACKUP คือ มีค่า Priority ต่างกัน เมื่อเครื่องที่ 1 พังจะย้ายไปเครื่องที่ 2 และเมื่อเครื่องที่ 1 ดีการทำงานก็จะย้ายไปเครื่องที่ 1 แทน&lt;br /&gt;
[[File:Loadbalance 640-100.gif | link=]]&lt;br /&gt;
&lt;br /&gt;
== Lab setup ==&lt;br /&gt;
ในการทำแลปนี้จะเป็นการทำแบบ MASTER-MASTER และเมื่อเครื่องที่ 1 ขัดข้องระบบก็จะเปลี่ยนไปใช้เครื่องที่ 2 แทน โดยมีอีกส่วนทีให้เช็คค่าด้วยคือ เมื่อระบบยังดีแต่ nginx ล่มหรือขัดข้องให้ทำการเปลี่ยนเครื่องด้วยเหมือนนัน &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Network Scenario ===&lt;br /&gt;
# Server 1 : 10.0.0.1&lt;br /&gt;
# Server 2 : 10.0.0.2&lt;br /&gt;
# Virtual IP : 10.0.0.3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Install Packages ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo apt-get install keepalived&lt;br /&gt;
$ sudo apt-get install nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Setup Nginx TCP Balancing===&lt;br /&gt;
ทำการแก้ไขไฟล์ nginx configuration ใน /etc/nginx/nginx.conf ของเครื่อง server ทั้งสองให้เหมือนกัน&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo vi /etc/nginx/nginx.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script&amp;gt;&lt;br /&gt;
stream {&lt;br /&gt;
        upstream ubuntu {&lt;br /&gt;
                server 10.0.0.10:80;&lt;br /&gt;
                server 10.0.0.11:80;&lt;br /&gt;
        }&lt;br /&gt;
        server {&lt;br /&gt;
                listen 80;&lt;br /&gt;
                proxy_pass ubuntu;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท nginx เพื่อให้ค่า config ล่าสุดทำงาน &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service nginx restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ทดสอบการทำงาน Loadbalance ของ Nginx โดยเข้าผ่าน Virtual IP (10.0.0.3) &amp;lt;br&amp;gt;&lt;br /&gt;
หรือใช้คำสั่ง (Shell) $ while true; do (date +%r); curl 10.0.0.1; sleep 1; done &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:NginxBrowser.gif | link=]] [[File:NginxCURL.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 4 - Setup Keepalived ===&lt;br /&gt;
ทำการแก้ไขไฟล์ keepalived configuration ใน /etc/keepalived/keepalived.conf ของเครื่อง server&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$ sudo vi /etc/keepalived/keepalived.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*อัพเดทค่าที่ไฮไลท์ด้วยระบบของคุณ&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 1 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;14,22,24,27&amp;quot;&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.1&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.2&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Server 2 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=Vim Script highlight=&amp;quot;14,22,24,27&amp;gt;&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_instance VI_1 {&lt;br /&gt;
    state MASTER&lt;br /&gt;
    interface ens3&lt;br /&gt;
    virtual_router_id 101&lt;br /&gt;
    priority 110&lt;br /&gt;
    advert_int 1&lt;br /&gt;
    authentication {&lt;br /&gt;
        auth_type PASS&lt;br /&gt;
        auth_pass 1111&lt;br /&gt;
    }&lt;br /&gt;
    unicast_src_ip 10.0.0.2&lt;br /&gt;
    unicast_peer {&lt;br /&gt;
        10.0.0.1&lt;br /&gt;
    }&lt;br /&gt;
    virtual_ipaddress {&lt;br /&gt;
        10.0.0.3&lt;br /&gt;
    }&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
กำหนดค่าให้เริ่มทำงานอัตโนมัติเมื่อระบบรีบูต&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo systemctl enable keepalived&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ทำการรีสตาร์ท keepalived เพื่อให้ค่า config ล่าสุดทำงาน&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ sudo service keepalived restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; เพิ่มเติม &amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
ส่วนกำหนดเงื่อนไขเมื่อ nginx หรือ haproxy เกิดขัดข้องให้ทำการเปลี่ยนเส้นทางการทำงานไปยังอีกเครื่อง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
vrrp_script chk_haproxy {&lt;br /&gt;
    script &amp;quot;killall -0 haproxy&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
    weight 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
vrrp_script chk_nginx {&lt;br /&gt;
    script &amp;quot;/usr/bin/killall -0 nginx&amp;quot;&lt;br /&gt;
    interval 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
    track_script {&lt;br /&gt;
        chk_haproxy&lt;br /&gt;
        chk_nginx&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== อ้างอิง ===&lt;br /&gt;
[https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/ https://tecadmin.net/setup-ip-failover-on-ubuntu-with-keepalived/] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715 https://medium.com/@xmikex83/how-to-setup-an-highly-available-load-balancer-with-keepalived-and-haproxy-on-ubuntu-18-04-8bab7b77f715] &amp;lt;br&amp;gt;&lt;br /&gt;
[https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/ https://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/]&lt;br /&gt;
&lt;br /&gt;
== ผลการทดสอบ ==&lt;br /&gt;
ตรวจสอบการทำงานจากคำสั่ง&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ tail -f /var/log/syslog&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. ทดสอบโดยการหยุดการใช้งาน Nginx เครื่องที่ 2 (ขณะนี้เครื่องที่ 2 เป็น MASTER State) &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ sudo service nginx top&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NginxStop.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
สังเกตุเห็นได้ว่าเมื่อ Nginx พังลง เครื่องที่ 1 ก็ทำการขึ้นเป็น MASTER แทน &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. ทดสอบปิดเครื่องที่ยังเป็น MASTER อยู่ &amp;lt;br&amp;gt;&lt;br /&gt;
เครื่องที่ 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;amp; sudo poweroff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ServerPoweroff.gif | link=]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
เมื่อทำการปิดเครื่องที่ 1 เครื่องที่ 2 ก็ทำการขึ้นเป็น MASTER แทน&lt;/div&gt;</summary>
		<author><name>Sirapat</name></author>
	</entry>
</feed>