Ansible ile uzak bir ana bilgisayarda otomatik bir görev gerçekleştirmek için, beklendiği gibi belirli değişkenleri doldurmak ve bunlarla çalışmak gerekir. Örneğin, uzak bir ana bilgisayarı çevrimiçi duruma getirmek, oturum açma ve kullanıcı ayrıcalıklarına izin vermek ve bir Python ortamı kurmak için bu tür bir görev gereklidir.
Uzak bir ana bilgisayara SSH yapmak ve ana bilgisayarın tüm kriterleri karşılayıp karşılamadığını kontrol etmek mümkündür. Ancak bir otomasyon aracı olarak Ansible, bu sıkıcı, zaman alıcı görevleri tek bir komut satırında gerçekleştirmenize olanak tanıyan modüller sağlar.
Bu öğretici, uzak ana bilgisayarlarda çeşitli ayar değişkenlerini gerçekleştirmek için Ansible yerleşik ping modülünün nasıl kullanılacağını gösterir. Ansible ping isteği, uzak ana bilgisayarların kullanılabilirliğini ve pratikliğini test etmek için kullanabileceğiniz basit ama kullanışlı bir araçtır.
Şimdi Ansible ping'in nasıl çalıştığına daha yakından bakacağız.
NOT: Bu bölüm biraz teorik. İhtiyacınız olan tek şey makalenin teknik kısmıysa, bu bölümü atlayabilirsiniz. Yine de, ping modülü hakkında bazı yararlı bilgiler ve bilgiler sağladığı için bu bölümü okumanızı öneririz.
Bununla birlikte, şimdi ping modülünü tanıtmaya devam edeceğiz.
Ansible ping Modülü Hakkında
Ansible ping isteği, uzak ana bilgisayarda kontrol eder. Bu modül özellikle şunları kontrol eder:
- Uzak ana bilgisayarın çalışır durumda ve erişilebilir olup olmadığı.
- Python ortamının gerekli çalışma kitaplarını başarıyla çalıştırıp çalıştıramayacağı.
- Kullanıcı girişi ve ayrıcalıkları.
Uzak ana bilgisayara bir ping isteği gönderildikten sonra, modül, ping'in başarılı olup olmadığını gösteren bir değer döndürür. Varsayılan olarak, ping modülü başarı durumunda 'pong' dizesini ve başarısızlık durumunda (belirtilmişse) bir istisna döndürür.
PROFESYONEL İPUCU: Hedef uzak ana bilgisayarlardaki Ansible playbook'larınızın başarısız olmamasını sağlamak için gereksinimlerin karşılanıp karşılanmadığını kontrol etmek için ping modülünü kullanın ve yalnızca başarılı bir çıktı elde edildiğinde görevleri gerçekleştirin.
Ansible ping Modülünün Özellikleri
Ping modülü oldukça basittir ve bu modül tarafından sağlanan özelliklerin listesi aşağıdadır:
- ICMP pingi değil; bunun yerine, uzak ana bilgisayarlarda geçerli bir Python ortamı gerektiren küçük bir modüldür.
- Windows uzak ana bilgisayarları bunun yerine win_ping modülünü kullanmalıdır.
- Ağ cihazları için bir net_ping modülü sağlar.
- Bir istisna oluşturmak için yalnızca tek bir parametreyi kabul eder.
- Oturum açma izinlerini ve geçerli bir Python ortamını doğrulamak için /usr/bin/ansible dizinindeki ansible komutu çağrılırken varsayılan olarak kullanılır.
- Başarı durumunda 'pong' dizesini döndürür.
Ansible ping Modülü Nasıl Kullanılır
Şimdi Ansible ping modülünü kullanan birkaç örneğe bakacağız.
AD HOC ping Komutunu Kullanma
Ansible ping modülünü çalıştırmanın en basit yolu, terminalde basit bir AD HOC komutu çalıştırmaktır.
AD HOC komutu aşağıdaki gibidir:
ansible all -m ping -vYukarıdaki komut, Ansible'ı arayarak başlar, ardından ana bilgisayarın belirli kalıbı gelir. Bu durumda, 'tüm' ana bilgisayarlara ping atmak istiyoruz. Sonraki kısım olan '-m' kullanmak istediğimiz modülü belirtir. '-v' ayrıntılı anlamına gelir.
Başarıyla, aşağıda gösterilene benzer bir çıktı alacaksınız:
/etc/ansible/ansible kullanma.yapılandırma dosyası olarak cfg 35.222.210.12| BAŞARI =>
"ansible_facts":
"discovered_interpreter_python": "/usr/bin/python" ,
"değişti": yanlış,
"masa Tenisi"
Uzak ana bilgisayarlar kullanılamıyorsa (belki de çevrimdışıdırlar), aşağıda gösterilene benzer bir çıktı alırsınız:
/etc/ansible/ansible kullanma.yapılandırma dosyası olarak cfg 35.222.210.12| ULAŞILMAZ! =>
"değiştirildi": yanlış,
"msg": "Ssh aracılığıyla ana bilgisayara bağlanılamadı: ssh: ana bilgisayara 35 bağlanın.222.210.12 bağlantı noktası 22: Bağlantı zaman aşımına uğradı",
"ulaşılamaz": doğru
Playbook'larda ping Modülünü Kullanma
Ping modülünü bir oyun kitabının içinde de kullanabilirsiniz. Çoğu durumda, yalnızca ping isteği gerçekleştiren bir çalışma kitabı oluşturmayacaksınız. Ancak, tüm görevleri ping isteğinin koşulları içine sarabilirsiniz.
Aşağıdaki basit oyun kitabını düşünün:
- ev sahibi: hepsihale: evet
görevler:
- ping atmak
Yukarıdaki oyun kitabında 'become' yönergesini eklediğimi fark edebilirsiniz. Bu bir gereklilik değil, ancak standart bir kullanıcı için ping modülünün başarısız olduğu durumlarla karşılaştım. Artık oyun kitabını çalıştırabilir ve ana sunucunun başarılı bir 'pong' yanıtı için gereksinimleri karşılayıp karşılamadığını kontrol edebilirsiniz.
ansible-playbook ping.ymlPing başarısız olursa, aşağıdaki 'ulaşılamaz' hatasını alırsınız:
ölümcül: [35.222.210.12]: ULAŞILMAZ! => "changed": false, "msg": "Ssh aracılığıyla ana bilgisayara bağlanılamadı: ssh: ana bilgisayara 35 bağlanın.222.210.12 bağlantı noktası 22: Bağlantı zaman aşımına uğradı", "ulaşılamaz": trueYükseltme İstisnasını ping Modülü ile kullanma
Bir istisna oluşturmak için verileri bir kilitlenme olarak da belirtebilirsiniz. Bu, varsayılan dönüşü 'pong'dan 'crash'e değiştirir.'
Aşağıdaki oyun kitabını göz önünde bulundurun:
- ev sahibi: hepsihale: evet
görevler:
- ping:
kilitlenme: veri
Çalışma kitabını istisna dışında çalıştırmak aşağıdaki değeri döndürmelidir:
ansible-playbook ping_except.yml
Sonuç
Bu eğitim size ping modülünün çeşitli faydalarını gösterdi. Bu modül, çoğu Ansible modülü gibi karmaşık parametreler içermemesine rağmen, yine de güçlü yetenekler içerir. Örneğin, bir hatanın eksik bir Python ortamından kaynaklanıp kaynaklanmadığını kontrol etmek için ping modülünü kullanabilir ve gerekli ortamı uzak ana bilgisayara kurmak için bir görev oluşturabilirsiniz.