18 Haziran 2025 Çarşamba

ansible ile yerel quay sunucusu üzerinden execution environment kullanımı

 Yerel quay veya registry sunucularımızdaki ee leri ansible ile kullanabiliyoruz.

Bunun için kendi yaptığımız ee leri veya hazır ee leri yükleyerek kullanabiliriz.

İşlemler:

[rh294@bastion ~]$ podman tag registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel9:1.0.0-1033 bastion.local.lab/ansible-automation-platform-25/ee-supported-rhel9:1.0.0-1033

[rh294@bastion ~]$ podman images

REPOSITORY                                                            TAG         IMAGE ID      CREATED      SIZE

registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel8  latest      48ced021b0e1  13 days ago  2.28 GB

bastion.local.lab/library/ee-supported-rhel8                          1.0.0-1032  48ced021b0e1  13 days ago  2.28 GB

registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel8  1.0.0-1032  48ced021b0e1  13 days ago  2.28 GB

bastion.local.lab/ansible-automation-platform-25/ee-supported-rhel9   1.0.0-1033  15f3a7cd419c  13 days ago  2.27 GB

registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel9  1.0.0-1033  15f3a7cd419c  13 days ago  2.27 GB

registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel9  latest      15f3a7cd419c  13 days ago  2.27 GB

bastion.local.lab/library/ee-supported-rhel9                          1.0.0-1033  15f3a7cd419c  13 days ago  2.27 GB

quay.io/ansible/ansible-runner                                        latest      bec0dc171168  3 years ago  816 MB

[rh294@bastion ~]$


[rh294@bastion ~]$ podman push bastion.local.lab/ansible-automation-platform-25/ee-supported-rhel9:1.0.0-1033 --remove-signatures

Copying blob 8361195c374b done   | 

Copying blob b492ce482b81 done   | 

Copying blob a080cada37e9 skipped: already exists  

Copying blob 80a3047bb0cc done   | 

Copying config 15f3a7cd41 done   | 

Writing manifest to image destination

[rh294@bastion ~]$ 



---
ansible-navigator:
  ansible:
    config:
      path: ./ansible.cfg
  execution-environment:
    image: bastion.local.lab/ansible-automation-platform-25/ee-supported-rhel9:1.0.0-1033
    pull:
      policy: missing
  playbook-artifact:
    enable: false

[rh294@bastion a01]$ 






10 Haziran 2025 Salı

rhel linuxlerde kurtarma modu püf noktası

RHEL tabanlı her hangi bir sistemde felaket durumunda kurtarma modunda açtığımızda chroot yapmadan önce aşağıdaki bağlantı işlemlerini yapmayı unutmamak gerekiyor. 

# mount -o bind /dev /mnt/sysimage/dev

# mount -o bind /dev/shm /mnt/sysimage/dev/shm
# mount -o bind /sys /mnt/sysimage/sys

# mount -t proc /proc /mnt/sysimage/proc

26 Mayıs 2025 Pazartesi

draid - zfs ile draid kullanımı

 36 ve üzeri disk kullanacak olduğumuzda, performans için draid kullanmamız doğru seçim olacaktır.
Unutmamamız gereken nokta, kapasite artırımı yapılmayı düşünüyorsak, draid oluştururken draid bölümlerini artırmayı düşündüğümüz alan kadar yapmamız gerekiyor. Yani bir jbod ilave ederek ve jbod üzerinde 36 disk gelecekse, birinci bölümümüzde 36 diske göre plan yapmamız gerekiyor. 

Örnek:

jbod disk kapasitesi : 36

eklenecek jbod disk kalitesi : 36 disk 
zpool create dpool2 draid2:34d:0s:36c /dev/sda{a..z} /dev/sdb{a..j}

34d: 34 adet data diski

36c: toplam 36 disk

2 disk parity diski olarak kullanılır.

İlave 36 diskli jbod gelince 

zpool add dpool2 draid2:34d:0s:36c sdc{a..z} sdd{a..j}


Genel yedek disk ekleme;

zpool add dpool2 spare /dev/sda[xy]

Veri güvenliği önemli olduğundan draid1 yerine draid2 kullandık, yani 2 tane paritimiz, iki tane spare  oldu.

spare diski draid oluştururken, dedike verirsek, bu disk sadece oluşturulan draid atanmış spare olur.
eklenecek ilave draid gurublarına faydası olmaz, fazladan diski boşta tutmamız gerekir.
Bundan dolayı draidler oluşturulduktan sonra spare direk pool atıyoruz. Pool içinde her hangi bir draid disk aksaklığı olursa, spare hemen onun yerine geçer. Bizimde arızalı diski bir an önce değiştirmemiz sürekliliği sağlar.

Benzer bir çalışmanın kayıtı:






                                           


13 Mayıs 2025 Salı

Bir sunucu uzerindeki zfs datasetinin yeni bir pool uzerine tasinmasi, yerel replikasyon

Asagidaki script eski zfs den yeni zfs veri kopyalamasi yapar.

##########################scriptin calistirma sorumlulugu calistirana aittir. #######################################

 #!/bin/bash
# zfs uzerindek verileri hizli tasimak icin zfs replikasyonu yapar
#
# Kullanım: ./zfs_local_replicate.sh source_dataset destination_dataset
# 2025.05.13
# Remzi AKYUZ
# remzi@akyuz.tech


SOURCE_FS="$1"
DEST_FS="$2"
DATE=$(date +"%Y%m%d-%H%M%S")
SNAPSHOT_NAME="${SOURCE_FS}@replica-${DATE}"

