Ubuntu etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Ubuntu etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Eylül 2026 Pazartesi

Bir Günde Neler Yaptık: Ubuntu'da Claude Code İçin Agentik Altyapı Kurulumu

 Bugün Ubuntu masaüstümde, Claude Code'un etrafına gerçek bir "agent yönetim" altyapısı kurduk. Normalde MacBook'ta cmux kullanıyorum ama bu Linux makinesinde onun bir karşılığı yoktu; gün, tam da bu boşluğu doldurma çabasıyla geçti.

Cmux'un Linux Karşılığını Aradık

cmux, birden fazla Claude Code oturumunu tek pencerede paralel yönetmek için macOS'e özel bir terminal. Linux'ta doğrudan bir karşılığı olmadığından tmux ve git worktree mantığıyla çalışan alternatifleri karşılaştırdık: dmux, Herdr, amux... İçlerinden dmux'u seçtik, çünkü cmux'un iş akışına en sadık olanı oydu.

dmux, Node.js ve tmux Kurulumu

Kurulum kolay olmadı. Önce tmux ve Node.js'i apt ile kurduk, ardından dmux'u npm ile global olarak yükledik. dmux artık bir git projesinin köküne girip n tuşuna bastığımızda otomatik olarak yeni bir git worktree açıp içine bir kodlama ajanı (Claude Code, Codex veya OpenCode) başlatabiliyor.

Paperclip: Çok Daha Büyük Bir Kontrol Paneli

Sonra Paperclip adlı, çok daha üst seviye bir agent orkestrasyon aracını kurduk. dmux tek repo içinde birkaç paralel pane açan hafif bir araçken, Paperclip onlarca ajanı bir şirket gibi yönetmek için org chart, bütçe takibi ve denetim kayıtları sunuyor. Kurulum sırasında Node.js sürüm uyumsuzluğu ve resmi kurulum betiğindeki eski bir bayrak hatasıyla karşılaştık; ikisini de çözüp Paperclip'i sistemin arka planında sürekli çalışan bir servis haline getirdik.

Telefondan Devam: Claude Remote Control

Günün en pratik parçası bu oldu: Claude Code'un resmi Remote Control özelliğini bu makinede etkinleştirdik. Artık telefonumdan veya başka bir bilgisayardan claude.ai/code ya da Claude mobil uygulaması üzerinden, bu Ubuntu masaüstündeki oturuma bağlanıp devam edebiliyorum; SSH'a falan gerek kalmadan.

Her Şey Otomatik Açılıyor

n8n'in Docker üzerinde makine açıldığında otomatik ayağa kalkması bize ilham oldu. Aynı mantığı Paperclip ve Claude Remote Control için de kurduk: ikisi de artık systemd kullanıcı servisi olarak enabled ve linger ayarlı, yani ben oturum açmasam bile makine yeniden başladığında otomatik çalışmaya başlıyorlar.

Sırada Ne Var?

Bugünün özeti bu kadar. Yarın kaldığımız yerden devam edeceğiz: ilk gerçek dmux projesini oluşturup Paperclip'in onboarding sürecini tamamlayacağız. Bu yazının kendisi de zaten bu yeni altyapının ilk meyvesi; Claude'a bugünü bir makaleye dönüştür ve yayınla dedim, o da tarayıcıyı açıp Blogger'a girdi, doğru blogu seçti ve bu satırları yazıp yayınladı.

Kali VM'im Neden Siyah Ekranda Kaldı?

Bir VM kurulumu, bir de bulmaca

Bugün epeydir ertelediğim bir işi hallettim: KVM/libvirt üzerinde bir Kali Linux sanal makinesi kurmak. Docker'ı, virt-manager'ı falan zaten kurmuştum; sıra Kali'yi ayağa kaldırmaya gelmişti. Kurulum kendi başına dert değildi; asıl macera VM'i ilk açtığım anda başladı.

Siyah ekran ve gizemli bir "disk yok" mesajı

virt-manager üzerinden Kali VM'ini başlattım ve ekran karardı. Kaldı. Bir süre sonra ortaya çıkan mesaj aşağı yukarı şunu diyordu: kullanılabilir bir disk/boot medyası bulunamıyor.

İlk tepkim klasikti: "Kurulumu bir yerde yanlış yaptım herhalde." ISO'yu yeniden mi indirsem, VM'i sıfırdan mı oluştursam diye düşünmeye başladım. Ama panikle silip yeniden kurmak yerine önce VM'in gerçekte nasıl yapılandırıldığına bakmaya karar verdim.

VM'in tanımına baktığımda iş netleşti

virsh dumpxml kali-linux ile VM'in libvirt tanımını çıkarınca durum netleşti. Üç şey aynı anda eksikti:

  1. Sanal disk (kali-linux.qcow2) tanımlıydı ama içi muhtemelen bomboştu — Kali hiç kurulmamıştı.
  2. CD-ROM sürücüsüne (hdb) hiçbir ISO dosyası takılı değildi; disk sanki boş bir tepsiydi.
  3. Boot sırası sadece hd olarak ayarlanmıştı — CD-ROM'dan boot etme seçeneği tanımda bile yoktu.

