ฉันตรวจสอบสิ่งนี้เป็นเวลาหลายชั่วโมง ดูเหมือนว่าวิธีการนี้ sd_bus_start ถูกเปลี่ยนเป็นรวมการตรวจสอบเพิ่มเติม ฉันไม่สามารถจำกัดให้แคบลงว่ากำลังมองหาอะไรอีก แต่ฉันสามารถหาวิธีแก้ปัญหาที่สวยงามกว่านี้เพื่อทำงานเดียวกันให้สำเร็จโดยใช้คำสั่ง systemctl ระยะไกลแทนการเมานต์ไดเร็กทอรีทั้งหมดจากโฮสต์
ระบบระยะไกลctl
systemctl
รองรับการสั่งการระยะไกลผ่านทาง --โฮสต์ / -H
ธง. มันใช้ ssh เพื่อเชื่อมต่อกับรีโมตโฮสต์ ดังนั้นจึงจำเป็นต้องใช้คู่คีย์ ssh เนื่องจากเราเป็นผู้ควบคุมโฮสต์ที่เราใช้งานอยู่ การติดตั้งจึงค่อนข้างตรงไปตรงมา
คำสั่งนักเทียบท่า (หรือ Kubernetes arg)
นี่คือคำสั่งทั้งหมดที่สามารถใช้ได้ ฉันจะแยกย่อยแต่ละส่วนด้านล่าง ข้อสันนิษฐานของคอนเทนเนอร์มีอยู่ว่า systemctl
และ จุ๊ๆ
ติดตั้งแล้ว คอนเทนเนอร์กำลังทำงานบนเครือข่ายโฮสต์ และที่ ราก
โฮมไดเร็กตอรี่ของบัญชีถูกเมาต์แล้ว (คุณสามารถใช้อย่างอื่นได้หากต้องการ)
(ls ~/.ssh/id_rsa || ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N "")
&& (grep -qxF $(cat ~/.ssh/id_rsa.pub) ~/.ssh/authorized_keys || echo $(cat ~/.ssh/id_rsa.pub) > ~/.ssh/authorized_keys)
&& (grep -qxF "StrictHostKeyChecking no" ~/.ssh/config || echo "StrictHostKeyChecking no" >> ~/.ssh/config)
&& (grep -qxF "UserKnownHostsFile /dev/null" ~/.ssh/config || echo "UserKnownHostsFile /dev/null" >> ~/.ssh/config)
&& systemctl -H [email protected] เริ่ม nfs-server.service
คำสั่งนี้กำลังดูว่า ~/.ssh/id_rsa
มีไฟล์อยู่แล้ว มิฉะนั้นให้สร้างขึ้นใหม่
(ls ~/.ssh/id_rsa || ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N "")
ตอนนี้เราเพิ่มรหัสสาธารณะของเราไปยังรหัสที่ได้รับอนุญาตของเรา หากไม่มีอยู่ในไฟล์แล้ว
(grep -qxF "$(cat ~/.ssh/id_rsa.pub)" ~/.ssh/authorized_keys || echo "$(cat ~/.ssh/id_rsa.pub)" > ~/.ssh/authorized_keys)
สิ่งนี้สามารถทำให้ปลอดภัยยิ่งขึ้นโดยวางไว้ในส่วนของการกำหนดค่า ssh สำหรับ 127.0.0.1
แต่เราต้องการ
(grep -qxF "StrictHostKeyChecking no" ~/.ssh/config || echo "StrictHostKeyChecking no" >> ~/.ssh/config)
&& (grep -qxF "UserKnownHostsFile /dev/null" ~/.ssh/config || echo "UserKnownHostsFile /dev/null" >> ~/.ssh/config)
ในที่สุดเราก็มีจริง systemctl
สั่งการ. แจ้งให้ทราบ -H [email protected]
.
systemctl -H [email protected] เริ่ม nfs-server.service
เพื่อความปลอดภัยสูงสุด ควรตั้งค่าคีย์และผู้ใช้ภายนอกคอนเทนเนอร์ก่อน (ผ่าน Ansible หรือคล้ายกัน) และอนุญาตเฉพาะ systemctl -H
คำสั่งภายในคอนเทนเนอร์