ฉันจะหาบันทึกข้อผิดพลาด ansible ล่าสุดได้ที่ไหน


11

ฉันใช้สคริปต์ ansible เพื่อทำให้การกำหนดค่าเซิร์ฟเวอร์ขึ้น ฉันเรียกใช้สคริปต์จากภายในเซิร์ฟเวอร์และทำทุกอย่างที่คลัง localhost

ตอนนี้การเชื่อมต่อ ssh ฉันต้องไปยังเซิร์ฟเวอร์ปิดและฉันไม่พบไฟล์บันทึก เส้นทางบันทึกมาตรฐานของสิ่งนี้อยู่ที่ไหน ภายใต้ / var / log ไม่มีไฟล์ ansible

ฉันกำลังเรียกใช้สคริปต์อีกครั้งและฉันคาดว่าข้อผิดพลาดจะกลับมาอีกครั้ง แต่นี่ไม่ใช่วิธีการแก้ปัญหาที่ยอดเยี่ยมเนื่องจากสคริปต์ใช้เวลาสองสามชั่วโมงกว่าจะถึงจุดผิดพลาด

คำตอบ:


13

Ansible ไม่สร้างไฟล์บันทึกของตัวเองตามค่าเริ่มต้นคุณต้องบอกให้ใช้ansible.cfgไฟล์ เบิ้ลไม่ทำบางอย่างเข้าสู่ระบบเพื่อ syslog โดยค่าเริ่มต้น:

โปรดทราบว่าจะไม่บันทึกการโต้แย้งของโมดูลที่เรียกว่า syslog ของเครื่องที่จัดการโดยไม่มีการตั้งค่านี้

เพื่อที่จะได้เข้าสู่ระบบ args โมดูลที่ syslog ของเครื่องคุณจัดการ

หากต้องการเปิดการบันทึกแบบเต็มบนเครื่องควบคุมของคุณคุณสามารถสร้างansible.cfgไฟล์ที่มีลักษณะดังนี้:

[defaults]
log_path = ./ansible.log

จากนั้นบันทึกไว้ที่ใดก็ตามที่ ansible จะมองหา Ansible ตรวจสอบตำแหน่งของansible.cfgไฟล์เหล่านี้ตามลำดับนี้:

  • ANSIBLE_CONFIG (ตัวแปรสภาพแวดล้อม)
  • ansible.cfg (ในไดเรกทอรีปัจจุบัน)
  • .ansible.cfg (ในโฮมไดเร็กทอรี)
  • /etc/ansible/ansible.cfg

อีกทางเลือกหนึ่งคือการตั้งค่าANSIBLE_LOG_PATHตัวแปรสภาพแวดล้อมไปยังเส้นทางที่คุณต้องการเข้าสู่ระบบ - มันเทียบเท่ากับการตั้งค่าlog_pathตัวเลือกในansible.cfgไฟล์

ดูข้อมูลเพิ่มเติมได้ที่นี่: http://docs.ansible.com/intro_configuration.html


2
นอกจากนี้ยังเป็นไปได้ที่จะตั้งค่าตัวแปรสภาพแวดล้อมANSIBLE_LOG_PATH
59

2

ลองดูที่ไฟล์ syslog ในระบบของคุณ นั่นคือสิ่งที่มันมักจะจบลงสำหรับฉัน (Ubuntu 12.04)

ความล้มเหลวนั้นคุณอาจต้องการเรียกใช้ansible-playbook -vvvv $argsเพื่อเปิดใช้งานการบันทึกการดีบักบางส่วนจากนั้นteeไปยังไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.