Yani VM her açılışta doğrudan boş diskten boot etmeye çalışıyordu. Üzerinde işletim sistemi olmayan bir diskten boot etmeye çalışınca da ekran kararıp "disk yok" mesajı veriyordu. Aslında kurulumu hiç başlatmamıştım, sadece boş bir kutuyu açmayı deniyordum.

Çözüm: ISO'yu tak, boot sırasını düzelt

Neyse ki elimde zaten indirilmiş bir Kali kurulum ISO'su vardı, sadece yanlış yerdeydi (buna aşağıda ayrıca değiniyorum). İki komutla düzeldi:

# ISO'yu CD-ROM sürücüsüne tak
virsh --connect qemu:///system change-media kali-linux hdb \
/var/lib/libvirt/images/kali-linux-2026.2-installer-amd64.iso --insert --config
# Boot sırasını önce CD-ROM, sonra sabit disk yap
virt-xml kali-linux --edit --boot cdrom,hd --update

change-media boş CD-ROM tepsisine ISO'yu yerleştirdi, virt-xml --boot cdrom,hd da VM'e önce CD-ROM'dan, olmazsa diskten boot etmesini söyledi. VM'i tekrar başlattığımda siyah ekran yerine Kali'nin kurulum menüsü karşıladı.

Önemli not: Kurulum bitince boot sırasını tekrar hd,cdrom şeklinde çevirmek gerekiyor; yoksa VM her açılışta kurulum menüsüne düşmeye devam eder.

Bonus bulmaca: ISO neden yanlış klasördeydi?

Bu işin ortasında kendimi başka bir soruyu çözerken buldum: ISO'ları düzenli tutmak için /home/panel/isos diye ayrı bir klasör (libvirt dilinde "storage pool") oluşturmuştum, ama gerçek ISO dosyası orada değil, libvirt'in varsayılan havuzu olan /var/lib/libvirt/images içindeydi. Kendi klasörümde sadece bir SHA256SUMS dosyası duruyordu.

Dosya sahiplikleri ipucuydu: ISO, libvirt-qemu:kvm kullanıcısına aitti — yani benim panel hesabımla değil, libvirtd servisi tarafından indirilip kaydedilmişti. Muhtemel açıklama şu: VM oluşturma sihirbazında kurulum medyasını seçerken/indirirken hedef havuzu elle isos olarak değiştirmedim, sihirbaz da varsayılan olarak seçili gelen default havuzuna (/var/lib/libvirt/images) kaydetti. Kendi klasörümü oluşturmuş olmam, sihirbazın onu otomatik kullanacağı anlamına gelmiyormuş.

Çıkarımlar

  • "Disk yok" veya siyah ekran hatası genelde gerçekten disk eksik demek değil; çoğu zaman boot medyası bağlı değildir ya da boot sırası yanlıştır.
  • Panikleyip VM'i silip yeniden kurmak yerine önce virsh dumpxml ile gerçek yapılandırmaya bakmak, sorunu dakikalar içinde teşhis etmemi sağladı.
  • Storage pool oluşturmak tek başına yetmiyor; VM sihirbazında medyayı seçerken hedef havuzu bilerek seçmek gerekiyor, yoksa dosyalar varsayılan havuza düşebiliyor.
  • virsh ve virt-xml gibi komut satırı araçları, virt-manager arayüzünde tıklamaktan daha hızlı ve daha açıklayıcı — özellikle sorun teşhisinde.

Sonuçta bugün hem Kali VM'i ayağa kaldırdım hem de kendi depolama düzenimdeki küçük bir tutarsızlığı fark ettim. Küçük ama öğretici bir gündü.

3 Eylül 2026 Perşembe

Arduino'nun 299 Dolarlık Edge AI Devrimi: Neden Sıradan Kullanıcıların Dikkatini Çekiyor?

Sanayiden Masaüstüne Geçiş: Bir Sıradanlık mı, Yoksa Güçlü Bir Alternatif mi?

Arduino firmasının piyasaya sürdüğü VENTUNO Q, ilk bakışta endüstriyel otomasyon, robotik ve kenar yapay zekâ (edge AI) projelerini hedefleyen özel bir geliştirme kartı olarak görünüyor. Ancak bu kartın 299 USD başlangıç fiyatı ve teknik donanımı, sıradan kullanıcının günlük bilgisayar ihtiyacını karşılayacak bir potansiyel taşıyor. Ağustos ayının sonlarında başlatılan ön siparişlerin kısa sürede tükenmesi durum, bu cihazın sadece mühendisler tarafından değil, teknoloji meraklıları tarafından da büyük ilgiyle karşılandığını gösteriyor. Peki, bu cihazın sıradan bir kullanıcı için ne gibi avantajları olabilir?

