Category: Open Source Software & Freeware

  • สร้าง VM OpenNebula miniONE on KVM

    หลังจากติดตั้ง server เสร็จแล้ว ตอนนี้ เรามาลองสร้าง VM กันสัก 1 ตัว หลักการคือ สร้าง image ที่เป็น disk เปล่า ๆ จากนั้นสร้าง VM Template ให้มาใช้ image นี้ และกำหนดค่า VM Template ให้เสร็จ แล้วสร้าง VM จาก VM Template นั้น

    ขั้นตอน

    1. สร้าง Image เปล่า สมมติตั้งชื่อว่า DISK8GB กำหนด Type คือ Generic storage datablock และเป็นแบบ Empty disk image กำหนดขนาด 8 GB
    2. สร้าง Image ที่เป็น CD-ROM สมมติตั้งชื่อว่า iso-ubuntu-focal กำหนด Type คือ Readonly CD-ROM โดย Upload จากฮาร์ดดิสก์ และเลือก ubuntu-20.04.1-live-server-amd64.iso
    3. ตอนนี้เตรียมของ 2 อย่าง พร้อมแล้ว
    4. สร้าง VM Template ชื่อ Install new ubuntu ใช้ Hypervisor ชนิด KVM กำหนด Memory 768 MB (เพิ่มได้) 
    5. กำหนดค่า Storage ให้ DISK0 ใช้ image ชื่อ DISK8GB
    6. กำหนดค่า Network ใช้อันที่มีอยู่แล้วคือ vnet (สร้างเองได้ภายหลัง)
    7. คลิก Create เพื่อสร้าง VM Template
    8. จะได้ดังรูป
    9. สร้าง VM จาก VM Template ที่สร้างในข้อที่แล้ว คลิกที่ Instances > VMs และคลิกปุ่ม +
    10. เลือก VM Template ชื่อ install new ubuntu
    11. จะได้ VM ชื่อ install new ubuntu-0
    12. แต่ตอนนี้ เรายังไม่ได้ใส่ CD-ROM เพื่อติดตั้ง ให้คลิก Power Off hard
    13. คลิกที่ VM 
    14. คลิกที่ Storage และ คลิก Attach disk
    15. คลิกเลือก image ที่เป็น CD-ROM
    16. ตอนนี้ เรามี disk และ CD-ROM แล้ว
    17. คลิก Config เพื่อเข้าไป Update configuration
    18. ตั้งค่า OS&CPU Boot order ให้ boot CD-ROM
    19. เปิด VM
    20. เข้าไปทำงานทางหน้า Web console 
    21. รอ
    22. ติดตั้ง Ubuntu Server ลงใน VM
      (ติดตั้ง Ubuntu Server 20.04 ใน VM ของ miniONE KVM)

    ตอนต่อไปเป็นขั้นตอนติดตั้ง one-context เพิ่มลงใน VM อ่านต่อเรื่องนี้ สร้าง VM OpenNebula miniONE on KVM ตอนที่ 2 add one-context

  • ติดตั้ง Ubuntu Server 20.04 ใน VM ของ miniONE KVM

    เป็นขั้นตอนสร้าง VM ที่เป็น Ubuntu Server 20.04 ใน VM ของ miniONE KVM

    ขั้นตอน

    1. เลือกใช้ภาษาอังกฤษในการติดตั้ง
    2. เลือก keyboard layout 
    3. ตั้งค่า IP Address แบบ static เลือก Interface name และ คลิก Edit IPv4
    4. เลือก Method แบบ Manual
    5. ใส่ค่า IP Address
    6. ไปต่อ คลิก Done
    7. ไปต่อ คลิก Done
    8. ตั้ง Mirror address มาที่ http://th.archive.ubuntu.com/ubuntu
    9. Storage configuration เลือก Use an entire disk 
    10. ไปต่อ คลิก Done
    11. Confirm destructive action เลือก Continue
    12. กำหนดค่า name, username และ password
    13. เลือก Install OpenSSH server และคลิก Done
    14. Featured Server Snaps ไม่เลือก ไปต่อ คลิก Done
    15. รอ
    16. เมื่อเสร็จ คลิก Reboot
    17. ในขั้นตอน downloading and installing security updates หากนานมาก จะไม่รอ ก็คลิก Cancel update and reboot
    18. เมื่อกลับเข้าใช้งาน ต้อง update เองสักรอบ เพื่อลงโปรแกรมอื่น ๆ ได้
    19. และอาจเป็นผลให้ติดตั้ง ssh host key ไม่สำเร็จ ตรวจสอบด้วยคำสั่ง ls -l /etc/ssh
    20. แก้ไขโดยสร้าง ssh host key ด้วยคำสั่ง ssh-keygen -A

    จบขั้นตอนสร้าง Ubuntu Server

  • ติดตั้ง OpenNebula miniONE on KVM

    เป็นวิธีการติดตั้งเซิร์ฟเวอร์สำหรับสร้าง VM โดยเลือกใช้โปรแกรมชื่อ OpenNebula miniONE ซึ่งจะมีตัวเลือกว่า จะติดตั้งเพื่อใช้งานกับ Hypervisor ชนิดใด เช่น KVM, vCenter, LXD หรือ Firecracker เป็นต้น ในที่นี้เลือก KVM

    ขั้นตอน

    1. หลังจากเปิดเข้าใช้งาน Ubuntu Desktop เราจะต้องใช้ Terminal เพื่อทำคำสั่งต่าง ๆ โดยคลิกที่ไอคอน 9 จุด แล้วเลือก All ให้แสดงทุกโปรแกรม และเลือก Terminal
    2. ติดต้้ง openssh-server หากยังไม่ได้ติดตั้ง ด้วยคำสั่ง sudo apt install openssh-server
    3. พักหน้าต่าง Terminal ไว้ก่อน ตอนนีัเราจะไปดาวน์โหลด Opennebula miniONE โดยคลิกเปิดเบราว์เซอร์ Firefox และค้นหาคำว่า opennebula
    4. คลิกเลือก miniONE on KVM จากหน้าต่างของเว็บไซต์ opennebula.io
    5. จะมีบรรรทัดคำสั่งให้เราคัดลอกไปใช้ในการติดตั้ง
    6. ดาวน์โหลดตัวโปรแกรมติดตั้ง
    7. รันคำสั่งติดตั้ง คือ sudo bash minione
    8. จะมีการตรวจสอบสักครู่แล้วแจ้งให้พิมพ์ yes เพื่อยืนยันการติดตั้ง
    9. เมื่อเสร็จจะได้ user และ password ให้จดไว้ (จะเก็บอยู่ใน /var/lib/one/.one/one_auth)
    10. เตรียมไว้ว่าต่อไปจะใช้ TCP Port 80 สำหรับ web server ที่เป็น VM จึงต้องแก้ไข default port จาก 80 เป็นอย่างอื่น ตั้งค่า :port: 8080 แก้ไขที่ไฟล์ /etc/one/sunstone-server.conf
    11. รันคำสั่ง sudo systemctl restart opennebula-sunstone.service
    12. หลังจากติดตั้ง miniONE จะมีการจัดการค่าทาง network ใหม่ ทำให้ไม่ได้ IP ตรวจสอบด้วยการรันคำสั่ง ip addr 
    13. เราต้องแก้ไขให้ Ubuntu Desktop ได้รับ DHCP IP ดังนี้ ตั้งค่า renderer: networkd ตั้งชื่อ ethernets ที่ใช้ และ dhcp4: yes แก้ไขที่ไฟล์ /etc/netplan/01-network-manager-all.yaml 
    14. เสร็จแล้วต้องรันคำสั่ง sudo netplan apply และตรวจสอบดูค่า IP
    15. จัดการแก้ไขปรับแต่งให้ Ubuntu Desktop ทำ enable packet forwarding for IPv4 เข้าออก VM ได้ ตั้งค่า net.ipv4.ip_forward=1 โดยแก้ไขที่ไฟล์ /etc/sysctl.conf
    16. รันคำสั่ง sudo sysctl -p
    17. เข้า Browser ไปที่ URL http://NOTEBOOK_IP:8080 และ Login เข้าใช้ด้วย username คือ oneadmin และ password ที่ได้รับ 
    18. จะเห็นหน้า Dashboard มี VM 1 ตัว 
    19. ในขั้นตอนติดตั้ง miniONE จะใส่ CentOS7 มาให้เป็นตัวอย่าง ทั้ง image และ VM template   พร้อมใช้งาน (ถ้าเราใช้ CentOS) 
    20. เนื่องจากผมจะไม่ใช้ จึงขอลบทิ้ง

    จบในส่วนการติดตั้ง

  • ติดตั้ง Ubuntu Desktop 20.04

    ขอแนะนำวิธีการติดตั้ง Ubuntu Desktop เพื่อเตรียมใช้เล่าเรื่องราวในตอนต่อ ๆ ไป เพื่อให้เห็นภาพว่า เราสามารถติดตั้งระบบปฏิบัติการ Ubuntu ที่เป็น Graphic User Interface ได้อย่างง่าย ๆ เลือก minimal installation ให้มีแค่ Firefox Web Browser

    ขั้นตอน

    1. นำ USB Drive ที่มี Ubuntu Desktop ไป Boot ที่โน้ตบุ๊ค
    2. หน้าต่างแรก จะมีคำถามให้เลือก เลือก Install Ubuntu
    3. ค่า Keyboard layout ใช้ค่า default คือ English 
    4. จะเลือกติดตั้งแบบ Minimal installation
    5. เครื่องนี้พร้อมให้ล้างฮาร์ดดิสก์ได้ ก็จะเลือก Erase disk and install Ubuntu
    6. กด Continue เพื่อยืนยันติดต้้งลงฮาร์ดดิสก์ได้
    7. เลือกชื่อเมือง Bangkok
    8. ตั้งชื่อผู้ใช้ ชื่อเครื่อง ชื่อ username และ password
    9. เริ่มติดตั้ง  รอ
    10. เมื่อเสร็จ คลิก Restart Now
    11. ดึง USB Drive ออก แล้วกด Enter
    12. เมื่อ Boot เข้าได้สำเร็จ จะมีหน้าต่างให้เลือก username ที่ใช้
    13. ในครั้งแรกที่เข้าใช้ จะมีตัวเลือกว่า จะใช้ user แบบ Single Sign-On ของ Ubuntu หรือ จะใช้อย่างอื่นก็เลือกเอา หรือจะไม่ทำอะไรก่อน ก็คลิก Skip
    14. คลิก Next อีก 2 หน้าต่าง


    15. หน้านี้ หากเรายอมให้ข้อมูล Location ก็คลิกปุ่มเพื่อสไลด์เปิด
    16. คลิก Done 
    17. จะมีหน้าต่าง Software Updater ให้คลิก Install Now
    18. ทุกครั้งที่จะมีการเพิ่ม/ลบโปรแกรม จะต้องให้ข้อมูลว่า เรามีสิทธิจัดการ โดยใส่รหัสผ่าน ทุกครั้ง
    19. รอให้ update เสร็จ
    20. เมื่อเสร็จ คลิก Restart Now
    21. เมื่อ Boot กลับเข้ามาในครั้งหลังนี้ ก็ใช้งานได้แล้ว โดยคลิกที่ปุ่ม 9 จุด เพื่อดูว่ามีอะไรให้ใช้งานบ้าง

  • สร้าง Bootable USB Drive ด้วยโปรแกรม Rufus for Windows

    บทความนี้แนะนำวิธีติดตั้งซอฟต์แวร์ระบบปฏิบัติการด้วย USB Drive ที่ลงโปรแกรมให้สามารถ Boot ตอนนี้เป็นเวอร์ชั่น 3.13 แล้ว ก็มาอัปเดตอีกสักครั้ง ตัวอย่างนี้คือทำ Bootable USB Drive Ubuntu 20.04 Desktop 64 bit ครับ

    ขั้นตอน

    1. ดาวน์โหลดโปรแกรมจากเว็บไซต์นี้ https://rufus.ie/
    2. ได้ไฟล์ rufus-3.13.exe มา ให้คลิกเปิด (Open)
    3. จะมีถามย้ำจาก Windows ให้ยืนยัน Yes
    4. จะมีถามจากโปรแกรมว่าจะยอมให้มีการตรวจเช็คเวอร์ชั่นใหม่ ๆ หรือไม่ ให้ยืนยัน No ไม่จำเป็น
    5. จะได้หน้าต่างโปรแกรม หากเสียบ USB Drive ไว้ ก็จะแสดงรายการขึ้นมาว่า เดิมเป็นอะไร
    6. ให้คลิก SELECT เพื่อเลือก .iso file เช่น ubuntu-20.04.1-desktop-amd64.iso
    7. ให้คลิก START เพื่อทำการสร้าง Bootable USB Drive ในตัวอย่างคือ Ubuntu 20.04 Desktop 64 bit
    8. ไฟล์ rufus-3.13.exe จะอยู่ใน Downloads จะใช้ครั้งต่อไปก็แค่คลิกเปิด (Open) หรือจะย้ายไปไว้ใน Desktop ก็ได้

  • ซอฟต์แวร์สำหรับการโคลนนิ่งวินโดวส์ในห้องบริการคอมพิวเตอร์

    นำเรื่องนี้มาแนะนำกันอีกสักครั้ง เผื่อว่าใครกำลังมองหาซอฟต์แวร์ฟรีไว้ใช้ในการโคลนนิ่งฮาร์ดดิสก์ของเครื่องคอมพิวเตอร์ในห้องบริการคอมพิวเตอร์ ผมเพิ่งมีเวลาอัปเดตเป็นเวอร์ชั่นล่าสุด มีอยุ่ 2 ตัว เอาไปทดลองใช้ดูได้ครับ

    PSU12-Sritrang Server

    ผมได้พัฒนาชุดจัดการโคลนนิ่งวินโดวส์ในห้องบริการคอมพิวเตอร์ มีคณะ/หน่วยงานในม.อ. ใช้งานชุดนี้กันอยู่ ชุดนี้มีชื่อเรียกว่า PSU12-Sritrang Server เหมาะสำหรับโคลนนิ่งเครื่องวินโดวส์แบบธรรมดาทั่วไป ใช้ BIOS MBR ควบคุมการทำงานด้วย dialog menu เป็น Text-based

    แบบที่ 1 ดาวน์โหลด .ISO มาเขียนลง USB Drive เพื่อใช้เป็นตัวติดตั้งที่ทำขั้นตอนติดตั้ง Ubuntu Server พร้อมโปรแกรม

    ขั้นตอน

    1. ดาวน์โหลดโปรแกรมชื่อ Rufus
    2. ดาวน์โหลด .ISO ชื่อ psu12-sritrang-server-latest.iso
    3. รันโปรแกรม Rufus เพื่อเขียน .ISO ลง USB Drive
    4. นำ USB Drive ไปบูตที่เครื่อง Server
    5. ทำตามคำแนะนำโปรแกรมในขณะติดตั้ง
      อ่านเพิ่มเติม

    แบบที่ 2 มีอยู่แล้วหรือต้องการติดตั้ง Ubuntu Server เอง ดาวน์โหลด shell scripts เพื่อติดตั้งโปรแกรมเพิ่ม

    ขั้นตอน

    1. login และ เข้าทำงานด้วยสิทธิ root
      sudo su –
    2. ดาวน์โหลด shell script
      wget ftp.psu.ac.th/pub/psu-installer/psu12-sritrang_setup.sh
    3. เริ่มขั้นตอนติดตั้งด้วยคำสั่ง
      bash psu12-sritrang_setup.sh
      อ่านเพิ่มเติม

    PSU12-Fog Server

    ชุดที่สองนี้ ผมได้นำ FogProject มาใส่ใน Ubuntu Server และ ตั้งชื่อว่า PSU12-Fog Server เหมาะสำหรับโคลนนิ่งเครื่องวินโดวส์ได้ทุกแบบ ทั้งแบบ BIOS MBR, BIOS GPT และ UEFI GPT ควบคุมการทำงานทางหน้าเว็บเพจของ FogProject

    แบบที่ 1 ดาวน์โหลด .ISO มาเขียนลง USB Drive เพื่อใช้เป็นตัวติดตั้งที่ทำขั้นตอนติดตั้ง Ubuntu Server พร้อมโปรแกรม

    ขั้นตอน

    1. ดาวน์โหลดโปรแกรมชื่อ Rufus
    2. ดาวน์โหลด .ISO ชื่อ psu12-fog-server-latest.iso
    3. รันโปรแกรม Rufus เพื่อเขียน .ISO ลง USB Drive
    4. นำ USB Drive ไปบูตที่เครื่อง Server
    5. ทำตามคำแนะนำโปรแกรมในขณะติดตั้ง
      อ่านเพิ่มเติม

    แบบที่ 2 มีอยู่แล้วหรือต้องการติดตั้ง Ubuntu Server เอง ดาวน์โหลด shell scripts เพื่อติดตั้งโปรแกรมเพิ่ม

    ขั้นตอน

    1. login และ เข้าทำงานด้วยสิทธิ root
      sudo su –
    2. ดาวน์โหลด shell script
      wget ftp.psu.ac.th/pub/psu-installer/psu12-fog_setup.sh
    3. เริ่มขั้นตอนติดตั้งด้วยคำสั่ง
      bash psu12-fog_setup.sh
      อ่านเพิ่มเติม

    References:

  • เรื่องเล่าจากการทำ ubuntu do-release-upgrade

    มี ubuntu server 18.04.5 ที่มี open source software ชื่อ fogproject เวอร์ชั่นที่ใช้คือ 1.5.8 ซึ่งใช้สำหรับการ cloning Windows ในห้องบริการคอมพิวเตอร์ บางคนคงได้ใช้งานอยู่ และก็มี freeradius 3.0 ติดตั้งไว้ด้วย

    อยากจะขยับ ubuntu server จาก 18.04.5 ไปเป็น 20.04 ก็เลยทำคำสั่ง do-release-upgrade ในเครื่องทดสอบ ทำจนเสร็จได้ ubuntu 20.04 สมใจ ในระหว่างขั้นตอนการทำ upgrade นั้นก็จะมีหน้าคำถามว่า จะใช้ไฟล์คอนฟิกของโปรแกรมที่ตรวจพบว่าเรามีการไปแก้ไขไว้ จะเลือกที่ใช้อยู่ปัจจุบัน หรือ จะใช้ของใหม่ตาม package ก็เลือกว่า ใช้ของที่ใช้อยู่ ซึ่งก็ค่อยมาแก้ไขว่า ของใหม่มีอะไรใหม่บ้าง ให้ดูเทียบกับ ไฟล์.dpkg-list

    ตอนนี้เราได้ ubuntu 20.04 แล้ว ลองตรวจสอบดูสิว่า fogproject กับ freeradius ใช้งานได้มั้ย เอาหละสิ fogproject รันไม่ขึ้น ลอง reinstall ด้วยคำสั่ง ./installfog.sh -y ก็เจอฟ้องว่า “Stopping web service failed ค้นหาใน google ก็พบคำตอบว่า fogproject รุ่น 1.5.8 ไม่รองรับ ubuntu 20.04 ซึ่งหากใครเจอปัญหาตอนที่ fogproject 1.5.9 ยังไม่ออกมาให้ใช้ –มีหนาวแน่นอน– เพราะมันจะรันไม่ได้เลย ตรงนี้น่ากังวลมาก ๆ และควรระวังมาก ๆ แต่บังเอิญว่า ตอนเวลานี้ fogproject รุ่น 1.5.9 ออกมาเพื่อแก้ปัญหาใช้กับ ubuntu 20.04 ได้แล้ว พร้อมให้ download แล้วที่เว็บไซต์

    จะมีปัญหาเกี่ยวกับ php ด้วย คือ มันจะไม่ได้ php7.4 โดยทันที ซึ่งเป็นรุ่นที่มาพร้อมกับ ubuntu 20.04 หากต้องการลงเพิ่มด้วยคำสั่ง apt install php7.4 อันนี้อยากบอกว่า ซอฟต์แวร์ของคุณอาจจะต้องใช้ php เวอร์ชั่นเก่า ก็ควรระมัดระวังด้วย

    หลังจากนั้นก็ไปเอา fogproject 1.5.9 มาติดตั้ง จะทำการติดตั้ง php7.4 ให้อัตโนมัติหากยังไม่มี php7.4 ซึ่งก็ทำให้ใช้งาน fogproject ได้ดังเดิม

    ต่อมาตรวจสอบ freeradius ก็พบว่ามีการเปลี่ยนเวอร์ชั่นขึ้นเล็กน้อยเช่นกัน และในขั้นตอน upgrade นั้น เราก็เลือกว่าจะใช้ไฟล์คอนฟิกที่เราแก้ไขไว้ ผลคือ ม้นไม่สร้าง symbolic link file ไปยังไดเรกทอรี /etc/freeradius/3.0/sites-enabled ซึ่งจะต้องมี 2 ไฟล์คือ defaults กับ inner-tunnel ซึ่งก็จะสร้างได้ด้วยคำสั่ง ln -s โดยเราต้องสร้างไดเรกทอรีนั้นขึ้นมาก่อน แล้ว cd เข้าไปในไดเรกทอรีนั้น แล้วใช้คำสั่ง ln -s ../sites-available/default default และ ln -s ../sites-available/inner-tunnel inner-tunnel

    ตอนนี้ก็ start service freeradius ได้แล้ว

    มาลองทดสอบ freeradius user ผ่าน webservice ก็เจอว่า SoapClient error เนื่องจากไม่มี php7.4-soap ก็ติดตั้งด้วยคำสั่ง apt install php7.4-soap ทดสอบอีกทีด้วย username กับ password ของมหาวิทยาลัย ใช้กับ freeradius ได้

    (มาเล่าต่อจากเมื่อวาน)

    พอจะใช้งาน PXE boot เอ้าเจอปัญหา Windows Client เปิดเครื่องขึ้นมาแล้ว Boot from network ติดต่อกับ server เราไม่ได้ เกิดอะไรขึ้น ก็ไปเช็คดู dhcp server ในเครื่องซิว่าทำงานมั้ย ด้วยคำสั่ง service isc-dhcp-server status ก็โอเค เช็คดู dnsmasq ที่ทำหน้าที่เป็น proxy dhcp ซิ ด้วยคำสั่ง service dnsmasq status มัน error ต้องออกแรงค้นหาอีกแล้ว ก็ไปเจอเรื่องแรก ตอนที่ทำ do-release-upgrade จะมีคำถามว่า ใน ubuntu 20.04 นี้ จะเปลี่ยนเวอร์ชั่นของ LXD ก็มีบรรทัด recommended ก็เลือกตามนั้น แล้วมันก็ส่งผลมามี symbolic link file ใน /etc/dnsmasq.d/lxd ซึ่งชี้ไปยังไฟล์ที่ไม่มีอยู่จริง แสดงว่ามีการเปลี่ยนแปลงอะไรสักอย่างแล้ว ก็ลบไฟล์ lxd นี้ออก ก็ยังรันไม่ได้ ก็กลับไปดูว่าใน server เวอร์ชันก่อนหน้าที่จะทำ do-release-upgrade นั้น ข้างในไฟล์ lxd เขียนไว้ว่าอย่างไร ก็พบว่ามี 2 บรรทัดคือ

    bind-interfaces
    except-interface=lxdbr0

    ผมก็สร้างไฟล์ชื่อ etc.conf ที่มี 2 บรรทัดนั้น แล้วก็ start dnsmasq ด้วยคำสั่ง service dnsmasq start ก็ผ่าน ใช้งานได้

    เล่นเอาเหนี่อย เพราะว่า options ชื่อ bind-interfaces ทำให้ dnsmasq ทำงานได้ปรกติ มันมาพร้อม lxd ใน ubuntu 18.04 นั่นเอง แต่ใน ubuntu 20.04 เหมือนว่า lxd จะเปลียนอะไรบางอย่าง จริง ๆ lxd เราก็ไม่ได้ใช้นะ ลบออกได้

    (จบส่วนที่มาเพิ่มในวันที่ 2)

    จะเห็นได้ว่า การทำ ubuntu do-release-upgrade นั่น อาจเจออะไรแบบที่เล่ามานี้ครับ ขอให้ระมัดระวังกันด้วยนะ

    สรุปว่าได้ ubuntu 20.04.1, fogproject1.5.9, php7.4, freeradius 3.0.20

    เพจที่บอกว่า fogproject 1.5.8 ไม่รองรับ ubuntu 20.04
    https://forums.fogproject.org/topic/14440/stopping-web-service-failed

    ขอบคุณครับ

  • Canonical Livepatch Service

    Canonical Livepatch Service

    Apply critical kernel patches without rebooting.

    โฆษณา

    • Fixes are applied automatically, without restarting your system
    • Reduces downtime, keeping your Ubuntu LTS systems secure
      and compliant
    • Included as part of all Ubuntu Advantage for Infrastructure
      support packages
    • ใครควรใช้ เครื่อง ubuntu 16.04 ขึ้นไป
    • เริ่มได้
    • เปิดเว็บ https://auth.livepatch.canonical.com/ เลือก Ubuntu user แล้วกดปุ่ม Get your Livepatch token

    ก็จะไปหน้านี้

    • กด Accept all and visit site
    • ก็ให้ log in ให้เรียบร้อย หากยังไม่ได้สมัคร user ของ Ubuntu one ก็ให้เลือก I don’t have an Ubuntu One account เพื่อสร้าง account

    หลังจากกด Create account ให้ไปเช็คเมล์ที่ใช้ลงทะเบียนแล้วกด verify

    • ก็จะได้หน้าที่มี Token สำหรับลงทะเบียน
    • ติดตั้งโปรแกรมชื่อ canonical-livepatch ด้วยคำสั่ง
    sudo snap install canonical-livepatch
    • เมื่อติดตั้งเสร็จได้ผลลัพธ์ว่า

    canonical-livepatch 9.5.5 from Canonical✓ installed

    • แล้วต่อด้วยคำสั่ง copy จากในเว็บได้เลย
    sudo canonical-livepatch enable $TOKEN
    • โดย $TOKEN คือค่าที่ได้จากในหน้าเว็บ
    • ก็จะได้ผลว่าประมาณว่า

    Successfully enabled device. Using machine-token: xxxxxxxxxxx

    • เสร็จ!!! แบบง่ายๆ และงงๆ
    • และสำหรับ 1 email address สามารถใช้ token เดียวกันได้ 3 เครื่อง สำหรับผู้ใช้ฟรี!!
    • ตั้งแต่ใช้มาประมาณ 1 ปีครึ่ง ก็ไม่รู้ว่ามีอัพเดตอะไรบ้างเหมือนกัน กรั่กๆ
    • ตรวจสอบสถานะของ canonical-livepatch ด้วยคำสั่ง
    sudo canonical-livepatch status --verbose
    • ก็จะได้ประมาณว่า
    • จบขอให้สนุก

    อ้างอิง

    https://ubuntu.com/security/livepatch

  • How to apache2 HTTP/2

    • วันนี้อัพเกรตเครื่อง licensing เป็น 20.04.1 เลยมาดูว่ามีอะไรที่ควรเปลี่ยนอีกบ้าง ก็มี HTTP/2 นี่ละ ออกมาหลายปีแล้วยังไม่ได้เริ่มใช้งาน เท่าที่ตรวจสอบเว็บเซิร์ฟเวอร์ฝั่ง windows เป็น http/2 เกือบหมดแล้ว

    https://thanwa.medium.com/http-2-คืออะไร-แตกต่างจาก-http-1-1-อย่างไร-5dfb14e46ae4

    HTTP/1.1 และ HTTP/2 ต่างกันอย่างไร
    • เริ่มได้
    • ตรวจสอบก่อนว่า server ใช้ http/2 หรือไม่ทำได้โดยใช้ web developer tool บน web browser เช่น Firefox กด F12
    Web Developer

    คลิกหัวข้อ Network ซึ่งในครั้งแรกจะไม่สามารถดูได้ว่าใช้ http/2 แล้วหรือไม่ ให้คลิกขวาดังรูป แล้วเลือก Protocol

    Web Developer

    จะได้เป็น

    HTTP/1.1

    จะเห็น http/1.1 ในช่อง Protocol ถ้าเป็น http/2 จะได้ดังภาพ

    HTTP/2
    • ขั้นตอนต่อไปนี้ทำบน Ubuntu 20.04.1 อาจใช้ได้กับ 18.04.x ด้วยเช่นกัน
    • เริ่มด้วยการเปิด module ของ apache2 ที่ชื่อ http2 ด้วยคำสั่ง
    sudo a2enmod http2
    • เมื่อตรวจสอบแฟ้ม /etc/apache2/mods-enabled/http2.conf (ด้วย editor ที่ชื่นชอบ) จะพบว่ามีข้อความต่อไปนี้อยู่แล้ว
    Protocols h2 h2c http/1.1
    • โดยปกติ Http/1 จะถูกเรียกใช้ก่อนเสมอ เว้นแต่ว่า web browser นั้นจะรองรับ http/2 แต่เราต้องการ http/2 ถูกเลือกก่อนจึงต้องกำหนดตามนั้น
    • แต่ web browser ก็มีการเลือก Protocol เองด้วยเพื่อเป็นการบังคับให้เลือก ตามลำดับของ server ให้ใส่ข้อความต่อไปนี้เพิ่มลงไป
    ProtocolsHonorOrder On

    *** จากการทดสอบพบว่า web browser สมัยใหม่เลือก http/2 ก่อนอยู่แล้ว ไม่จำเป็นต้องใส่ก็ได้ เพราะงั้นแค่เปิดดูแล้วก็ออกจากแฟ้ม

    • รีสตาร์ท apache2 ด้วยคำสั่ง
    sudo systemctl restart apache2
    • ตรวจสอบว่า เป็น http/2 แล้วหรือไม่ด้วยคำสั่ง
    curl -I --http2 -s https://domain.com/ | grep HTTP

    ได้ผลดังภาพ

    curl

    แปลว่า http/2 ทำงานแล้ว

    • ทีนี้เว็บเรามันทำด้วย mod_php ต้องเปลี่ยนมาใช้ PHP-FPM
    • ติดตั้ง php7.4-fpm เพิ่มด้วยคำสั่ง
    sudo apt install -y php7.4-fpm
    • ปิดการใช้งาน mod_php ด้วยคำสั่ง
    sudo a2dismod php7.4
    • ปิดการใช้งาน apache mpm_prefork ด้วยคำสั่ง
    sudo a2dismod mpm_prefork
    • หลังจากนั้นเปิด การทำงานของ mpm_event, proxy_fcgi และ setenvif
    sudo a2enmod mpm_event proxy_fcgi setenvif
    • เปิดการทำงานของ php7.4-fpm ด้วยคำสั่ง
    sudo systemctl start php7.4-fpm
    • ให้ php7.4-fpm ทำงานทุกครั้งที่รีสตาร์ท
    sudo systemctl enable php7.4-fpm
    • เปิดการทำงานของ php7.4-fpm ใน apache2
    sudo a2enconf php7.4-fpm
    • เริ่มการทำงานของ apache2 ใหม่
    sudo systemctl restart apache2
    • ทดสอบว่าเป็น http/2 แล้วด้วยคำสั่ง
    curl -I --http2 -s https://domain.com/ | grep HTTP

    ได้ผลดังภาพ

    • จริงๆ ตรวจสอบด้วย web browser ก็ได้ แต่อยากอวด command line
    • จบขอให้สนุก

    อ้างอิง

    https://www.tecmint.com/enable-http2-in-apache-on-ubuntu/

    https://httpd.apache.org/docs/2.4/howto/http2.html