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.