Esprili Olarak "İki Beyin": Hem Zeka Hem Hassasiyet

Cihazın kalbinde, Qualcomm Dragonwing IQ-8275 çip seti yer alıyor. Bu çip, "dual-brain" (çift beyin) mimarisiyle öne çıkıyor. Bir yandan octa-core Qualcomm Kryo CPU ve Adreno 623 GPU genel amaçlı işlemleri yönetirken, diğer yandan Hexagon NPU yapay zekâ iş yüklerini üstleniyor. 40 TOPS hıza kadar ulaşabilen bu NPU, cihazın yerel olarak görüntü-dil modelleri, konuşma tanıma ve jest tanıma işlemlerini gerçekleştirmesini sağlıyor. Sıradan bir kullanıcı için bu ne demek? Geliştiriciler, bu gücü kullanarak yerel dil çeviricileri, akıllı asistanlar veya güvenli ve çevrimdışı çalışan görsel tanıma araçları oluşturabiliyor.

Buna ek olarak, cihazda gerçek zamanlı motor kontrolü için ayrı olarak bir STM32H5F5 mikrodenetleyici bulunuyor. Bu durum, cihazın hem ağır yazılımsal işlemleri hem de hassas fiziksel kontrolleri aynı anda yönetebilmesini sağlıyor. Sıradan bir kullanıcı, bu özellikleri kullanarak ev otomasyon sistemleri veya hobi amaçlı robotik projeler geliştirebilir.

Güçlü Donanım: RAM, Depolama ve Bağlantılar

VENTUNO Q, 16 GB LPDDR5 RAM ve 64 GB eMMC depolama alanıyla geliyor. Bu depolama, işletim sistemi, yapay zekâ modelleri ve yerel verileri barındırmak için yeterli alan sunuyor. Ancak, eksik kalan yer için cihazda M.2 NVMe Gen4 genişletme bağlantısı mevcut. Bu özellik, sıradan kullanıcıların cihazı daha hızlı depolama birimleriyle donatarak masaüstü bilgisayarı gibi kullanmalarına olanak tanıyor.

Bağlantı seçenekleri açısından da cihaz zengin bir yelpaze sunuyor. Wi-Fi 6, Bluetooth 5.3 ve 2.5 Gb Ethernet portu ile yüksek hızlı ağ bağlantısı sağlanıyor. Ekran çıkışları olarak HDMI ve USB-C DisplayPort bulunuyor. Ayrıca, iki adet USB 3.0 Type-A portu ve güç girişi için bir barrel jack mevcut. Bu bağlantılar, cihazın sıradan bir kullanıcı tarafından klavye, fare, harici disk ve monitörler ile kolayca kullanılabilmesini sağlıyor.

Kameralar ve Endüstriyel Bağlantılar

Cihazın yapay zekâ odaklı tasarımı, özellikle görme (vision) iş yükleri üzerinde yoğunlaşmış durumda. Bu nedenle, cihazda üç adet MIPI-CSI bağlantı noktası ve JMEDIA başlığı üzerinden iki adet daha MIPI-CSI bağlantısı bulunuyor. Bu bağlantılar, sıradan kullanıcıların cihazın üzerine yüksek çözünürlüklü kameralar takarak akıllı güvenlik kamerası veya görüntü işleme uygulamaları geliştirmesine olanak tanıyor.

Ayrıca, 40-pin GPIO başlığı, mevcut Arduino ve Raspberry Pi eklentilerinin kullanılmasını sağlıyor. Bu durum, sıradan kullanıcının elindeki mevcut modülleri ve sensörleri bu yeni kartla kullanabilmesini kolaylaştırıyor. CAN-FD desteği ise profesyonel motor kontrolörleri ve endüstriyel ağlar için bağlantı imkânı sunuyor. Sıradan bir kullanıcı için bu özellik, araç modifikasyonları veya gelişmiş hobi projeleri için önemli bir avantaj teşkil ediyor.

Yazılım Desteği: Ubuntu ve Ötesi

VENTUNO Q, Ubuntu 24.04 LTS sürümü önceden yüklü olarak geliyor. Bu durum, sıradan kullanıcının cihazı kolayca ayarlayıp kullanabilmesini sağlıyor. Arduino App Lab IDE de cihazda hazır bulunuyor. Ayrıca, cihaz Zephyr Project gerçek zamanlı işletim sistemini de destekliyor. Debian desteği de yılın ilerleyen dönemlerinde gelecek. Bu geniş yazılım desteği, cihazın farklı kullanım senaryolarına uyumlu olmasını sağlıyor.

