Ansible - Sorun Giderme

Ansible oyun kitaplarında hata ayıklamak için en yaygın stratejiler, aşağıda verilen modülleri kullanmaktır -

Hata Ayıklama ve Kayıt

Bu ikisi Ansible'da bulunan modüllerdir. Hata ayıklama amacıyla, iki modülü mantıklı bir şekilde kullanmamız gerekir. Örnekler aşağıda gösterilmiştir.

Ayrıntıları Kullan

Ansible komutu ile ayrıntı düzeyi sağlanabilir. Komutları ayrıntı düzeyi bir (-v) veya iki (-vv) ile çalıştırabilirsiniz.

Önemli noktalar

Bu bölümde, birkaç kavramı anlamak için birkaç örnek üzerinden geçeceğiz.

Bir değişkenle başlayan bir argümandan alıntı yapmıyorsanız. Örneğin,

vars: 
   age_path: {{vivek.name}}/demo/ 
   
{{vivek.name}}

Bu bir hata oluşturacaktır.

Çözüm

vars: 
   age_path: "{{vivek.name}}/demo/" – marked in yellow is the fix. 
 
How to use register -> Copy this code into a yml file say test.yml and run it  
--- 
#Tsting 
- hosts: tomcat-node 
   tasks: 
 
   - shell: /usr/bin/uptime 
      register: myvar 
      - name: Just debugging usage 
         debug: var = myvar

Bu kodu Ansible-playbook -i hosts test.yml komutuyla çalıştırdığımda, çıktıyı aşağıda gösterildiği gibi alıyorum.

Yaml'ı görürseniz, bir komutun çıktısını bir değişkene kaydettik - myvar ve sadece çıktıyı yazdırdı.

Sarı ile işaretlenmiş metin, bize daha ileri akış kontrolü için kullanılabilecek olan-myvar değişkeninin özelliğini anlatır. Bu şekilde, belirli bir değişkenin maruz kaldığı özellikleri öğrenebiliriz. Aşağıdaki hata ayıklama komutu buna yardımcı olur.

$ ansible-playbook -i hosts test.yml 

PLAY [tomcat-node] ***************************************************************
**************** ****************************************************************
*************** ****************************** 
 
TASK [Gathering Facts] *****************************************************************
************** *****************************************************************
************** ************************** 
Monday 05 February 2018  17:33:14 +0530 (0:00:00.051) 0:00:00.051 ******* 
ok: [server1] 
 
TASK [command] ******************************************************************
************* ******************************************************************
************* ********************************** 
Monday 05 February 2018  17:33:16 +0530 (0:00:01.697) 0:00:01.748 ******* 
changed: [server1] 
 
TASK [Just debugging usage] ******************************************************************
************* ******************************************************************
************* ********************* 
Monday 05 February 2018  17:33:16 +0530 (0:00:00.226) 0:00:01.974 ******* 
ok: [server1] => { 
   "myvar": { 
      "changed": true, 
      "cmd": "/usr/bin/uptime", 
      "delta": "0:00:00.011306", 
      "end": "2018-02-05 17:33:16.424647", 
      "rc": 0, 
      "start": "2018-02-05 17:33:16.413341", 
      "stderr": "", 
      "stderr_lines": [], 
      "stdout": " 17:33:16 up 7 days, 35 min,  1 user,  load average: 0.18, 0.15, 0.14", 
      "stdout_lines": [ 
         " 17:33:16 up 7 days, 35 min,  1 user,  load average: 0.18, 0.15, 0.14" 
      ] 
   } 
} 
 
PLAY RECAP ****************************************************************************
**********************************************************************************
 ************************************** 
server1 : ok = 3    changed = 1    unreachable = 0    failed = 0

Yaygın Başucu Kitabı Sorunları

Bu bölümde, birkaç genel başucu kitabı sorununu öğreneceğiz. Sorunlar -

  • Quoting
  • Indentation

Başucu kitabı yaml biçiminde yazılmıştır ve yukarıdaki ikisi yaml / playbook'taki en yaygın sorunlardır.

Yaml sekme tabanlı girintiyi desteklemez ve boşluk tabanlı girintiyi destekler, bu nedenle aynı konuda dikkatli olunması gerekir.

Note - yaml yazmayı tamamladığınızda bu siteyi açın (https://editor.swagger.io/) ve yaml'ın düzgün bir şekilde derlendiğinden emin olmak için sol tarafa yaml'ınızı kopyalayıp yapıştırın. Bu sadece bir ipucu.

Swagger, uyarıdaki hataları olduğu kadar hatayı da nitelendirir.