cevaplayıcı

Ansible Özel Gerçekler Nasıl Kullanılır?

Ansible Özel Gerçekler Nasıl Kullanılır?
Gerçekler Ansible'daki değişkenler gibidir. Ansible, otomatikleştirdiği ana bilgisayara bağlı olarak birçok gerçek üretir. Gerekirse, Ansible'da özel olguları/değişkenleri de tanımlayabilirsiniz.

Ansible'da üç tür özel olgu tanımlayabilirsiniz.

1) Küresel gerçekler: Bu bilgilere envanter dosyanızdaki her ana bilgisayardan erişilebilir.
2) Grup gerçekleri: Bu gerçeklere yalnızca belirli bir ana bilgisayar grubundan veya bir ana bilgisayar grubundan erişilebilir.
3) Ev sahibi gerçekleri: Bu gerçeklere yalnızca belirli bir ana bilgisayardan erişilebilir.

Bu yazıda size Ansible özel gerçekleriyle nasıl çalışacağınızı göstereceğim. Öyleyse başlayalım.

Önkoşullar:

Bu makaledeki örnekleri denemek isterseniz,

1) Bilgisayarınızda Ansible kurulu olmalıdır.
2) Ansible otomasyonu için yapılandırılmış en az 6 Linux ana makineniz olmalıdır.

LinuxHint'te Ansible'ı Kurmaya ve Ansible otomasyonu için ana bilgisayarları yapılandırmaya adanmış birçok makale var. Gerekirse onları kontrol edebilirsiniz.

Bir Proje Dizini Ayarlama:

Başlamadan önce proje dosyalarımızı düzenleyebilmemiz için bir proje dizini oluşturalım.

Bir proje dizini oluşturmak için özel gerçekler/ senin içinde EV dizini, aşağıdaki komutu çalıştırın:

$ mkdir -pv özel bilgiler/playbooks,host_vars,group_vars

Şimdi, şuraya gidin: özel gerçekler/ dizin şu şekilde:

$ cd özel bilgiler/

Ansible yapılandırma dosyası oluşturun cevaplayıcı.cfg proje dizininizde aşağıdaki gibi:

$ nano yanıtlanabilir.cfg

Aşağıdaki satırları yazınız cevaplayıcı.cfg dosya.

[varsayılanlar]
envanter           = ana bilgisayarlar
host_key_checking   = Yanlış

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için cevaplayıcı.cfg yapılandırma dosyası.

Şimdi, bir Ansible envanter dosyası oluşturun ev sahibi proje dizininizde aşağıdaki gibi:

$ nano ana bilgisayar

Aşağıdaki satırları yazınız ev sahibinin envanter dosyası.

vm1.düğüm.com
vm2.düğüm.com
[ağ]
vm3.düğüm.com
vm4.düğüm.com
[veri tabanı]
vm[5:6].düğüm.com

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için ev sahibi envanter dosyası.

Envanter dosyanızdaki mevcut tüm ana bilgisayarları listelemek için aşağıdaki komutu çalıştırın:

$ ansible all --list-hosts

Gördüğünüz gibi envanter dosyamda altı ana bilgisayar var.

Mevcut ana bilgisayarları listelemek için envanter dosyanızın grubu için aşağıdaki komutu çalıştırın:

$ ansible web --list-hosts

Gördüğünüz gibi, iki ana bilgisayarım var (vm3.düğüm.com ve vm4.düğüm.com) içinde envanter dosyamın grubu.

Mevcut ana bilgisayarları listelemek için veri tabanı envanter dosyanızın grubu için aşağıdaki komutu çalıştırın:

$ ansible veritabanı --list-hosts

Gördüğünüz gibi, iki ana bilgisayarım var (vm5.düğüm.com ve vm6.düğüm.com) içinde veri tabanı envanter dosyamın grubu.

Ansible Global Facts ile Çalışmak:

Bu bölümde, envanter dosyanızda Ansible global olgularını/değişkenlerini nasıl tanımlayacağınızı ve onlara Ansible playbook'larınızdan nasıl erişeceğinizi göstereceğim. Ayrıca size global olguları/değişkenleri ayrı bir dosyada nasıl tanımlayacağınızı göstereceğim.

İlk olarak, açın ev sahibinin Aşağıdaki komutla envanter dosyası:

$ nano ana bilgisayar

Şimdi, işaretli satırları dosyanıza ekleyin ev sahibinin envanter dosyası. İşiniz bittiğinde, basın + X bunu takiben Y ve dosyayı kaydetmek için.

'

içine küresel gerçekleri eklersiniz hepsi:vars Bölüm. İşte ekledim web_url küresel gerçek.