Canonical firmasının Bulut ve Yarı İletken Ortaklıklarından Sorumlu Başkan Yardımcısı Cindy Goldberg, Arduino ve Qualcomm Technologies ile yakın çalışarak "endüstriyel sınıf" bir yazılım yığını sunduklarını belirtiyor. Önceden yüklü, üretim hazır Ubuntu ortamı sayesinde prototipleme ile ticari ölçek arasındaki engeller kaldırılıyor. Bu durum, geliştiriciler ve sıradan kullanıcılar için cihazı daha erişilebilir ve kullanışlı hale getiriyor.

Cihazın ön siparişleri Arduino Store üzerinden tükenmiş durumdadır. Ancak, bazı bayilerde hala sipariş verebilmek mümkün olabilir. Sıradan bir kullanıcı için bu cihaz, genel amaçlı bir tek kartlı bilgisayar (SBC) değil; ancak Kodi çalıştırmak, retro emülatörler kullanmak veya Firefox üzerinden YouTube izlemek gibi amaçlar için daha hızlı ve uygun fiyatlı alternatifler de mevcuttur. Yine de, VENTUNO Q'nun sunduğu yapay zekâ ve endüstriyel özellikler, onu sıradan kullanımdan öteye taşıyan bir cihaz haline getiriyor.

Kaynak: omgubuntu.co.uk

3 Şubat 2026 Salı

Ubuntu K3s Üzerine Rancher Kurulumu: A'dan Z'ye Tam Rehber

Bu yazıda, Ubuntu sunucular üzerinde çalışan K3s (Lightweight Kubernetes) cluster'ınıza Rancher panelini nasıl kuracağınızı, kurulum sırasında karşılaşabileceğiniz "timeout" ve yazım hatalarını nasıl çözeceğinizi adım adım anlatıyorum.

1. Sistem Yapısı ve Hazırlık

Kurulumu yaptığımız Ubuntu yapısı şu şekildedir:

  • OS: Ubuntu 24.04 LTS
  • Cluster: 1 Master (10.10.10.13), 2 Worker (10.10.10.14-15)
  • Donanım: Intel i7 İşlemci, 16GB RAM

2. Cert-Manager Kurulumu (Kritik Adım)

Rancher, SSL sertifikalarını yönetmek için cert-manager'a ihtiyaç duyar. Bu adım eksik olursa Rancher podları asla "Ready" konumuna geçmez.

# Helm repolarını ekleyin
sudo helm repo add jetstack https://charts.jetstack.io
sudo helm repo update

# Cert-manager kurulumu
sudo helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --set installCRDs=true \
  --kubeconfig /etc/rancher/k3s/k3s.yaml

3. Rancher Kurulumu ve Karşılaşılan Hatalar

Burada en sık yapılan hata, kurulumun hızlı biteceğini düşünmektir. Rancher, arka planda büyük "git" depolarını klonladığı için sabırlı olmalısınız.

💡 Çözülen Sorun 1: "Udo" Komutu Hatası
Terminalde sudo yazarken yanlışlıkla udo yazmak, sistemin alakasız paketler yüklemesine neden olabilir. Bu durumda CTRL + C ile işlemi durdurup sudo apt remove udo ile temizlik yapmalısınız.
# Rancher Stable reposunu ekleyin
sudo helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
sudo helm repo update

# Dikey Kurulum Komutu (Performans Odaklı)
sudo helm upgrade --install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.local \
  --set bootstrapPassword=admin \
  --set replicas=1 \
  --create-namespace \
  --kubeconfig /etc/rancher/k3s/k3s.yaml \
  --wait --timeout 15m

4. Sorun Giderme: "Context Deadline Exceeded"

Eğer kurulum 15 dakikayı aşarsa Helm hata verebilir. Bu durumda podların durumunu kontrol etmek gerekir:

# Pod durumuna bakın
sudo kubectl get pods -n cattle-system --kubeconfig /etc/rancher/k3s/k3s.yaml

Eğer podlar 0/1 Running ise ve loglarda "Restoring git repositories" görüyorsanız, podları şu komutla tazeleyerek döngüden çıkarabilirsiniz:

sudo kubectl delete pod -l app=rancher -n cattle-system --kubeconfig /etc/rancher/k3s/k3s.yaml

5. Panele Erişim

Podlar 1/1 READY olduğunda, bilgisayarınızın hosts dosyasına şu satırı ekleyin:

10.10.10.13 rancher.local

Tarayıcıdan https://rancher.local adresine giderek belirlediğiniz şifre ile giriş yapabilirsiniz.

Sonuç: Artık tüm Kubernetes cluster'ınızı görsel bir panel üzerinden yönetmeye hazırsınız!

9 Ocak 2026 Cuma

Proxmox Ubuntu Master Template Hazırlık Rehberi V2

Proxmox Ubuntu Master Template Hazırlık Rehberi V2

Bu rehberde, Proxmox üzerinde saniyeler içinde yeni makineler oluşturabilmek için optimize edilmiş, her şeyiyle hazır bir Ubuntu Altın Şablon (Master Template) oluşturmayı öğreneceğiz.

1. Sistem Güncelleme ve Temel Araçlar

