[บันทึกกันลืม] JupyterHub Authenticated with OIDC

ต่อจากตอนที่แล้ว [บันทึกกันลืม] JupyterHub ด้วย Docker คราวนี้ ถ้าต้องการให้ ยืนยันตัวตนด้วย OpenID เช่น PSU Passport เป็นต้น ก็ให้ทำดังนี้ ในไฟล์ jupyterhub_config.py ใส่ configuration ประมาณนี้ อธิบายเพิ่มเติมนิดนึง จากนั้น ถ้าทุกอยากเรียบร้อยดี ก็จะได้หน้าจอประมาณนี้ (อันนี้ทำเร็ว ๆ ยังไม่ได้ใส่ HTTPS) เมื่อคลิก Sign in with OAuth2.0 ก็จะวิ่งไปหา IdP ที่ตั้งไว้ (ในที่นี้ใช้ Authentik ของหน่วยงาน ซึ่ง แยกออกจากของมหาวิทยาลัยอีกที — เดี๋ยวเขียนวิธีการทำอีกที) ไหลไปเรื่อย ๆ ก็จะเจอหน้า Authentication ของมหาวิทยาลัย แล้วก็กลับมาที่ IdP ของเรา จากนั้นก็เข้าใช้งาน JupyterHub ได้ตามปรกติ หวังว่าจะเป็นประโยขน์ครับ

Read More »

[บันทึกกันลืม] JupyterHub ด้วย Docker

นาน ๆ ทำที บันทึกไว้ก่อน รันคำสั่งนี้ เพื่อ ติดตั้ง JupyterHub รุ่นที่ทดลอง 5.2.1 ใน Docker จะสร้าง user ชื่อ admin และ jupyteruser01 โดย admin จะเป็น Administrator ส่วน jupyteruser01 ให้เป็น user ทั่วไป ตรงนี้จะสร้าง user อยู่ภายใน docker container container นี้ จะชื่อว่า ‘jupyterhub01’ เข้าถึงได้ที่ port 8000 (หากต้องการเปลี่ยนก็ทำได้) จากนั้น สร้างไฟล์ jupyterhub_config.py อย่างน้อย ต้องมีการตั้งค่าดังนี้ บรรทัดล่างสุดนั้น เป็นการอนุญาตให้ทุกคนที่เข้าใช้งานได้ และให้ ‘admin’ มีหน้าที่เป็น Admin จากนั้น ให้ copy file นี้ เข้าไปใน Docker ด้วยคำสั่ง ซึ่งคนที่เป็น admin จะมีหน้า Admin ให้ใช้งาน จากการคลิก File > Control Panel > Admin หน้าตาดังภาพ admin สามารถเข้าไปใน Session ของผู้ใช้คนอื่นได้ เหมาะสำหรับใช้กับงานด้าน การเรียนการสอน หวังว่าจะเป็นประโยชน์ครับ

Read More »

[บันทึกกันลืม] AnythingLLM with Claude.ai

AnythingLLM เป็นเครื่องมือทำ RAG (retrieval-augmented generation) โดยอาศัย LLM (Large Language Model) ต่าง ๆ เช่น Llama, Mistral, Gemma ซึ่งสามารถใช้แบบ Local LLM ได้ ผ่าน Ollama หรือ LM Studio และกลุ่มที่เป็น Cloud LLM อย่าง GPT-4o, Gemini และ Claude Sonet เป็นต้น RAG ต่างจากการใช้ Chatbot คือ เราสามารถให้ LLM ทำความเข้าใจ Context หรือ บริบท ของข้อมูลในองค์กรเราได้ ซึ่งแน่นอนว่า Local LLM ย่อมเป็นส่วนตัวกว่า แต่ ในบางกรณี เราก็ต้องการพลังที่เหนือกว่าของ Cloud LLM ในที่นี้จะ Claude.ai ซึ่งเราต้องมี API key โดยทำตามขั้นตอนดังนี้ 0. เริ่มจาก Getting started – Anthropic แล้วคลิกที่ Console 1. จากนั้นเข้าสู่ระบบ ของผมใช้ Google Account จากนั้น กรอก Organization เพื่อ Create Account 2. คลิกที่ Get API keys แล้วก็ Create API 3. ใส่ API Key name ก็จะได้ API Key มา, เก็บในที่ที่ปลอดภัย แล้วก็เอาไปใส่ใน AnythingLLM ดังภาพ (เลือก LLM Provider ให้ตรงกับที่ต้องการ ในที่นี้เป็น Anthropic) และเลือกตัว Model ที่ต้องการใช้ จากนั้นกด Save Change 4. ลองกลับมาใช้ AnythingLLM ซึ่งตอนนี้จะเชื่อมกับ Anthropic Claude.ai แล้ว แต่เป็นบริการที่ต้องเสียตังค์อ่ะนะ ไปเติมเงินแล้วค่อยมาใช้ 555 หวังว่าจะเป็นประโยชน์ครับ

Read More »

[บันทึกกันลืม] วิธีเพิ่ม Node (Ubuntu 22.04) เข้า Kubernetes cluster (version 1.26.15)

หากเป็น node เก่า อย่าลืมทำ [บันทึกกันลืม] K8S เอา node เดิม join กลับเข้ามาไม่ได้ เป็นปัญหาเพราะ CNI Adding a new node running Ubuntu 22.04 to Kubernetes version 1.26.15 cluster. Hope this help.

Read More »

[บันทึกกันลืม] Virtualization ด้วย KVM และ Cockpit

จุดประสงค์: เพื่อให้ใช้งาน physical server ได้เต็มประสิทธิภาพ พอดีใช้ Kubernetes จนถึง ลิมิต 110 pods / node ทำไงดี CPU/Ram เหลือ เลยคิดจะทำ Virtualization ขึ้นไปอีกชั้น จากนั้นก็เอามา join เข้า cluster อีกเครื่อง ทำให้สร้าง 220 pods / nodes เอาว่า เป็นเพื่อการทดลอง แต่ใครมี server ใช้งานไม่เต็มประสิทธิภาพ จะใช้ vmware ก็เกรงจะต้องเสียตังค์ หรือ ไม่อยากไปใช้ promox ve ซึ่งไม่รู้เมื่อไหร่จะต้องเสียตังค์ ก็ลองดูวิธีนี้ได้ ติดตั้ง KVM บน Ubuntu 22.04 ติดตั้ง Cockpit สร้าง VM ใช้งาน cockpit http://server-ip-address:9090

Read More »