ดังนั้นฉันจึงมี pi ราสเบอร์รี่สองสามตัวที่ฉันพยายามใช้เป็นคลัสเตอร์และฉันเรียนรู้ที่จะลองและจัดการได้ง่ายขึ้น ฉันพบปัญหาแม้ว่า ฉันสามารถตั้งค่า IP คงที่ด้วยตนเองโดยใช้ netctl แต่เมื่อฉันพยายามทำด้วย ansible โดยใช้คำสั่งเดียวกันกับที่ฉันมีปัญหา นอกจากนี้ยังมีโน้ตแปลก ๆ รุ่นที่ใช้งานไม่ได้ใช้งานไม่ได้กับราสเบอร์รี่ pi 4 แต่จะทำงานกับราสเบอร์รี่ pi b
ตัวอย่างเช่น ถ้าฉันใช้สิ่งต่อไปนี้ (ป้อนด้วยตนเอง) ฉันจะไม่มีปัญหาอะไรเลย:
/etc/netctl/eth0
คำอธิบาย='IP แบบคงที่สำหรับคลัสเตอร์'
อินเทอร์เฟซ = eth0
การเชื่อมต่อ = อีเธอร์เน็ต
IP = คงที่
ที่อยู่=('192.168.1.173/24')
#Routes=('192.168.0.0/24 ผ่าน 192.168.1.2')
เกตเวย์='192.168.1.1'
DNS=('192.168.1.1')
netctl เปิดใช้งาน eth0
systemctl หยุด dhcpcd
systemctl หยุด dhcpcd
และหลังจากรีบูตเครื่องก็ใช้งานได้ดี
ฉันยังสามารถใช้งานได้หากฉันใช้สิ่งต่อไปนี้:
- ชื่อ: คัดลอกไฟล์ IP แบบคงที่
บล็อก:
- ชื่อ: สร้างไฟล์ netctl
ดิบ: echo $'Description=\'การเชื่อมต่ออีเธอร์เน็ตแบบคงที่พื้นฐาน\'\nInterface=eth0\nConnection=ethernet\nIP=static\nAddress=(\'{{ host_ip_addr }}/24\')\n#Routes=( \'192.168.0.0/24 ผ่าน 192.168.1.2\')\nGateway=\'192.168.1.1\'\nDNS=(\'192.168.1.1\')' > /etc/netctl/eth0
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
- ชื่อ: ไฟล์ chmod netctl
ดิบ: chmod 644 /etc/netctl/eth0
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
- ชื่อ: เริ่มต้นและเปิดใช้งาน netctl
บล็อก:
- ชื่อ: เปิดใช้งาน eth0 ใน netctl
ดิบ: netctl เปิดใช้งาน eth0
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
ลงทะเบียน: สุทธิ
- ชื่อ: หยุด dhcpcd
ดิบ: systemctl หยุด dhcpcd;
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
ลงทะเบียน: net2
- ชื่อ: ปิดใช้งาน dhcpcd
ดิบ: systemctl ปิดการใช้งาน dhcpcd;
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
ลงทะเบียน: net3
แต่มันใช้งานไม่ได้ถ้าฉันใช้:
- ชื่อ: ตั้งค่า IP แบบคงที่
แม่แบบ:
src: staticIP-netctl.j2
ปลายทาง: /etc/netctl/eth0
เจ้าของ: ราก
กลุ่ม: ราก
โหมด: 0644
- ชื่อ: เริ่มต้นและเปิดใช้งาน netctl
บล็อก:
- ชื่อ: เปิดใช้งาน eth0 ใน netctl
บริการ:
ชื่อ: netctl
สถานะ: เริ่มต้น
เปิดใช้งาน: ใช่
- ชื่อ: หยุดและปิดการใช้งาน dhcpcd (ที่อยู่ IP แบบไดนามิก)
บริการ:
ชื่อ: dhcpcd
สถานะ: หยุด
เปิดใช้งาน: ไม่
หรือสิ่งนี้ก็ล้มเหลวเช่นกัน
- ชื่อ: ตั้งค่า IP แบบคงที่
แม่แบบ:
src: staticIP-netctl.j2
ปลายทาง: /etc/netctl/eth0
เจ้าของ: ราก
กลุ่ม: ราก
โหมด: 0644
- ชื่อ: เริ่มต้นและเปิดใช้งาน netctl
บล็อก:
- ชื่อ: เปิดใช้งาน eth0 ใน netctl
ดิบ: netctl เปิดใช้งาน eth0
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
- ชื่อ: หยุดและปิดการใช้งาน dhcpcd (ที่อยู่ IP แบบไดนามิก)
ดิบ: systemctl หยุด dhcpcd
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
- ชื่อ: หยุดและปิดใช้งาน dhcpcd 2 (ที่อยู่ IP แบบไดนามิก)
ดิบ: systemctl ปิดใช้งาน dhcpcd
หาเรื่อง:
เรียกใช้งานได้: /bin/bash
ของฉัน staticIP-netctl.j2
ไฟล์คือ:
คำอธิบาย='การเชื่อมต่ออีเธอร์เน็ตพื้นฐานแบบสแตติก'
อินเทอร์เฟซ = eth0
การเชื่อมต่อ = อีเธอร์เน็ต
IP = คงที่
ที่อยู่=('{{ host_ip_addr }}/24')
#Routes=('192.168.0.0/24 ผ่าน 192.168.1.2')
เกตเวย์='192.168.1.1'
DNS=('192.168.1.1')
และมันอยู่ในโฟลเดอร์ roles/role/ templates มันยังถูกคัดลอกอย่างถูกต้องเนื่องจากฉันได้ตรวจสอบด้วยตนเองในแต่ละ pi
ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น?
แก้ไขโซลูชั่น:
ปรากฎว่าเป็นปัญหาเคอร์เนล (linux-aarch64) หลังจากอัปเดตแพ็คเกจทั้งหมดในการติดตั้งใหม่ เคอร์เนลไม่รู้จักอินเทอร์เฟซเครือข่ายใด ๆ ของฉันอีกต่อไป คุณสามารถเปลี่ยนเป็น linux-raspberrypi4 หรือดาวน์เกรดเป็น linux-aarch64 5.11.x ก่อนกลางเดือนกันยายน (http://tardis.tiny-vps.com/aarm/repos/2021/06/13/aarch64/core/).