Sistemi güncel tutmak ve yönetim araçlarını yüklemek ilk adımımız:

# Sistem güncelleme
sudo apt update && sudo apt upgrade -y

# Temel araçları (İsviçre Çakısı) yükle
sudo apt install -y curl wget vim net-tools htop tree unzip git software-properties-common bash-completion

2. Bağlantı ve Güvenlik Ayarları

SSH erişimini garantilemek ve Firewall engellerini kaldırmak için:

# SSH kurulumu ve aktif edilmesi
sudo apt install openssh-server -y
sudo systemctl enable --now ssh

# UFW Güvenlik Duvarını kapatma ve maskeleme
sudo ufw disable
sudo systemctl mask ufw

3. Proxmox Entegrasyonu ve Saat Ayarı

Proxmox paneli üzerinden makineyi yönetebilmek için QEMU Guest Agent kritiktir:

QEMU

# QEMU Guest Agent kurulumu
sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent

# Zaman dilimi ayarı (Türkiye)
sudo timedatectl set-timezone Europe/Istanbul

4. Kritik Adım: Machine-ID Sıfırlama

Klonlanan makinelerin ağda aynı IP'yi alıp çakışmaması için benzersiz kimliği temizliyoruz:

sudo truncate -s 0 /etc/machine-id
sudo rm /var/lib/dbus/machine-id
sudo ln -s /etc/machine-id /var/lib/dbus/machine-id

5. Final: Mühürleme ve Template Dönüşümü

Makineyi kapatıp şablona dönüştürmeden önceki son temizlik:

# Temizlik ve Kapatma
sudo apt autoremove -y && sudo apt clean
history -c && history -w
sudo poweroff
Son Adım: Proxmox arayüzünde makineye sağ tıklayın ve "Convert to Template" seçeneğini seçin. Artık bu şablondan "Linked Clone" oluşturarak saniyeler içinde yeni Ubuntu sunucuları ayağa kaldırabilirsiniz!
Son olarak yeni bir makine ayağa kaldırıldığında yapılması gereken adımlar sadece bunlardır: 
Hostname'in değiştirilmesi : sudo hostnamectl set-hostname newname
Yeni IP adresinin verilmesi: sudo vi /etc/netplan/50-cloud-init.yaml
sudo netplan apply
Kontrol amaçlı: cat /etc/machine-id veya sadece hostnamectl çalıştırılır.

19 Haziran 2025 Perşembe

Remote Host Identification Has Changed

 

    Bu sorun aynı IP adresine ait daha önce SSH bağlantısı yapıldığını ve o zamanki bağlantının SSH anahtarının farklı olmasından kaynaklı erişim kurulamıyor. Çözüm olarak mevcut knows_hosts dosyasındaki kayıt silinir ve yeni bir SSH bağlantısı kurulmasına izin verilir. Bu aslında man in the middle denilen bir saldırıya önlem olarak alınmıştır güvenlik tedbirinden kaynaklanıyor.

CDM ile bu komut çalıştırılır ve eski kayıt silinir:

ssh-keygen -R 10.20.10.10

18 Haziran 2025 Çarşamba

HyperV Start PXE over IPv4 Hatası Çözümü

 HyperV Start PXE over IPv4 Hatası Çözümü


    Ben bu sorunu çözmek için biraz uğraştım ancak birden fazla nedeni var, bazen gözden kaçabiliyor VM settings ekranından SCSI kısmına gelerek Controller kısmından ISO dosyasını bağladığımız DVD sürücüsünü en üstte taşımak (move) sorunu çözebilir. Bu hatanın nedenlerinden biri. ISO birinci sıraya taşınmasına rağmen sorun devam ederse farklı çözüm yollarını aramak, secure boot'u kapatmak vs. gibi adımlara bakılabilir.

31 Mayıs 2025 Cumartesi

Multipass Ubuntu VM'lerine Public IP Nasıl Aldırabilirim?

 Multipass üzerinden kurduğum VM'ler otomatik olarak NAT olarak yapılandırıldığı için modem'den bağımsız 172 ile başlayan IP'ler alıyorlardı. Bense fiziksel bir cihazmış gibi yani modem ağımdaki bir bilgisayar gibi IP almalarını ve bu IP'leri sabitlemek istiyorum. Amacım VM'i her başlattığımda aynı IP'yi alabilsin ve bende böylece kurduğum test ortamlarında istediğim gibi yapılandırma yapabileyim. Örneğin Zabbix kuracağım, agentların doğru bir şekilde haberleşebilmesi için IP'nin doğal olarak sabit olması gerekiyor. Bu ve bunun gibi nedenlerden dolayı Bridge Network yapmak durumunda kaldım. Bunu isterseniz terminal üzerinden isterseniz Multipass grafik arayüzünden yapılandırabiliyorsunuz.

