Ansible’da üç tür özel olgu tanımlayabilirsiniz.
1) Küresel gerçekler: Bu gerçeklere envanter dosyanızdaki her ana bilgisayardan erişilebilir.
2) Grup gerçekleri: Bu gerçeklere yalnızca belirli bir ana bilgisayar kümesinden 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.
hakkında birçok makale var Linuxİpucu Ansible’ı Kurmaya ve Ansible otomasyonu için ana bilgisayarları yapılandırmaya adanmıştır. Gerekirse bunları 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 gerçekler/{playbooks, host_vars, group_vars}
Şimdi, şuraya gidin: özel gerçekler/ dizin şu şekilde:
Ansible yapılandırma dosyası oluşturun ansible.cfg proje dizininizde aşağıdaki gibi:
Aşağıdaki satırları yazınız ansible.cfg dosya.
[varsayılanlar]
envanter = ana bilgisayarlar
host_key_checking = Yanlış
İşiniz bittiğinde, tuşuna basın + x bunu takiben Y ve kaydetmek için ansible.cfg yapılandırma dosyası.
Şimdi, bir Ansible envanter dosyası oluşturun ev sahibi proje dizininizde aşağıdaki gibi:
Aşağıdaki satırları yazınız ev sahibi envanter dosyası.
vm1.nodekite.com
vm2.nodekite.com
[ağ]
vm3.nodekite.com
vm4.nodekite.com
[veri tabanı]
vm[5:6].nodekite.com
İşiniz bittiğinde, tuşuna 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:
$ hepsi cevaplanabilir –list-host’lar
Gördüğünüz gibi envanter dosyamda altı ana bilgisayar var.
Mevcut ana bilgisayarları listelemek için ağ envanter dosyanızın grubu için aşağıdaki komutu çalıştırın:
$ cevaplanabilir ağ –list-host’lar
Gördüğünüz gibi, iki ana bilgisayarım var (vm3.nodekite.com ve vm4.nodekite.com) içinde ağ 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:
$ cevaplanabilir veritabanı –list-host’lar
Gördüğünüz gibi, iki ana bilgisayarım var (vm5.nodekite.com ve vm6.nodekite.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 sahibi Aşağıdaki komutla envanter dosyası:
Şimdi, işaretli satırları dosyanıza ekleyin. ev sahibi envanter dosyası. İşiniz bittiğinde, tuşuna 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.
– ana bilgisayarlar: tüm
kullanıcı: cevaplayıcı
görevler:
– isim: ‘web_url’ global gerçeğinin değerini yazdırın
hata ayıklama:
mesaj: ‘Web URL’si: {{web_url}}‘
Bu çalışma kitabının amacı, web_url küresel gerçek.
İşiniz bittiğinde, tuşuna 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 genel gerçekleri ayrı bir dosyaya ekleyebilirsiniz. Bu şekilde envanter dosyasını temiz tutabilirsiniz. Nasıl yapacağımıza bir bakalım.
İlk olarak, küresel gerçekleri dünyadan çıkaralım. ev sahibi envanter dosyası.
Ş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 tüm içinde group_vars/ dizin şu şekilde:
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.linuxhint.com
İşiniz bittiğinde, tuşuna 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 sahibi Aşağıdaki komutla envanter dosyası:
Bir ev sahibi grubunuz varsa grup 1, ardından 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 ağ ana bilgisayar grubu, envanter dosyanızdaki işaretli satırları yazabilirsiniz.
İşiniz bittiğinde, tuşuna 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 playbooks/print_group_facts.yaml
Aşağıdaki satırları yazınız print_group_facts.yaml dosya.
– ana bilgisayarlar: ağ
kullanıcı: cevaplayıcı
görevler:
– isim: Grup gerçeklerini yazdır
hata ayıklama:
mesaj: ‘Alan adı: {{alan adı}} Veritabanı Arka Ucu: {{database_backend}}‘
İşiniz bittiğinde, tuşuna 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 ağ 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 sahibi envanter dosyası aşağıdaki gibidir:
İşaretli satırları ekrandan kaldırın. ev sahibi envanter dosyası. İşiniz bittiğinde, tuşuna basın + x bunu takiben Y ve kaydetmek için ev sahibi envanter dosyası.
için grup değişkenleri eklerken ağ ana bilgisayar grubu, yeni bir dosya oluştur ağ (grup adıyla aynı) group_vars/ dizin şu şekilde:
Grup gerçeklerini eklemek için alan adı ve database_backend için ağ ana bilgisayar grubu, aşağıdaki satırları ekleyin group_vars/web dosya.
alan adı: web.linuxhint.com
database_backend: pgsql
İşiniz bittiğinde, tuşuna 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 ağ 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 ağ 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ı göstereceğim.
İlk olarak, açın ev sahibi Aşağıdaki komutla envanter dosyası:
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.domain1.com değişken1=değer1 değişken2=değer2
192.168.2.2.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.nodekite.com ve vm4.nodekite.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 sahibi 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 bir 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 olgularına/değişkenlerine belirtilen ana bilgisayarları 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.nodekite.com ana bilgisayar, yeni bir dosya oluştur vm5.nodekite.com (ana bilgisayar DNS adıyla aynı) host_vars/ dizin şu şekilde:
$ nano host_vars/vm5.nodekite.com
Ana bilgisayar gerçeklerini/değişkenlerini ekleyebilirsiniz db_port ve db_name ev sahibi için vm5.nodekite.com aşağıdaki satırlarla.
db_port: 3306
db_name: demo1
İşiniz bittiğinde, tuşuna basın + x bunu takiben Y ve kaydetmek için vm5.nodekite.com dosya.
Aynı şekilde, ana bilgisayar için ana bilgisayar gerçekleri/değişkenleri eklemek için vm6.nodekite.com, yeni bir dosya oluştur vm6.nodekite.com içinde host_vars/ dizin şu şekilde:
$ nano host_vars/vm6.nodekite.com
Ana bilgisayar gerçeklerini/değişkenlerini ekleyebilirsiniz db_port ve db_name ev sahibi için vm6.nodekite.com aşağıdaki satırlarla.
db_port: 8877
db_name: uygulama1
İşiniz bittiğinde, tuşuna basın + x bunu takiben Y ve kaydetmek için vm6.nodekite.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 playbooks/print_host_facts.yaml
Şimdi, aşağıdaki satırları yazın print_host_facts.yaml dosya.
– ana bilgisayarlar: veri tabanı
kullanıcı: cevaplayıcı
görevler:
– isim: Ana bilgisayar bilgilerini yazdır
hata ayıklama:
mesaj: ‘Veri tabanı ismi: {{db_name}} Veritabanı Bağlantı Noktası: {{db_port}}‘
İşiniz bittiğinde, tuşuna 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.nodekite.com ve vm6.nodekite.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.nodekite.com ve vm6.nodekite.com erişebilir db_name ve db_port gerçekleri/değişkenleri barındırır.
Hepsini Bir Araya Getirmek: Anlaşılabilir Gerçekler Öncelik
Bu bölümde Ansible olgu/değişken önceliği hakkında konuşacağım. Öyleyse başlayalım.
Başlamadan önce, envanter dosyasını temizleyelim.
Aç ev sahibi Aşağıdaki komutla envanter dosyası:
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 ana bilgisayarlar 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.nodekite.com ve vm4.nodekite.com ana bilgisayarlar, aşağıdaki ekran görüntüsünde işaretlendiği gibi.
İşiniz bittiğinde, tuşuna 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.
– ana bilgisayarlar: tüm
kullanıcı: cevaplayıcı
görevler:
– isim: Yazdır tüm gerçekler
hata ayıklama:
mesaj: ‘Gerçek Kapsamı: {{fact_scope}} Liman: {{Liman}}‘
İşiniz bittiğinde, tuşuna 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, ev sahibi 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
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 playbook’larınızda daha kolay hata ayıklamanıza yardımcı olacaktır.
Diğer gönderilerimize göz at
[wpcin-random-posts]
İlk Yorumu Siz Yapın