วันอาทิตย์ที่ 28 กรกฎาคม พ.ศ. 2562

ลองใช้งาน Jenkins ไว้ Backup ข้อมูลแบบอัตโนมัติ

Jenkins เป็น Automate ที่ช่วยทำเกี่ยวกับ Software เช่นการ Build, Test, Deliver แล้วก็ Deploy
แต่ความคิดที่จะใช้งานครั้งนี้คือเอามา Backup ระบบ ลองดูว่าจะสามารถใช้งานได้ดีไหม และเหมาะสมไหม



Install Jenkins

เริ่มด้วยการติดตั้งกันก่อน Jenkins ทำงานอยู่บน Java เราจำเป็นต้องติดตั้ง Java กันก่อน
ตอนนี้ผมใช้ OpenJDK 8 ในการรัน Jenkins | ข้อมูลจาก Jenkins - Getting Started
sudo apt install openjdk-8-jdk

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
java -jar jenkins.war --httpPort=8080

# เราจะเห็นรหัส สำหรับใช้ในการ Login เพื่อเข้าไปทำการติดตั้งในหน้าเว็บต่อ

จากนั้นเข้าไปที่เครื่องโดยผ่าน Port 8080 ตามที่เรากำหนดไว้เพื่อทำตามขั้นต่อการติดตั้งต่อ
ให้เราใช้รหัสที่ได้จาก Console ตอนที่เราใช้คำสั่ง "java -jar jenkins.war --httpPort=8080"

วันศุกร์ที่ 26 กรกฎาคม พ.ศ. 2562

[Linux Container] - Basic Linux Container Command


รวมคำสั่งที่ใช้งานบ่อยๆ

คำสั่งที่ใช้ในการติดตั้ง

sudo snap install lxd
sudo lxd init
sudo usermod --append --groups lxd sarankon

การจัดการเกี่ยวกับ Container

# Create new container
lxc launch images:<alias-name> <container-name>
lxc launch images:alpine/3.10 alpine

# List the list of container 
lxc list 

# Show the info of container, *snapshot show here!
lxc info <container-name>

# Start and Stop container
lxc start <container-name>
lxc stop <container-name>

# Delete container
lxc delete <container-name>
lxc delete <container-name> --force

# Run command in container
lxc exec <container-name> -- <command>
# Run apt update command
lxc exec <container-name> -- apt update
# Use bash in container
lxc exec <container-name> -- bash

# Use default editor to edit file in container
lxc file edit <container-name>/<path/file.txt>

# Push file to container
lxc file push <file> <container-name>/<path>

# Create snapshot 
lxc snapshot <container-name> <snapshot-name>

# Restore snapshot
lxc restore <container-name> <snapshot-name>

# Delete snapshot
lxc delete <container-name>/<snapshot-name>

# Create container from snapshot
lxc copy <container-name>/<snapshot-name> <new-container-name>
# lxc start <container-name> // after create from snapshot

วันเสาร์ที่ 20 กรกฎาคม พ.ศ. 2562

Raspberry Pi Zero W กับการทำ Printer Server ด้วย CUPS

อยากได้ Printer ที่สั่งผ่าน WiFi ได้ ซึ่งเคยทำมานานแล้วครั้งหนึ่งแต่ตอนนั้นลง Driver ในตัว Pi เลยและสิ่งที่ไม่มีก็คือ Driver
ผ่านไปหลายปี ตอนนี้มี Pi Zero W อยู่สามตัวไม่ได้ทำอะไร ยังไม่ได้ทำเลยเอามาลองดูใหม่ว่าจะทำได้ไหมครั้งนี้
จากการ Search Google ก็พบกับคนที่ทำไว้แล้วก็เลยลองเข้าไปอ่านแล้วก็ทำตามเขาเลยครับ
ทำ Print Server ด้วย Raspberry Pi Zero W และขอขอบคุณเจ้าของบทความครับ

ปัญหาแรกที่เจอคือพยายาม Fix IP Address ของ WiFi ยังทำไม่ได้ ไม่รู้ว่าติดตรงไหน ขอข้ามไปละกันเดี๋ยวจะไม่ได้เริ่มสักที
***ตอนนี้ใช้ Fix IP ผ่านทาง Router แทน
# Update package และ ทำการ Install CUPS
sudo apt update
sudo apt install cups

# เราสามารถใช้คำสั่ง systemctl กับ cups ได้มี service ให้เหมือนกัน
# เช่น ดูสถานะของ cups ด้วยคำสั่ง sudo systemctl status cups

# แสดงข้อมูลของอุปกรณ์ด้วยคำสั่ง lpinfo
# lpinfo - show available devices or drivers

# sudo lpinfo -v
sudo lpinfo -v | grep usb:

# ข้อมูลอุปกรณ์ที่ต่อกับ Port USB ตามนี้ เราใช้ EPSON L360
direct usb://EPSON/L360%20Series?serial=5647444B3135373352&interface=1

# ทำการตั้งค่าอุปกรณ์โดนกำหนดชื่อ Destination และ URI ของ Printer เอาถึง Serials
# lpadmin - configure cups printers and classes
# sudo lpadmin -p {destination} -v {device-uri}

sudo lpadmin -p EPSONL360 -v usb://EPSON/L360%20Series?serial=5647444B3135373352

# จากนั้นดูข้อมูลสถานะของ Printer
# lpstat - print cups status information
# sudo lpstat -p {destination} -l
sudo lpstat -p EPSONL360 -l

# ปกติถ้าพึ่งใส่ข้อมูลจะเป็น Disable
printer EPSONL360 disable since Thu 18 Jul 2019 17:40:10 BST
        reason unknown

# ทำการ Enable Printer ด้วยคำสั่ง cupsenable
# cupsdisable, cupsenable - stop/start printers and classes
# sudo cupsenable {destination}
sudo cupsenable EPSONL360

# เสร็จแล้วลองดูข้อมูลเครื่อง Printer อีกครั้งด้วยคำสั่ง lpstat
sudo lpstat -p EPSONL360 -l

# ตอนนี้ Printer ของเราเป็น Enable แล้ว
printer EPSONL360 is idle.  Enable since Thu 18 Jul 2019 17:45:10 BST

วันอังคารที่ 2 กรกฎาคม พ.ศ. 2562

Error ที่เจอกับ PHPMyAdmin และวิธีแก้ไข

Warning in ./libraries/sql.lib.php#613

ตอนนี้ใช้ PHP Version 7.2.19 บน Ubuntu 18.04 โดย PHPMyAdmin เป็น Version 4.6.6deb5 แล้วเจอ Warning

Warning in ./libraries/sql.lib.php#613
count(): Parameter must be an array or an object that implements Countable

เสร็จแล้วลองเอาไปค้นหาใน Internet ดูว่าใครเจอบ้าง ได้วีธีการแก้ปัญหามา 2 วีธี
1. แก้ไขไฟล์ sql.lib.php หรือ 2. Upgrade PHPMyAdmin
เราใช้วิธีที่ 2 แก้ไขไฟล์เพราะอ่านแล้วทำง่ายกว่าลองดูก่อนถ้าไม่ได้ผลค่อยอัพ Version