cevaplayıcı

Jinja Filtrelerini Kullanarak Ansible Verileri Manipüle Etme

Jinja Filtrelerini Kullanarak Ansible Verileri Manipüle Etme

Bazı durumlarda, çeşitli görevleri otomatikleştirmek için Ansible kullandığınızda, verileri dönüştürmeniz ve değiştirmeniz gerekebilir. Ansible'da, verileri işlemek, işlemek ve dönüştürmek için bir dizi yerleşik filtre kullanabilir veya özel filtreler oluşturabilirsiniz. Ansible, kullanıcıların belirtilen veriler için filtreler oluşturmasına izin vermek için arka planda jinja2 şablon filtrelerini kullanır.

Filtre şablonlamanın belirtilen uzak ana bilgisayarlarda değil, Ansible denetleyicisinde gerçekleştirildiğine dikkat etmek önemlidir. Bu, yerel işlemden sonra uzak ana bilgisayara aktarılan veri miktarını azaltmaya yardımcı olur. Jinja şablonlamaya aşina değilseniz, Jinja, popüler Python çerçevesi Django şablonlarından sonra geliştirilen Python programlama dili için basit, sezgisel, hızlı ve güvenli bir şablonlama dilidir.

Jinja şablonlamanın nasıl çalıştığına girmeyeceğiz, ancak şablonlarla nasıl çalıştığını anlamak ek bir avantaj olabilir.

Jinja hakkında daha fazla bilgi edinmek için aşağıda verilen kaynağa göz atın.

https://linkfy./jinjaDocs

Ansible Filtreler Nasıl Çalışır?

Belirtildiği gibi, Ansible filtreleme motoru Jinja şablonlama modelini temel alır. Bu, kullanıcıların verileri girmek, bunları işlemek ve tanımlanan filtrelere dayalı bir çıktı sağlamak için bu şablonları kullanmasına olanak tanır.

Veriler tanımlı şablon kullanılarak dönüştürülüp filtrelendikten sonra, Ansible'da diğer görevleri gerçekleştirmek için kullanabilirsiniz. Aşağıdaki web sitesinde Ansible'daki filtreler hakkında daha fazla bilgi edinebilirsiniz:

https://linkfy.to/AnsibleFilters

Ansible'ın hepsi çok kullanışlı ve birçok farklı senaryo için geçerli olan birçok filtre vardır. Filtre çıktısına sahip olduğunuzda, bunu hata ayıklama gibi diğer görevleri gerçekleştirmek için kullanabilirsiniz.

Verileri filtrelemek için genel sözdizimi aşağıdaki gibidir:

|

Ansible Filtreleri Kullanma

Şimdi çeşitli görevleri gerçekleştirmek için kullanabileceğimiz Ansible filtre örneklerine bakacağız.

NOT: Daha önce de belirtildiği gibi, Ansible'ın birçok filtresi vardır, bu nedenle hepsini bu makalede ele alamıyoruz. Bunun yerine, bu eğitim size çeşitli Ansible filtrelerini kullanmanın temellerini sağlamayı amaçlamaktadır.

Örnek 1: Ansible Format Veri Filtreleri

Ansible format veri filtreleri, bir şablondaki çıktı veri yapısını alır ve filtrede çağrılan formatta işlemek için belirtilen filtreyi kullanır.

Aşağıda JSON ve YAML'ye dönüştürmek için örnek bir filtre verilmiştir:

değişken | to_json
değişken | to_yaml

Örneğin, aşağıdaki çalışma kitabını göz önünde bulundurun:

- ana bilgisayarlar: tüm görevler:
- kabuk: kedi /tmp/tümü.json
kayıt: sonuç
- hata ayıklama:
msg: "sonuç.standart | to_nice_yaml"

Yukarıdaki çalışma kitabını çalıştırmak, YAML'ye dönüştürülen JSON verileri için bir çıktı üretecektir. Aşağıdaki örnek bir çıktıdır:

Çıktıyı insan tarafından okunabilir bir biçimde elde etmek için to_nice_yaml gibi başka filtreler de belirtebilirsiniz.

değişken | to_nice_json
değişken | to_nice_yaml

Biçimlendirme veri filtrelerini kullanarak verileri çeşitli biçimlere dönüştürebilir ve çeşitli görevler için kullanabilirsiniz.

Örneğin, aşağıdaki çalışma kitabında olduğu gibi çok belgeli YAML dizelerini ayrıştırabilirsiniz:

- ana bilgisayarlar: tüm görevler:
- kabuk: kedi /tmp/tümü.json
kayıt: sonuç
- hata ayıklama:
msg: "sonuç.standart | to_yaml | liste"