Multipass HyperV veya VirtualBox network adaptörlerini kullandığı için, hali hazırda bir external network'unuz yoksa bunu oluşturmanız gerekecektir. HyperV arayüzünden kolaylıkla yeni bir Bridge Newtwork oluşturabilirsiniz. Ardından Multipass arayüzünde ilgili network kartınız ağınızdaki bir fiziksel network kartı gibi karşınıza çıkmış olacak.

Switch Manager - HyperV

Multipass Bridge Network


Artık bir instance oluştururken ilgili pencereden Bridge network'u kullan diyebiliriz. Böylece kurulan Ubuntu makinemiz iki IP adresine sahip olacaktır. Birincisi private IP ikincisi ise modemimiz tarafından dağıtılan Public IP

Public IP Multipass Ubuntu

Şimdi ise Ubuntu içerisinden aldığımız bu IP adresini sabitleyelim. Multipass ubuntuları ile birlikte netplan içerisine cloud init dosyası geliyor ve biz bu dosyadan daha öncelikli olacak yeni bir file oluşturacağız, ardından bunu uygulayıp vm'i restart ettiğimizde modem tarafından dağıtılan IP'yi sabitleyebileceğiz. Böylece test kurulumlarımıza devam edebiliriz.

sudo nano /etc/netplan/01-static-ip.yaml

Yaml File Public IP Static

En son değişiklikleri uygulayalım ve artık cihazımızı restart edebiliriz.

sudo netplan apply

10 Nisan 2025 Perşembe

En Hızlı Ubuntu Server Ayağa Kaldırma Yöntemine Bir Bakış

    Multipass kurulumunu bilgisayarıma yaptığım için artık uygulamanın bana sunduğu kolaylıklardan yararlanabilir ve dilediğim gibi hızlı bir şekilde instance yani bir Ubuntu Server işletim sistemini hızlıca ayağa kaldırabilirim. Bunu yapabilmek için cmd veya PowerShell ekranını açıyorum (her ikisinde de komut çalışır) ve aşağıdaki komutu yazarak “enter” tuşuna basıyorum: 

 #multipass launch 

    Bu komutla birlikte Multipass bize rastgele bir hostname barındıran, 1 GB Ram, 1 GB CPU ve 5 GB disk kapasiteli olan bir sunucu kurar. Herhangi bir konfigürasyon belirtmediğimiz için default (ön tanımlı) olarak bu şekilde bir sunucu bize verilmiş olur.

13 Mart 2025 Perşembe

Multipass Nasıl Çalışır?

    Multipass’i kurduktan ve uygulama simgesine sağ klik “Open Shell” dedikten sonra herhangi bir yapılandırma yapmadan ve iso belirtmeden internet bağlantı hızınıza bağlı olarak birkaç saniyede veya 1-2 dakika içerisinde Ubuntu server primary instance kabuğuna erişmiş olacaksınız. Herhangi bir kullanıcı adı belirtmediniz, disk alanı seçmediniz, ram belirtmediniz, iso dosyası göstermediniz, hostname belirtmediniz, kullanıcı adı oluşturmadınız ve bölge dil gibi seçimleri de yapmadınız. Ancak Ubuntu sunucunuz hazır ve karşınızda. İşte Multipass’i güzel ve etkili yapan şeyde bunlar. Sizi yıldırım hızında bir Ubuntu Server ile buluşturuyor ve ben bunu çok değerli buluyorum.

    Yakın bir zamana kadar Multipass için GUI desteği yoktu ve ben makalemi hazırlamaya çalışırken yeni bir update ile artık kullanıcı arayüzünü kullanarak instance ayağa kaldırmak mümkün ancak biz tamamen cmd ile yani terminaldeki komutlarımızla ilerleyeceğiz. Daha sonraki kısımlarda GUI arayüzüne tekrar bakabiliriz.

    *Dokümanı hazırlarken bazen windows bazen de MacOS işletim sistemi kullanacağım, ilk bölümlerde windows üzerindeki Command Prompt ile çalışmalara başlayacağım. Siz hangi işletim sistemini aktif olarak kullanıyorsanız windows veya MacOs aynı komutları kendi ortamınızda deneyebilirsiniz.

    Öncelikle Multipass’i bilgisayarımızın işletim sistemine bağlı olarak indirip kurulumunu yapalım. Bunun için https://multipass.run/ isimli web sayfasını ziyaret etmeniz ve kurulum dosyasını bilgisayarınıza indirerek yüklemeyi yapmanız yeterli. Bu kısımları geçerek uygulama üzerinden dokümana devam etmek istiyorum. Kurulum klasik bir uygulama yükleme işleminden fazlası değil, ileri (Next), ileri (Next), ileri (Next) ve bitir (Finish)

27 Ağustos 2023 Pazar

HomeBrew Path Hatası Çözümü ve Macbook'a Ubuntu Kurmanın En Kolay Yolu

