Sunucu Kayıt Kancaları

1.6k görüntülenme Markdown

Sunucu kayıtları, sunucu grupları ve içe aktarmanın sekiz kancası.

Genel Bakış

Sunucu kayıtları, hizmetlerin üzerinde kurulduğu makinelerin bilgisini taşır. Kaydetme, güncelleme, silme ve içe aktarma adımlarının hepsi burada.

? Bir ayrım hayati: kayıt filtresinde parola açık metindir, olaylarda ise şifrelidir. Filtre, şifrelemenin öncesinde durur.

Referans

Kaydedilecek sunucu verisini değiştirme

filterproduct.server_save_data
AdminProducts parola AÇIK METİN

Sunucu kaydı yazılmadan önce çalışır. Erişim bilgilerinin şifrelenmesinden önceki noktadır.

Parametreler 3
$set_dataarraybağlaYazılacak sunucu verisi: adı, adresi, kullanıcı adı, parolası, ad sunucuları, kapasitesi ve erişim anahtarı. ? Parola burada açık metindir (şifreleme bu filtreden sonra yapılır). Kaydı olduğu gibi günlüğe, dış servise ya da kendi tablonuza yazmak parolayı düz metin sızdırır.
$typestringSunucu modülünün tipi.
$detailarrayMevcut kayıt; yeni kayıtta boştur.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:product.server_save_data', 10, function (&$set_data, $type, $detail) {
    // PAROLA BURADA ACIK METIN: kaydi oldugu gibi hicbir yere yazmayin.
    $set_data['ns1'] = Acme::defaultNs(1);
    $set_data['ns2'] = Acme::defaultNs(2);
});

Sunucu eklenmesini izleme

actionproduct.server_created
AdminProducts parola şifreli

Yeni bir sunucu kaydı oluşturulduktan sonra çalışır.

Parametreler 3
$idintYeni sunucunun kimliği.
$set_dataarrayKaydedilen veri. Filtrenin aksine parola burada şifrelidir: okuyarak kullanamazsınız.
$typestringSunucu modülünün tipi.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:product.server_created', 10, function ($id, $set_data, $type) {
    // Parola burada sifreli: izleme sistemine yalniz adresi verin.
    Acme::addMonitor($id, $set_data['ip'] ?? '');
});

Sunucu güncellemesini izleme

actionproduct.server_updated
AdminProducts önce ve sonra elinizde

Bir sunucu kaydı güncellendikten sonra çalışır.

Parametreler 4
$idintSunucunun kimliği.
$set_dataarrayYeni veri; parola şifrelidir.
$typestringYeni modül tipi.
$detailarrayGüncelleme öncesi kayıt; farkı ölçmek içindir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:product.server_updated', 10, function ($id, $set_data, $type, $detail) {
    // Adres degistiyse izlemeyi tasiyin.
    if (($detail['ip'] ?? '') !== ($set_data['ip'] ?? ''))
        Acme::moveMonitor($id, $set_data['ip'] ?? '');
});

Sunucu silmeyi durdurma

gateproduct.server_delete
AdminProducts yazımdan önce

Bir sunucu kaydı silinmeden önce çalışır. Kayıt gider, sunucunun kendisi ve üstündeki hesaplar kalır.

Parametreler 2
$idintSilinecek sunucunun kimliği.
$detailarraySunucunun kaydı: adı, adresi ve tipi.
Dönüş 1
string|nullBoş olmayan bir metin işlemi engeller ve yöneticiye hata olarak gösterilir. Boş dönüş devam ettirir.
Dinleyici
Hook::add('gate:product.server_delete', 10, function ($id, $detail) {
    // Kayit gider ama sunucudaki hesaplar kalir.
    if (Acme::serverHasServices($id)) return 'Bu sunucuda calisan hizmetler var.';

    return null;
});

Sunucu silinmesini izleme

actionproduct.server_deleted
AdminProducts silme sonrası

Sunucu kaydı silindikten sonra çalışır.

Parametreler 2
$iintSilinen sunucunun kimliği.
$detailarraySilme anındaki son kayıt.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:product.server_deleted', 10, function ($i, $detail) {
    Acme::dropMonitor($i);
});

Sunucudan içe aktarmayı izleme

actionproduct.server_imported
AdminProducts özet metin listesi

Bir sunucudaki hesaplar hizmet olarak içe aktarıldıktan sonra çalışır.

Parametreler 2
$serverarrayİçe aktarmanın yapıldığı sunucu kaydı.
$importedarrayOluşan hizmetlerin özeti. Her eleman bir metindir, kayıt değil: ad ve kimliği bir arada taşır. Kimlik gerekiyorsa metinden ayrıştırmak yerine hizmeti sorgulayın.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:product.server_imported', 10, function ($server, $imported) {
    // Elemanlar METINDIR, kayit degil.
    Acme::notifyOps(count($imported) . ' hizmet ice aktarildi: ' . ($server['name'] ?? ''));
});

Sunucu grubu verisini değiştirme

filterproduct.server_group_save_data
AdminProducts sunucular metin listesi

Sunucu grubu kaydedilmeden önce çalışır.

Parametreler 2
$dataarraybağlaYazılacak grup verisi: adı, doldurma biçimi ve sunucuları. Sunucu listesi dizi değil, virgülle ayrılmış metindir: dizi gibi işlemeden önce ayırın.
$detailarrayMevcut kayıt; yeni kayıtta boştur.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:product.server_group_save_data', 10, function (&$data, $detail) {
    // Sunucu listesi VIRGULLU METIN, dizi degil.
    $ids = array_filter(explode(',', (string) ($data['servers'] ?? '')));
    $data['servers'] = implode(',', Acme::onlyHealthy($ids));
});

Sunucu grubu silmeyi durdurma

gateproduct.server_group_delete
AdminProducts yazımdan önce

Bir sunucu grubu silinmeden önce çalışır.

Parametreler 2
$idintSilinecek grubun kimliği.
$detailarrayGrubun kaydı.
Dönüş 1
string|nullBoş olmayan bir metin işlemi engeller ve yöneticiye hata olarak gösterilir. Boş dönüş devam ettirir.
Dinleyici
Hook::add('gate:product.server_group_delete', 10, function ($id, $detail) {
    if (Acme::groupBoundToProducts($id)) return 'Bu gruba bagli urunler var.';

    return null;
});

Tuzaklar

Kayıt filtresinde parola açık metindir

Sunucu kayıt filtresi şifrelemeden önce çalışır: parola alanı düz metin taşır. O diziyi olduğu gibi günlüğe yazmak, dış servise göndermek ya da kendi tablonuza kopyalamak, sunucu parolasını düz metin sızdırmaktır. Olaylarda aynı alan şifrelidir.

Sunucu kaydını silmek makineyi boşaltmaz

Silme yalnız kaydı kaldırır. Sunucudaki hesaplar, alanlar ve veriler yerinde kalır; sistem onları artık tanımaz. Silme kapısı, bunu fark edebileceğiniz son noktadır.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.