Şimdi, yeni bir oyun kitabı oluşturun print_global_fact.yaml içinde oyun kitapları/ dizin şu şekilde:

$ nano oyun kitapları/print_global_fact.yaml

Ardından, aşağıdaki satırları yazın print_global_fact.yaml dosya.

- ev sahibi: hepsi
kullanıcı ansible
görevler:
- name: 'web_url' global gerçeğinin değerini yazdırın
hata ayıklama:
msg: 'Web URL'si: web_url'

Bu çalışma kitabının amacı, web_url küresel gerçek.

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için print_global_fact.yaml dosya.

Şimdi, çalıştırın print_global_fact.yaml oyun kitabı şu şekilde:

$ ansible-playbook playbooks/print_global_fact.yaml

Gördüğünüz gibi envanter dosyamdaki tüm hostlar global gerçeğe erişebilir web_url.

Ayrıca küresel gerçekleri ayrı bir dosyaya ekleyebilirsiniz. Bu şekilde envanter dosyasını temiz tutabilirsiniz. nasıl yapacağımızı görelim.

İlk olarak, küresel gerçekleri dünyadan çıkaralım ev sahibinin envanter dosyası.

$ nano ana bilgisayar

Şimdi envanter dosyasından işaretli satırları kaldırın ve + X, bunu takiben Y ve envanter dosyasını kaydetmek için.

Ardından, yeni bir dosya oluşturun herşey içinde group_vars/ dizin şu şekilde:

$ nano group_vars/tümü

Küresel gerçeği eklemek için web_url, aşağıdaki satırı yazın group_vars/tümü dosya.

web_url: https://www.linux ipucu.com

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için group_vars/tümü dosya.

Küresel gerçeğe erişip erişemeyeceğinizi kontrol etmek için web_url, çalıştır print_global_fact.yaml oyun kitabını tekrar şöyle:

$ ansible-playbook playbooks/print_global_fact.yaml

Gördüğünüz gibi envanter dosyamdaki tüm hostlar global gerçeğe erişebilir web_url.

Ansible Group Facts ile Çalışmak:

Bu bölümde, envanter dosyanızda Ansible grup olgularını/değişkenlerini nasıl tanımlayacağınızı ve onlara Ansible playbook'larınızdan nasıl erişeceğinizi göstereceğim. Ayrıca size grup olgularını/değişkenlerini ayrı bir dosyada nasıl tanımlayacağınızı göstereceğim.

İlk olarak, açın ev sahibinin Aşağıdaki komutla envanter dosyası:

$ nano ana bilgisayar

Bir ev sahibi grubunuz varsa grup 1, sonra o ana bilgisayar grubu için grup olgularını/değişkenlerini bir grup1:vars envanter dosyanızın bölümü.

[grup 1]

[grup1:vars]
değişken1=değer1
değişken2=değer2

Örneğin, grup olgularını/değişkenlerini eklemek için alan adı ve database_backends için ana bilgisayar grubu, envanter dosyanızdaki işaretli satırları yazabilirsiniz.

İşiniz bittiğinde, basın + X bunu takiben Y ve envanter dosyasını kaydetmek için.

Grup gerçeklerine erişip erişemeyeceğimizi yazdırmak ve test etmek için yeni bir oyun kitabı oluşturun print_group_facts.yaml içinde oyun kitapları/ dizin şu şekilde:

$ nano oyun kitapları/print_group_facts.yaml

Aşağıdaki satırları yazınız print_group_facts.yaml dosya.

- ana bilgisayarlar: web
kullanıcı ansible
görevler:
- isim: Grup gerçeklerini yazdır
hata ayıklama:
msg: 'Alan Adı: domain_name Veritabanı Arka Ucu: database_backend'

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için print_group_facts.yaml dosya.

Şimdi, çalıştırın print_group_facts.yaml oyun kitabı şu şekilde:

$ ansible-playbook playbooks/print_group_facts.yaml

Gördüğünüz gibi, ana bilgisayarlar grup erişebilir alan adı ve database_backend grup gerçekleri/değişkenleri.

Şimdi envanter dosyasını temizleyelim ve grup olgularını/değişkenlerini ayrı bir dosyaya nasıl ekleyeceğinizi görelim.

İlk olarak, açın ev sahibinin envanter dosyası aşağıdaki gibidir:

$ nano gerçekler

İşaretli satırları ekrandan kaldırın ev sahibinin envanter dosyası. İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için ev sahibi envanter dosyası.

için grup değişkenleri eklerken ana bilgisayar grubu, yeni bir dosya oluştur (grup adıyla aynı) grup_vars/ dizin şu şekilde:

$ nano group_vars/web

Grup gerçeklerini eklemek için alan adı ve database_backend için ana bilgisayar grubu, aşağıdaki satırları ekleyin group_vars/web dosya.

