PSU12-Fog
บันทึกนี้ปรับปรุงล่าสุดเมื่อ 22-11-2566 ดูแลโดย WIBOON
- ติดตั้ง psu12-fog บน ubuntu เป็นขั้นตอนในการเตรียมให้ได้ PSU12-Fog server ISO โดยเริ่มต้นจากติดตั้ง Ubuntu 20.04 / 22.04 LTS server แล้วรัน shell script ที่จะติดตั้งโปรแกรม FogProject แบบใช้ค่า default พร้อมโปรแกรม isc-dhcp-server, dnsmasq, freeradius และอื่น ๆ จนได้เป็นชุดที่พร้อมใช้ (PSU12-Fog server)
- ChangeLog
- ผู้เขียนเพจนี้ไม่ได้พัฒนาโปรแกรม fogproject เอง นำมาใช้โดยไม่ได้แก้ไขใด ๆ โปรดพิจารณาสนับสนุนผู้พัฒนาได้ที่นี่ https://fogproject.org/donate
คำเตือน: รหัสผ่าน 123456 และอื่นๆ รวมทั้ง radius secret ที่ใช้ ตั้งขึ้นเพื่อให้สะดวกเท่านั้น หากนำไปติดตั้งใช้งานจริง ต้องเปลี่ยนเป็นอย่างอื่นและจดจำไว้
เนื้อหา
1การติดตั้ง PSU12-Fog server
2การตั้งค่าเริ่มต้นใหม่ PSU12-Fog server
3การ import ข้อมูล MAC-IP ที่มีอยู่
4การใช้งานเมนู PSU12-Fog
4.1เมนูสำหรับ ดู/แก้ไข MAC-IP
4.2เมนูสำหรับ Control PC
4.3เมนู เปลี่ยนภาพ background
4.4เมนู สร้างรายงาน Windows login
4.5เมนู จัดการ freeradius user
5ตั้งค่าเพื่อให้ server มาควบคุม Windows PC
6การใช้งานคำสั่ง PSU12-Fog อื่น ๆ
7การใช้งาน FogProject
8การ upgrade fogproject server
9การติดตั้งเฉพาะ FogProject server เท่านั้น (ไม่ได้ใช้ PSU12-Fog)
10วิดีโอแนะนำการใช้โปรแกรม fogproject
การติดตั้ง PSU12-Fog server
ขั้นตอน
1.ดาวน์โหลด psu12-fog-server-latest.iso
- iso รุ่นล่าสุด ใช้ ubuntu 22.04 ใช้ partition BIOS GPT และ ใช้ fogproject 1.5.10
2.นำไฟล์ดังกล่าวไปทำให้ boot ได้ เลือกว่าจะใช้เป็น DVD หรือ USB drive
- หากต้องการใช้ Rufus ทำ bootable USB drive อ่าน blog นี้
3.Boot DVD หรือ USB Flash Drive
4.จะมีคำถามเพื่อให้ยืนยันการติดตั้ง เพราะว่าการติดตั้งจะมีการสร้างพาร์ทิชั่นและฟอร์แมตฮาร์ดดิสก์
5.เมื่อติดตั้งเสร็จ จะเห็นแถบบาร์ครบ 100% แล้วออกมาที่ prompt ให้พิมพ์ poweroff
การตั้งค่าเริ่มต้นใหม่ PSU12-Fog server
ขั้นตอน
1. ออกจากเมนูมาที่ prompt แล้วพิมพ์คำสั่ง bash psu12-fog_reconfigure.sh
2. ใส่ข้อมูลตามคำแนะนำ
3. เมื่อเสร็จสิ้นกระบวนการ ให้ reboot เครื่องเพื่อยืนยันความพร้อมใช้งาน
การ import ข้อมูล MAC-IP ที่มีอยู่
เช่น หากมีข้อมูลอยู่แล้ว สามารถนำข้อมูลเฉพาะบรรทัด host ในไฟล์ dhcpd.txt จาก PSU12-Sritrang Server เป็นต้น
ขั้นตอน
1. รูปแบบบรรทัดข้อมูลที่จะ import เข้ามาใช้กับ isc-dhcp-server ใน PSU12-Fog ก็คือ
host zone1_acer11 { hardware ethernet 08:00:27:88:88:88; fixed-address 10.0.100.8; }
2. เลือกได้ว่าข้อมูลอยู่ในไฟล์ที่ดาวน์โหลดมาแล้ว หรือ เป็น Link URL ก็ได้
- ทำคำสั่งนี้
bash convert2dhcpdhostsconf.sh จะมีตัวเลือกให้ใช้ ดังนี้
root@psu-fog:~# bash convert2dhcpdhostsconf.sh Usage 1: bash convert2dhcpdhostsconf.sh --url http://yourserver/dhcpd.txt Import group,name-servers,host to /etc/dhcp/dhcpd.hosts.conf from web address. And generate /var/www/importhosts.csv Usage 2: bash convert2dhcpdhostsconf.sh --file filename Import group,name-servers,host to /etc/dhcp/dhcpd.hosts.conf from a file. And generate /var/www/importhosts.csv Usage 3: bash convert2dhcpdhostsconf.sh --file /etc/dhcp/dhcpd.hosts.conf Only generate /var/www/importhosts.csv from /etc/dhcp/dhcpd.hosts.conf
- แบบ Usage1 คือ ไปเอาไฟล์ข้อมูลเก่ามาสร้าง
- แบบ Usage2 คือ ดาวน์โหลดหรือพิมพ์รอไว้ในไฟล์
- แบบ Usage3 (เพิ่มเติม) คือ จะสร้างไฟล์ /var/www/importhosts.csv จากไฟล์ /etc/dhcp/dhcpd.hosts.conf ที่เราจัดการเสร็จแล้ว
3. หลังจาก import บรรทัด host เข้า isc-dhcp-server แล้ว shell script นี้ได้สร้างไฟล์ importhosts.csv ใน /var/www/ ไว้ด้วย
- ให้ดาวน์โหลด http://serverip/importhosts.csv ลงมาเก็บไว้ใน local drive
4. นำเข้าไปเป็นรายชื่อ host ใน FogProject database
- โดยเข้าเบราว์เซอร์ไปที่ http://serverip/fog/management/ เลือก Import Hosts
- รูปแบบบรรทัดในไฟล์ที่จะ import ได้ อย่างน้อยที่สุดต้องมีดังนี้
MAC,COMNAME,DESCRIPTION,,,
ตัวอย่าง importhosts.csv ที่ทำไว้ให้
98:ee:xx:99:37:a0,zone1_acer11,Imported by PSU12-FOG,,, 98:ee:xx:99:37:a1,zone1_acer12,Imported by PSU12-FOG,,, 98:ee:xx:99:37:a6,zone2_acer24,Imported by PSU12-FOG,,,
การใช้งานเมนู PSU12-Fog
ขั้นตอน
1. เมื่อ boot server เสร็จ login ด้วยบัญชี mama จะให้ใส่รหัสผ่านเพื่อเป็นสิทธิ root แล้วเข้าสู่เมนู
- แต่หากอยู่ที่ prompt ให้ใช้คำสั่ง bash mainmenu.sh
2. กด Esc กลับไปก่อนหน้า
เมนูสำหรับ ดู/แก้ไข MAC-IP
viewdhcpdconf view dhcpd.conf viewdhcpdhostsconf view dhcpd.hosts.conf editdhcpdhostsconf edit dhcpd.hosts.conf
- viewdhcpdconf สำหรับดูได้อย่างเดียว หากต้องการแก้ไข(ซึ่งไม่น่าจะจำเป็น)ให้ใช้คำสั่ง vi /etc/dhcpd/dhcpd.conf
- viewdhcpdhostsconf สำหรับดูได้อย่างเดียว
- editdhcpdhostsconf สำหรับแก้ไขไฟล์ dhcpd.hosts.conf เพื่อจัดการ MAC-IP, DNS Name server ของแต่ละ zone
เมนูสำหรับ Control PC
windowsconfig set windows username sshkeygenforserver gen key for server sshkeysendtoclient send key to client othermenu control pc i.e.shutdown,sendmessage editzonename edit /home/papa/zonename.txt installpapacontrolpc setup papa control pc menu papa ssh papa@localhost to papa control pc
- windowsconfig สำหรับตั้งค่าจะใช้ username อะไรในการ control Windows ค่าเริ่มต้นคือ Administrator และ
เลือกว่าได้ติดตั้งโปรแกรม sshd server ใดไว้ ระหว่าง Cygwin กับ WSL - sshkeygenforserver สำหรับสร้าง ubuntu server ssh key
- sshkeysendtoclient สำหรับส่ง ubuntu server ssh key ไปยังเครื่อง Windows ต้นฉบับ
- othermenu สำหรับงานต่าง ๆ ในการ control Windows
- editzonename สำหรับใส่คำอธิบายให้แต่ละ zone
- installpapacontrolpc สำหรับสร้างเมนูให้ user papa ทำหน้าที่ควบคุม
- papa สำหรับเข้าทำงานเป็น user papa
เมนู เปลี่ยนภาพ background
copyimagetobgpng change bg.png
- copyimagetobgpng สำหรับใช้ไฟล์รูปภาพใน /home/prnews/png/ แทนรูปภาพ default
เมนู สร้างรายงาน Windows login
reporttickergenall generate all report
- reporttickergenall สำหรับปรับให้รายงานเป็นปัจจุบัน หากตั้ง crontab ก็ไม่ต้องทำเมนูนี้
- สามารถใช้ crontab ของ ubuntu server เพื่อให้รันทุกๆช่วงเวลาที่ต้องการ
ตัวอย่างเช่น ทุก 60 นาที เป็นต้น
เลือกเมนู crontab หรือ พิมพ์ crontab -e เมื่ออยู่ที่ prompt
*/60 * * * bash /root/scripts/reporttickergenall.sh
เมนู จัดการ freeradius user
freeradiusmanagement freeradius management
- freeradiusmanagement สำหรับจัดการ freeradius user account เลือกว่าจะใช้ username ใด (เกี่ยวข้องกับ PSU-radius)
ตั้งค่าเพื่อให้ server มาควบคุม Windows PC
ที่เครื่อง server อยู่ที่หน้าหลัก mainmenu
- เลือกเมนู windowsconfig
(1)ตั้งค่าชื่อ user ใน Windows ที่ใช้ติดตั้ง Cygwin หรือ WSL (ถ้าใช้ user ชื่อ john ก็ใส่ชื่อ john แทนคำว่า Administrator)
(2)ตั้งค่าจะใช้ Cygwin หรือ WSL - เลือกเมนู sshkeygenforserver
เข้าหน้าจอ zone1: Select your job เลือก sshkeygenforserver กด Enter ทุกคำถาม - เลือกเมนู sshkeysendtoclient
จะมีหน้าจอเพื่อให้ใส่ IP Address ของเครื่อง Windows PC ที่เป็นต้นฉบับ
การใช้งานคำสั่ง PSU12-Fog อื่น ๆ
ขั้นตอน
1. เมื่ออยู่ที่ prompt ใช้คำสั่ง ls
2. เมื่อต้องการเปลี่ยนเฉพาะ IP ใช้คำสั่ง
bash changeserveriponly.sh
3. เมื่อต้องการเปลี่ยน Title Heading ของ Report
bash changereportheading.sh
4. ข้อมูลที่ควรรู้
- จะมีไฟล์ psu12-fog.info รวบรวมโครงสร้างไดเรกทอรีและไฟล์ที่ใช้ ใช้คำสั่ง
more psu12-fog.info - ไดเรกทอรีที่เกี่ยวข้อง
/root/scripts
/var/www/index.php
/var/www/ticker
/var/www/test
/var/www/myservice
/etc/dhcpd
/etc/dnsmasq.d
/etc/freeradius
/var/log/freeradius - บัญชีผู้ใช้ที่ถูกสร้างขึ้นอัตโนมัติ
mama
papa
prnews
sendfile
5. เมื่อต้องการสร้าง linux user account เพิ่มจำนวนมาก ๆ บนเครื่องนี้
- ทำดังนี้
cd bulkuseradd
bash bulkuseradd.sh
ทำตามคำแนะนำ
การใช้งาน FogProject
ขั้นตอน
1. เข้าเว็บเบราว์เซอร์ ไปที่ URL http://serverip/fog/management/ จากนั้น login เข้าใช้
2. การเก็บต้นฉบับ จะเรียกว่า capture
3. การโคลนนิ่ง จะเรียกว่า deploy
4. ข้อมูลที่ควรรู้
- ไดเรกทอรีที่เกี่ยวข้อง
/tftpboot
/var/www/fog
/images
/var/lib/mysql/fog/ - ไฟล์รูปภาพ background
/var/www/fog/service/ipxe/bg.png
การ upgrade fogproject server
ขั้นตอน
1. ออกจากเมนูมาที่ prompt แล้วพิมพ์คำสั่ง cd fog
2. ดาวน์โหลดเวอร์ชั่นใหม่ เช่น มีออกรุ่นใหม่เป็น 1.5.10 ก็ทำดังนี้
wget https://github.com/FOGProject/fogproject/archive/1.5.10.tar.gz
3. แตกไฟล์
tar -xzvf 1.5.10.tar.gz
4. เข้าไดเรกทอรี
cd fogproject-1.5.10/bin
5. รันคำสั่ง
./installfog.sh -y
6. สำหรับ psu12-fog ให้ปรับรูปภาพตอนบูต ทำคำสั่งนี้
cp -p ~/fog/psu12-fog_bg.png /var/www/fog/service/ipxe/bg.png
chown fogproject:www-data /var/www/fog/service/ipxe/bg.png
หมายเหตุ มีบักในไฟล์ ของ 1.5.8 แก้ไขตามนี้
vi /lib/systemd/system/FOGSnapinReplicator.service
แก้สลับจากเดิมที่ผิด /usr/bin/php env ให้เป็น /usr/bin/env php ตามข้อมูลที่ถูกต้องด้านล่างนี้
[Service] Type=simple Restart=always RestartSec=1 ExecStart=/usr/bin/env php /opt/fog/service/FOGSnapinReplicator/FOGSnapinReplicator
แล้วทำข้างล่างนี้ หรือ จะ reboot server ก็ได้
systemctl daemon-reload systemctl start FOGSnapinReplicator
การติดตั้งเฉพาะ FogProject server เท่านั้น (ไม่ได้ใช้ PSU12-Fog)
- ติดตั้ง FOG Project บน Ubuntu 18.04 Server
- ติดตั้ง FOG Project แบบใช้ Proxy DHCP
- ติดตั้ง FOG Project แบบมี DHCP Server ด้วย
- สำหรับเปลี่ยน IP ของ Fog Server หลังจากติดตั้งไปแล้ว
หากยังไม่มี script นี้ ให้ download shell script
sudo su
wget http://ftp.psu.ac.th/pub/psu-installer/psu12-fog/downloadchangeserveriponly.sh
bash downloadchangeserveriponly.sh
วิดีโอแนะนำการใช้โปรแกรม fogproject
1 โคลนนิ่ง 1 เครื่อง https://www.youtube.com/watch?v=fRDg5s_b038
2 โคลนนิ่ง หลายเครื่องพร้อมกัน https://www.youtube.com/watch?v=8V0YklrQaRA