ดังนั้นฉันจึงมี 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/).