alan_adı: web.linux ipucu.com
database_backend: pgsql

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için group_vars/web dosya.

Ana bilgisayarların içinde olup olmadığını kontrol etmek için grup, grup gerçeklerine erişebilir, print_group_facts.yaml oyun kitabı şu şekilde:

$ ansible-playbook playbooks/print_group_facts.yaml

Gördüğünüz gibi, ana bilgisayarlar grup erişebilir alan adı ve database_backend grup gerçekleri/değişkenleri.

Ansible Host Facts ile Çalışmak:

Bu bölümde, envanter dosyanızda Ansible ana bilgisayar olgularını/değişkenlerini nasıl tanımlayacağınızı ve onlara Ansible playbook'larınızdan nasıl erişeceğinizi göstereceğim. Ayrıca size ana bilgisayar olgularını/değişkenlerini ayrı bir dosyada nasıl tanımlayacağınızı da göstereceğim.

İlk olarak, açın ev sahibinin Aşağıdaki komutla envanter dosyası:

$ nano ana bilgisayar

Envanter dosyanızdaki ana bilgisayarın DNS adından veya IP adresinden sonra ana bilgisayar olgularını/değişkenlerini aşağıdaki gibi ekleyebilirsiniz:

www.etki alanı1.com      değişken1=değer1       değişken2=değer2
192.168.22.2         değişken1=değer3       değişken2=değer4

Örneğin, ana bilgisayar gerçekleri/değişkenleri ekleyebilirsiniz alan adı ve database_backend ev sahipleri için vm3.düğüm.com ve vm4.düğüm.com, aşağıdaki ekran görüntüsünde işaretlendiği gibi.

değerinin olduğuna dikkat edin alan adı ve database_backend olgular/değişkenler her ana bilgisayar için farklıdır.

Ana bilgisayar olgularını/değişkenlerini eklemeyi tamamladığınızda, + X, bunu takiben Y ve kaydetmek için ev sahibinin envanter dosyası.

Grup olguları/değişkenleri örneğindekiyle aynı olguları/değişkenleri eklediğim için, print_group_facts.yaml bu gerçeklerin/değişkenlerin erişilebilirliğini de test etmek için oyun kitabı.

Çalıştır print_group_facts.yaml oyun kitabı şu şekilde:

$ ansible-playbook playbooks/print_group_facts.yaml

Gördüğünüz gibi, ana bilgisayar gerçekleri/değişkenleri, belirtilen ana bilgisayar tarafından erişilebilir. Değerler de her ana bilgisayar için farklıdır.

Ana bilgisayarların her biri envanter dosyamda ayrı bir satırda olduğundan, envanter dosyama ana bilgisayar olgularını/değişkenlerini kolayca ekleyebilirim. Ancak, aşağıdaki ekran görüntüsünde işaretlendiği gibi envanter dosyanızdaki ana bilgisayarları tanımlamak için aralıklar kullanırsanız, bunun gibi ana bilgisayar olgularını/değişkenlerini ekleyemezsiniz.

Genel ve grup olguları/değişkenleri için yaptığınız gibi, ana bilgisayar olgularını/değişkenlerini ayrı bir dosyaya ekleyebilirsiniz.

için ana bilgisayar olguları/değişkenleri eklemek için vm5.düğüm.com ana bilgisayar, yeni bir dosya oluştur vm5.düğüm.com (ana bilgisayar DNS adıyla aynı) host_vars/ dizin şu şekilde:

$ nano host_vars/vm5.düğüm.com

Ana bilgisayar gerçeklerini/değişkenlerini ekleyebilirsiniz db_port ve db_name ev sahibi için vm5.düğüm.com aşağıdaki satırlarla.

db_port: 3306
db_name: demo1

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için vm5.düğüm.com dosya.

Aynı şekilde, ana bilgisayar için ana bilgisayar gerçekleri/değişkenleri eklemek için vm6.düğüm.com, yeni bir dosya oluştur vm6.düğüm.com içinde host_vars/ dizin şu şekilde:

$ nano host_vars/vm6.düğüm.com

Ana bilgisayar gerçeklerini/değişkenlerini ekleyebilirsiniz db_port ve db_name ev sahibi için vm6.düğüm.com aşağıdaki satırlarla.

db_port: 8877
db_name: uygulama1

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için vm6.düğüm.com dosya.

Ana bilgisayar gerçeklerine/değişkenlerine erişip erişemeyeceğimizi yazdırmak ve test etmek için yeni bir çalışma kitabı oluşturun print_host_facts.yaml içinde oyun kitapları/ dizin şu şekilde:

$ nano oyun kitapları/print_host_facts.yaml