Ubuntu için multipass ve paket yönetimi içinde bilgisayarıma homebrew kurmaya çalışırken path hatasıyla karşılaştım. Bu hata aslında homebrew'in kurulduğunu ancak PATH ayarlarının yapılmadığını söylüyordu. Aldığım hatanın tam olarak metni ve ekran görüntüsü aşağıdaki gibi:


Warning: /opt/homebrew/bin is not in your PATH.
Instructions on how to configure your shell for Homebrew can be found in the 'Next steps' section below. ==> Installation successful!

Dolayısı ile macbook terminal üzerinde brew --version komutunu çalıştırdığımda yanıt alamıyordum. PATH ayarlarının yapılandırılması gerekiyordu.

Homebrew'i ilk kurarken kullandığım komutu unutmadan buraya ekleyeyim, zaten kendi web sitelerinde var ama blogda da dursun fena olmaz arkadaşlar.

$/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

PATH ayarlarını yapmak için kullandığım adımlar sırasıyla aşağıdaki gibidir:


İlk olarak zshrc dosyası oluşturulur, terminali kullanarak bu adımlara devam ediyoruz:
$touch ~/.zshrc

Ardından dosyayı düzenlemek için code veya bir metin editörüyle içerisine giriyoruz, ben nano kullanarak yapmayı tercih ettim:
$nano ~/.zshrc

Ardından içerisine aşağıdaki bilgileri ekleyip kaydederek çıkıyoruz, macte kaydetmek için Control+X ve YES kombinasyonunu kullanmanız gerekiyor:
$export PATH="/opt/homebrew/bin:$PATH"

son olarak yaptığımız değişiklikleri yüklemek için bu komutu çalıştırıyoruz:
$source ~/.zshrc

Artık path işlemi gerçekleşmiş olmalı ve terminale aşağıdaki komutu girerek homebrew yüklü sürümümüzü gözlemleyebilir ve bash komutlarını direkt terminalde kullanabiliriz:
$brew --version







Artık terminale bash komutu yazıp enter yaptıktan sonra kabuk arayüzüne geçerek diğer kurulumlarıma geçebilirim. Bu aşamadan önce multipass uygulamasını da ubuntu sitesinden indirip kurdum ve devamında bash üzerinde çalıştırdığım diğer komutları aşağıda listeliyorum:

$brew install qemu
$multipass help

Bu ekran lazım olabilir dursun burada:



$multipass version
$multipass launch -c 2 -m 2GB -d 30GB









Müthiş, harika bir kolaylık. Tek bir komutla ubuntu makinesi açıyorsunuz resmen. Virtualbox'la vs. dakikalarca uğraşmanıza gerek yok. Tek bir komut ve ubuntu elimin altında. Artık bundan sonrası RDP ile veya SSH ile veya canımız nasıl istiyorsa bağlanıp istediğimiz gibi ubuntuyu kullanmak kalıyor geriye.

Bu arada cihazlardan birini silmeyi denedim, bu komutu kullandım:
$multipass delete primary
Silme işleminin kalıcı olarak gerçekleşmesi için ek olarak buradaki komut çalıştırılır:
$multipass purge

instance ile ilgili bilgi almak için:
$multipass info unruffled-ghoul

Ve artık $multipass shell unruffled-ghoul komutunu yazarak kabuk üzerinden direkt ubuntunun shell ekranına salileser içerisinde geçiş yapabiliyoruz, hıza bakın bu inanılmaz bir şey değil mi?



$cat /etc/lsb-release
$sudo apt update
$sudo apt install neofetch
$neofetch

Eğer masaüstü ubuntu deneyimine geçmek istersek bu komut ile desktop özelliğini aktifleştirebiliyoruz, yani yükleme yapabiliyoruz.

$sudo apt install ubuntu-desktop xrdp 
$sudo passwd ubuntu
$ip a

Geriye ssh ile veya direkt multipass uygulaması kısayolu üzerinden shell linki ile tek tıklamayla sunucuya erişmeye veya RDP yaparak cihaza erişmeye kalıyor. Hepsi bu kadar.

3 Aralık 2022 Cumartesi

Çözümü resolv.conf Dosyasında Bulduk!

 Kurduğum Ubuntu sunucuları internete çıkmıyordu. sudo nano /etc/resolve.conf komutu ile DNS kayıtlarını kontrol ettim ve yeni bir nameserver kaydı ekleyerek karşılığına 8.8.8.8 verdim ve Ctrl+x ve Y ile yani nanoyu kaydederek çıkış yaptım. Sonuç: yeni kurduğum sunucu internete çıkabildi.

2 Ocak 2022 Pazar

Ubuntu'da Yeni Kullanıcıları İlk Oturum Açma İşleminde Şifre Değişimine Zorlama

 sudo passwd -e kullanici komutundan sonraki ilk oturum açma işleminde kullanıcı kendisine özel şifre belirlemeye zorlanır.

sudo usermod kullanici -e 2023-01-01 komutu ile kullanıcı hesabının ne zaman devre dışı bırakılacağı belirlenir.