Örnek 2: Ansible Varsayılan Filtre

Ansible varsayılan filtresi, varsayılan değerleri tanımsız değişkenlere dönüştürmeye yardımcı olur. Varsayılan Ansible yapılandırması tanımsız değişkenlerde başarısız oluyor. Örneğin, tanımsız bir değişkeniniz varsa, Ansible'a bir hata oluşturmak yerine bir değere varsayılan olmasını söyleyebilirsiniz.

Varsayılan filtrenin genel sözdizimi aşağıdaki gibidir:

| varsayılan değer)

Örneğin:

- ev sahibi: hepsi
değişkenler:
görevler:
set_fact:
undef_var: "0_var | default(5)"

Yukarıdaki oyun kitabı, açıkça tanımlanmadıysa, bir hata atmak yerine '0_var' değişkeninin değerini 5'e ayarlayacaktır.

Bir değişken tanımlamak için zorunlu filtreyi kullanabilirsiniz. Tek yapmanız gereken yukarıdaki örneğe bakmak ve varsayılanı zorunlu olanla değiştirmek:

0_var | zorunlu

Örnek 3: Ansible Hata Ayıklama Filtreleri

Hata ayıklarken, değişken türü hakkında bilgi almak için type_debug filtresini kullanabilirsiniz. Motor Python tabanlı olduğundan değişken türü Python'da olacaktır. Filtrenin genel sözdizimi aşağıdaki gibidir:

değişken | type_debug

Örnek 4: Matematik Filtreleri

Ansible matematik filtreleri, matematikle ilgili sorgular gerçekleştirmenize olanak tanır. Bu filtreler aşağıdakileri içerir:

  1. Logaritma filtresi - değişken | log - logaritmanın tabanını parantez içinde değişken | kayıt (2)
  2. Güç filtresi - değişken | pow(3) - belirtilen güce yükseltilmiş değişkeni döndürür
  3. Mutlak filtre - değişken | abs - iletilen değişkenin mutlak değerini döndürür
  4. Kök filtresi - değişken | root - bu, değişkenin karekökünü döndürür. Kökü açıkça belirtmek için değeri parantez içinde iletin; örneğin, küp kökü değişken | kök(3)

Bu matematik filtreleri, özellikle büyük miktarda veri ve anlık matematik işlemleri ile uğraşırken oldukça faydalı olabilir.

Örnek 5: Karma Filtreler

Ansible karma filtreleri, bir dizenin veya iletilen verilerin karma değerini elde etmenizi sağlar. Çoğu durumda, bu filtrelere ihtiyacınız olmayacak, ancak ihtiyaç duyulursa kullanılabilirler. Bu filtreler aşağıdakileri içerir:

  1. Sha1 - var | karma(“sha1”)
  2. Sha256/sha512 - var | password_hash(“sha256/512”)
  3. Md5 - var | karma(“md5”)
  4. dize sağlama toplamı - var | sağlama toplamı

Diğer Faydalı Filtreler

Fark etmiş olabileceğiniz gibi, Ansible'ın birçok filtresi var. Yararlı bulabileceğiniz bazı Ansible filtreleri şunları içerir:

  • URL bölme filtresi - “ [e-posta korumalı]://linuxhint.com:8080/dizin.html?sorgu=linux” | urlspilt(“hostname”), - “linuxhint” değerini döndürür.com”
  • Listeye katıl - liste | katıl - bir dizgeye liste eklemek için kullanılır var
  • Klasör yolu - yol | dizin adı
  • Yaklaşık işareti genişlet - yol | genişletici

Sonuç

Ansible filtreler, hata ayıklama görevleri gerçekleştirirken veya çok fazla yazmadan belirli bilgilere ihtiyaç duyduğunuzda kullanışlıdır. Ansible özel filtreleri desteklediğinden, bu filtreler özellikle belirli kullanım durumlarında faydalı olabilir.

El Takibiyle Oynanabilecek En İyi Oyunlar
Oculus Quest kısa süre önce, kontrolörler olmadan elle takip etme harika fikrini tanıttı. Resmi olarak veya SideQuest aracılığıyla destek sağlayan sür...
Tam Ekran Linux Uygulamalarında ve Oyunlarında OSD Yerleşimi Nasıl Gösterilir
Tam ekran oyunlar oynamak veya uygulamaları dikkat dağıtmayan tam ekran modunda kullanmak, bir panelde veya görev çubuğunda görünen ilgili sistem bilg...
En İyi 5 Oyun Yakalama Kartı
YouTube'da oyun akışlarını hepimiz gördük ve sevdik. PewDiePie, Jakesepticye ve Markiplier, oyun deneyimlerini yükleyerek ve izleyicileri en yeni oyun...