Şimdi, aşağıdaki satırları yazın print_host_facts.yaml dosya.

- ana bilgisayarlar: veritabanı
kullanıcı ansible
görevler:
- ad: Ana bilgisayar bilgilerini yazdır
hata ayıklama:
msg: 'Veritabanı Adı: db_name Veritabanı Bağlantı Noktası: db_port'

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için print_host_facts.yaml dosya.

Ana bilgisayarın olup olmadığını kontrol etmek için vm5.düğüm.com ve vm6.düğüm.com ana bilgisayar gerçeklerine/değişkenlerine erişebilir, print_host_facts.yaml oyun kitabı şu şekilde:

$ ansible-playbook playbooks/print_host_facts.yaml

Gördüğünüz gibi, ana bilgisayarlar vm5.düğüm.com ve vm6.düğüm.com erişebilir db_name ve db_port gerçekleri/değişkenleri barındır.

Hepsini Bir Araya Getirmek: Anlaşılabilir Gerçekler Öncelik

Bu bölümde Ansible gerçeği/değişken önceliği hakkında konuşacağım. Öyleyse başlayalım.

Başlamadan önce envanter dosyasını temizleyelim.

ev sahibinin Aşağıdaki komutla envanter dosyası:

$ nano ana bilgisayar

Envanter dosyasından işaretli bölümü kaldırın.

Envanter dosyanız bu noktada böyle görünmelidir.

Şimdi işaretli satırı envanter dosyanıza ekleyin. Bu satırlar global gerçekleri/değişkenleri ekler fact_scope ve Liman.

Ardından işaretli satırları envanter dosyanıza ekleyin. Bu satırlar ek fact_scope ve Liman konaklar için olgular/değişkenler veri tabanı grup.

Son olarak, ekleyin fact_scope ve Liman için gerçekleri/değişkenleri barındırın vm3.düğüm.com ve vm4.düğüm.com ana bilgisayarlar, aşağıdaki ekran görüntüsünde işaretlendiği gibi.

İşiniz bittiğinde, basın + X bunu takiben Y ve envanter dosyasını kaydetmek için.

Global, grup ve ana bilgisayar olgularının/değişkenlerinin değerini yazdırmak için yeni bir çalışma kitabı oluşturun fact_precendence.yaml içinde oyun kitapları/ dizin şu şekilde:

$ nano oyun kitapları/fact_precedence.yaml

içine aşağıdaki satırları yazın fact_precedence.yaml dosya.

- ev sahibi: hepsi
kullanıcı ansible
görevler:
- isim: Tüm gerçekleri yazdır
hata ayıklama:
msg: 'Gerçek Kapsamı: fact_scope    Bağlantı Noktası: port'

İşiniz bittiğinde, basın + X bunu takiben Y ve kaydetmek için fact_precedence.yaml dosya.

Global, grup ve ana bilgisayar olgularını/değişkenlerini yazdırmak için şunu çalıştırın: fact_precedence.yaml oyun kitabı şu şekilde:

$ ansible-playbook playbooks/fact_precedence.yaml

Gördüğünüz gibi, global, grup ve ana bilgisayar olguları/değişkenleri yazdırılır.

Grup olgularının/değişkenlerinin global olguların/değişkenlerin yerini aldığına dikkat edin (1). Ayrıca, ana olguların/değişkenlerin hem grubun hem de küresel olguların/değişkenlerin yerini aldığına dikkat edin (2).

Ansible'ın olgu/değişken önceliği aşağıdaki gibidir:

Ana bilgisayar gerçeği > Grup gerçeği > Genel gerçek

Sonuç:

Bu makaleyi okuduktan sonra, Ansible global, grup ve ana bilgisayar olguları/değişkenleri ile rahatça çalışabilmelisiniz. Ansible özel olgu önceliğini hatırlayın. Ansible oyun kitaplarınızda daha kolay hata ayıklamanıza yardımcı olacaktır.

Linux'ta FPS Nasıl Arttırılır?
FPS'nin kısaltması Saniyedeki Kare Sayısı. FPS'nin görevi, video oynatma veya oyun performanslarındaki kare hızını ölçmektir. Basit bir deyişle, her s...
En İyi Oculus Uygulama Laboratuvarı Oyunları
Oculus başlık sahibiyseniz, yandan yükleme hakkında bilgi sahibi olmalısınız. Sideloading, kulaklığınıza mağaza dışı içerik yükleme işlemidir. SideQue...
Ubuntu'da Oynanacak En İyi 10 Oyun
Windows platformu, günümüzde doğal olarak Windows'u desteklemek için geliştirilen oyunların büyük bir yüzdesi nedeniyle oyun oynamak için hakim platfo...