รับ stacktrace ข้อผิดพลาดขนาดใหญ่หนึ่งรายการของตัวแปร ansible ไม่พบข้อยกเว้น
ansible.errors.AnsibleUndefinedVariable: 'facter_ipaddress_eth1'
ขณะที่ฉันกำลังเรียกใช้หนังสือเล่น ansible
ค่าที่กำหนดที่นี่และที่อื่น ๆ
https://github.com/vfarcic/docker-swarm-networking/blob/master/ansible/group_vars/all
งาน [นักเทียบท่า: มีไฟล์เดเบียน] ***************************************** ************************************************** ************************************************** *********** เส้นทางงาน: /vagrant/ansible/roles/docker/tasks/main.yml:76
<10.100.192.200> สร้างการเชื่อมต่อ SSH สำหรับผู้ใช้: คนจรจัด
<10.100.192.200> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/vagrant/.vagrant/machines/swarm-master/virtualbox/private_key"' -o KbdInteractiveAuthentication=no - o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="vagrant"' -o ConnectTimeout=10 -o ControlPath=/home/vagrant/.ansible/cp/ceb9f96da5 10.100.192.200 '/bin/sh -c '"'"'echo ~vagrant && sleep 0'"'"''
<10.100.192.200> (0, b'/บ้าน/คนจรจัด\n', b'')
<10.100.192.200> สร้างการเชื่อมต่อ SSH สำหรับผู้ใช้: คนจรจัด
<10.100.192.200> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/vagrant/.vagrant/machines/swarm-master/virtualbox/private_key"' -o KbdInteractiveAuthentication=no - o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="vagrant"' -o ConnectTimeout=10 -o ControlPath=/home/vagrant/.ansible/cp/ceb9f96da5 10.100.192.200 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/vagrant/.ansible/tmp `"&& mkdir "` echo /home/vagrant/.ansible/tmp /ansible-tmp-1640389849.3916476-93636-106822855105481 `" && echo ansible-tmp-1640389849.3916476-93636-106822855105481="` echo /home/vagrant/.ansible/tmp/ansible-tmp-1640389849.3916476-93636-106822855105481 `" ) && นอน 0'"'"''
<10.100.192.200> (0, b'ansible-tmp-1640389849.3916476-93636-106822855105481=/home/vagrant/.ansible/tmp/ansible-tmp-1640389849.3916476-93636-1068228551054\n')
<10.100.192.200> สร้างการเชื่อมต่อ SSH สำหรับผู้ใช้: คนจรจัด
<10.100.192.200> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/vagrant/.vagrant/machines/swarm-master/virtualbox/private_key"' -o KbdInteractiveAuthentication=no - o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="vagrant"' -o ConnectTimeout=10 -o ControlPath=/home/vagrant/.ansible/cp/ceb9f96da5 10.100.192.200 '/bin/sh -c '"'"'rm -f -r /home/vagrant/.ansible/tmp/ansible-tmp-1640389849.3916476-93636-106822855105481/ > /dev/null 2>&1 && นอน 0'"'"''
<10.100.192.200> (0, ข'', ข'')
การย้อนกลับแบบเต็มคือ:
Traceback (การโทรครั้งล่าสุดล่าสุด):
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/__init__.py", บรรทัด 1139 ใน do_template
ความละเอียด = j2_concat(rf)
ไฟล์ "<เทมเพลต>" บรรทัดที่ 11 ในรูท
ไฟล์ "/usr/lib/python3/dist-packages/jinja2/runtime.py", บรรทัด 639 ใน _fail_with_undefined_error
เพิ่ม self._undefined_exception (คำใบ้)
jinja2.exceptions.UndefinedError: 'facter_ipaddress_eth1' ไม่ได้กำหนด
ในระหว่างการจัดการข้อยกเว้นข้างต้น มีข้อยกเว้นอื่นเกิดขึ้น:
Traceback (การโทรครั้งล่าสุดล่าสุด):
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/vars.py", บรรทัดที่ 98 ใน __getitem__
ค่า = self._templar. template (ตัวแปร)
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/__init__.py", บรรทัด 869 ในเทมเพลต
ผลลัพธ์ = self.do_template(
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/__init__.py", บรรทัด 1176 ใน do_template
ยก AnsibleUndefinedVariable(e)
ansible.errors.AnsibleUndefinedVariable: 'facter_ipaddress_eth1' ไม่ได้กำหนด
ในระหว่างการจัดการข้อยกเว้นข้างต้น มีข้อยกเว้นอื่นเกิดขึ้น:
Traceback (การโทรครั้งล่าสุดล่าสุด):
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/__init__.py", บรรทัด 1139 ใน do_template
ความละเอียด = j2_concat(rf)
ไฟล์ "<เทมเพลต>" บรรทัดที่ 9 ในรูท
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/__init__.py", บรรทัด 404, ใน resolution_or_missing
val = super(AnsibleContext, self).resolve_or_missing(คีย์)
ไฟล์ "/usr/lib/python3/dist-packages/jinja2/runtime.py", บรรทัด 217, ใน resolution_or_missing
ส่งคืน resolution_or_missing (ตัวเอง, คีย์)
ไฟล์ "/usr/lib/python3/dist-packages/jinja2/runtime.py", บรรทัด 129, ใน resolution_or_missing
ส่งคืนบริบทผู้ปกครอง [คีย์]
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/vars.py", บรรทัด 100 ใน __getitem__
เพิ่ม AnsibleUndefinedVariable("%s: %s" % (to_native(ตัวแปร), e.message))
ansible.errors.AnsibleUndefinedVariable: {{ facter_ipaddress_eth1 }}: 'facter_ipaddress_eth1' ไม่ได้กำหนด
ในระหว่างการจัดการข้อยกเว้นข้างต้น มีข้อยกเว้นอื่นเกิดขึ้น:
Traceback (การโทรครั้งล่าสุดล่าสุด):
ไฟล์ "/usr/lib/python3/dist-packages/ansible/plugins/action/template.py", บรรทัด 150, ทำงานอยู่
ผลลัพธ์ = templar.do_template( template_data, reserved_trailing_newlines=True, escape_backslashes=False)
ไฟล์ "/usr/lib/python3/dist-packages/ansible/template/__init__.py", บรรทัด 1176 ใน do_template
ยก AnsibleUndefinedVariable(e)
ansible.errors.AnsibleUndefinedVariable: {{ facter_ipaddress_eth1 }}: 'facter_ipaddress_eth1' ไม่ได้กำหนด
ร้ายแรง: [10.100.192.200]: ล้มเหลว! => {
"เปลี่ยนแปลง": เท็จ
"msg": "AnsibleUndefinedVariable: {{ facter_ipaddress_eth1 }}: 'facter_ipaddress_eth1' ไม่ได้ถูกกำหนด"
}
เล่น RECAP ************************************************ ************************************************** ************************************************** ********************************** 10.100.192.200 : ok=14 เปลี่ยนแล้ว=6 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยแล้ว=0 ละเว้น=0
หลังจากทำตามคำแนะนำของ @alexD ฉันได้เพิ่มงานเพื่อติดตั้งแฟคเตอร์ แต่ฉันยังคงได้รับข้อผิดพลาดเดิม:
- ชื่อ: ติดตั้งแฟคเตอร์
ดิบ: apt install -y factor
กลายเป็น: จริง
แท็ก: [นักเทียบท่า]
- ชื่อ: ตรวจสอบแฟคเตอร์
คำสั่ง: "ปัจจัย ipaddress_eth1"
ลงทะเบียน: ผลลัพธ์
แท็ก: [นักเทียบท่า]