PSU12-Fog

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อ 20-08-2564
ดูแลโดย WIBOON

  • ติดตั้ง psu12-fog บน ubuntu เป็นขั้นตอนในการเตรียมให้ได้ PSU12-Fog server ISO โดยเริ่มต้นจากติดตั้ง Ubuntu 20.04 LTS server แล้วรัน shell script ที่จะติดตั้งโปรแกรม FogProject แบบใช้ค่า default พร้อมโปรแกรม isc-dhcp-server, dnsmasq, freeradius และอื่น ๆ จนได้เป็นชุดที่พร้อมใช้ (PSU12-Fog server)
  • ChangeLog


คำเตือน: รหัสผ่าน 123456 และอื่นๆ รวมทั้ง radius secret ที่ใช้ ตั้งขึ้นเพื่อให้สะดวกเท่านั้น หากนำไปติดตั้งใช้งานจริง ต้องเปลี่ยนเป็นอย่างอื่นและจดจำไว้

การติดตั้ง PSU12-Fog server

ขั้นตอน
1.ดาวน์โหลด sysresccd-psu12-fog-offline-2021-08-20.iso

  • ค่า md5sum ของ iso ไฟล์ ตรวจสอบด้วยคำสั่ง เปิด WSL (bash)
    md5sum sysresccd-psu12-fog-offline-2021-08-20.iso
    1ddeee89efb7b31c50aa858ffcc43264 sysresccd-psu12-fog-offline-2021-08-20.iso
  • iso รุ่นนี้ ใช้ ubuntu 20.04 ใช้ partition BIOS GPT และ ใช้ fogproject 1.5.9

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 ที่เราจัดการเสร็จแล้ว
  • ดาวน์โหลดล่าสุดได้ หลังจากจัด workshop
    wget -N ftp.psu.ac.th/pub/psu-installer/psu12-fog/convert2dhcpdhostsconf.sh


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.8 มีออกรุ่นใหม่เป็น 1.5.9 ก็ทำดังนี้
wget https://github.com/FOGProject/fogproject/archive/1.5.9.tar.gz
3. แตกไฟล์
tar -xzvf 1.5.9.tar.gz
4. เข้าไดเรกทอรี
cd fogproject-1.5.9/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)