1 Ocak 2022 Cumartesi

Umask İle Kullanıcı Yetkilerini Sınırlandırmak

Yeni bir kullanıcı oluşturulduğunda diğer kullanıcıların erişimine kapalı olarak gelmesini sağlamak için etc dizini altındaki login.defs dosyası içerisinde bulunan UMASK değeri 077 olarak güncellenir ve dosya kaydedilir.

Bunun için:

sudo nano /etc/login.defs

Ubuntu


29 Aralık 2021 Çarşamba

Ubuntu Parola Yönetimi - pwquality

Parola yönetimi için yüklenmesi gereken paket

sudo apt install libpam-pwquality

Düzenlemek için:

sudo gedit /etc/security/pwquality.conf

27 Aralık 2021 Pazartesi

Linux Dersleri - Ubuntu - Kullanıcı oluşturma - Gruplar ve Visudo İşlemleri Giriş

woami - Ben kimim?

id - Sistemdeki ID değerim?

group - Hangi gruplara üyeyim?

sudo -l - Detaylı yetki kontrolü?

sudo -i - Doğrudan root hesabına geçmek için kullanılır.

exit - sudo hesabından normal kullanıcıya dönülür

sudo useradd hakan - Hakan isminde yeni bir kullanıcı oluşturulur.

sudo passwd hakan - Hakan kullanıcısına yeni bir şifre atanır.

su hakan - hakan kullanıcısına geçiş yapılır

sudo i - Hakan hesabı sudo grubuna üye olmadığı için sudo hesabına geçilemez ve uyarı alınır.

cat /etc/passwd - Kullanıcıların isimleri, ID ve yetkilendirmeleri gibi bilgiler yer alır.

cat /etc/shadow - Buraya normal kullanıcı erişemez. Burada kullanıcı hesaplarının şifre bilgileri tutulur.

sudo usermod -aG sudo hakan - Hakan kullanıcısını sudo grubuna alıyoruz.

Normalde daha önce hakan kullanıcısıyla erişemediğimiz cat /etc/shadow dosyasına gidebiliyor olmamız gerekiyor ancak burada sudo grubuna eklememize rağmen ben yetkilendirme hatası alıyorum.

sudo cat /etc/sudoers - Sudo yetkisini kim nasıl kullanıyor görebildiğimiz yer.

sudo visudo - Sudoers içeriğini düzenlemek için visudo programını kullanıyoruz.

Visudo arayüzünden geriye çıkmak için CTRL-X kombinasyonunu kullanıyoruz.

sudo useradd lila -m -d /home/lila - Yeni bir kullanıcı oluşturduk ve ona bir ev dizini ekledik.

sudo passwd lila

sudo -i - Burada yine hata alırız (Sudoers dosyası içerisinde olmadığımız için)

exit

sudo visudo

lila    ALL=(ALL)    ALL - lila kullanıcısına tüm yetkiler verildi.

Visudo burada kaydedilip çıkıldıktan sonra su lila ile tekrar lila hesabına geçiyoruz ve daha önce yapamadığımız sudo -i komutunu çalıştırıyoruz. Lila şifresini yazarak buradan root hesabına geçiş gerçekleştirmiş oluyoruz.

sudo visudo ile aşağıdaki düzenlemeyi yaptık:

lila    ALL=(ALL)    /bin/systemctl status networking

lila    ALL=(ALL)    /sbin/fdisk

-

su lila

sudo -l ile yetkiler kontrol edildiğinde visudo ile verdiğimiz bilgiler listelenir.

cd /usr/lib/systemd/ - Servislerin olduğu dizin

Shell Escape ve Hak Yükseltme

 Bir kullanıcıya sh. dosyası için yetki verilirse ve bu dosya için yazma ve değişiklik yapma gibi haklara sahip olursa editörün içerisine yazdığı sudo -i komutu ile mevcut oturumunu root olarak güncelleyebilir.

Örneğin bu komutu bir nano editörü ile açıp tellme.sh olarak kaydedelim.

#!/bin/bash

echo "merhaba"

sudo -i

Ardından bu dosya normal bir kullanıcıdayken sudo ./tellme.sh olarak çalıştırılırsa konsola "merhaba" yazılır ancak kullanıcı hesabı da "root" olarak yükseltilmiş olur.

Diğer bir örnekte de bir kullanıcıya /etc/ssh/ssh_config dosyasını düzenleme yetkisi veriliyor: Ancak burada da yukarıdaki örneğe benzer bir durum var. ssh_config dosyası çalıştırıldığında ve ekrana !bash komutu girildiğinde yine burada da shell escape denilen olay gerçekleşir ve root hesabına geçiş yapılır.

Unit networking.service could not be found - Çözümü

 Bu sorunu çözebilmek için aşağıdaki işlemleri yaptım.

systemctl list-unit-files | grep -i network

systemctl restart NetworkManager

systemctl status NetworkManager