# Hatalı kullanım kontrolü
if [[ -z "$SOURCE_FS" || -z "$DEST_FS" ]]; then
  echo "Kullanım: $0 <source_dataset> <destination_dataset>"
  exit 1
fi

# 1. Snapshot oluştur
echo "[+] Snapshot oluşturuluyor: $SNAPSHOT_NAME"
zfs snapshot "$SNAPSHOT_NAME"

# 2. İlk defa mı yoksa incremental mi?
LAST_SNAP=$(zfs list -t snapshot -o name -s creation | grep "^${SOURCE_FS}@replica-" | tail -2 | head -1)

if [[ -n "$LAST_SNAP" && "$LAST_SNAP" != "$SNAPSHOT_NAME" ]]; then
  echo "[+] Incremental send: $LAST_SNAP -> $SNAPSHOT_NAME"
  zfs send -i "$LAST_SNAP" "$SNAPSHOT_NAME" | zfs receive -F "$DEST_FS"
else
  echo "[+] Tam send (ilk kez çalışıyor olabilir)"
  zfs send "$SNAPSHOT_NAME" | zfs receive -F "$DEST_FS"
fi

# 3. Replikasyon tamam
echo "[+] Replikasyon tamamlandı. Hedef: $DEST_FS"

# 4. Eski snapshot'ları sil (yalnızca replica- ile başlayanlar)
echo "[+] Eski snapshot'lar temizleniyor, yalnızca son 3 adet tutulacak..."

SNAPSHOTS=($(zfs list -t snapshot -o name -s creation | grep "^${SOURCE_FS}@replica-" ))

TOTAL=${#SNAPSHOTS[@]}

if (( TOTAL > 3 )); then
  COUNT=$((TOTAL - 3))
  for ((i=0; i<$COUNT; i++)); do
    OLD_SNAP="${SNAPSHOTS[$i]}"
    echo "[-] Siliniyor: $OLD_SNAP"
    zfs destroy "$OLD_SNAP"
  done
else
  echo "[=] Silinecek eski snapshot bulunamadı (toplam: $TOTAL)"
fi


echo "[+] Hedef dataset'teki eski snapshot'lar temizleniyor..."

DEST_SNAPSHOTS=($(zfs list -t snapshot -o name -s creation | grep "^${DEST_FS}@replica-" ))

TOTAL_DEST=${#DEST_SNAPSHOTS[@]}

if (( TOTAL_DEST > 3 )); then
  COUNT_DEST=$((TOTAL_DEST - 3))
  for ((i=0; i<$COUNT_DEST; i++)); do
    OLD_DEST_SNAP="${DEST_SNAPSHOTS[$i]}"
    echo "[-] Siliniyor (hedef): $OLD_DEST_SNAP"
    zfs destroy "$OLD_DEST_SNAP"
  done
else
  echo "[=] Silinecek hedef snapshot bulunamadı (toplam: $TOTAL_DEST)"
fi

##########################scriptin calistirma sorumlulugu calistirana aittir. #######################################

Ozellikle buyuk hacimli dosya sistemlerinin tasinmasi icin uygundur.

tasima islemleri snapshotlar ile yapilmaktadir. snapshot esnasinda acik dosya varsa, acik dosyalar kapatilip, script calistirilir ve tekrar dosya yazma islemlerine devam edilir.
Bellir bir servis kullaniyorsaniz, servisi durdurun, script baslatin, snaphot alindiktan ve kopyalama devam ederken, servisi tekrar baslatabilirsiniz.

Alternatif olarak scriptdeki asagidaki satirlari duzenleyebilirsiniz.


systemctl stop servis_ismi

# 1. Snapshot oluştur
echo "[+] Snapshot oluşturuluyor: $SNAPSHOT_NAME"

zfs snapshot "$SNAPSHOT_NAME"


systemctl start servis_ismi

Bu islem servisini anlik olarak durdurur, snap sonrasi tekrar baslatir.
Servisinizin data butunlugu korunmus olur.

2 Nisan 2025 Çarşamba

Red Hat Satellite - admin parolasını unutmak

 Red Hat satellite 6 kullanırkın admin parolasını unuttuysanız veya bir şekilde elinize ulaşmadıysa aşağıdaki şekilde değiştirebilirsiniz: 



Bu işlemden sonra ~/.hammer/cli.modules.d/foreman.yml   dosyasındaki kullanıcı adı ve parolasını güncellemeyi unutmayınız.



5 Mart 2025 Çarşamba

labaratuvar ortamındaki farklı sunucuların bir biri ile haberleşmesini sağlamak

 Kendimizi geliştirmemiz için bir kaç fiziksel linux sunucu ve bir sürü sanal sunucu kullanıyorsak bir birleri ile haberleştirmek sorun olur. Kolay yöntemi dinamik router araçlarından faydalanmak.

Linux sunuculara ve proxmox sunucularına frr yükleyerek bu işi yapabilirsiniz.
Kullanmasını öğrenerek ayarlamak 1-2 gün alabilir, fakat buna değer.

Hali hazırda kullandığım lab ortamında;

1. proxmox sanallaştırma ortamı 

2. Fedora release 43 (Rawhide) - okd/openshift test ortamı

3. Ubuntu kurulu kişisel bilgisayar ve üzerindeki test ortamları

Bunların hepsinde farklı networkler var, zaman zaman hepsinin bir birine erişmesi gerekli. Bu ihtiyacı frr karşılamıştır.

 

Sizlerinde böyle bir durumu varsa frr ile routing öğrenmenin zamanı gelmiştir.

Aşağıdaki dökümanlar  yeterli. 

https://frrouting.org/ 

 
https://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-fedora.html

https://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian12.html

https://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-ubuntu2204.html


https://access.redhat.com/solutions/7001724