Score:1

ฉันจะเรียกใช้คำสั่งไพพ์ที่ซับซ้อนในการติดตั้งอัตโนมัติ / Cloud-Init ได้อย่างไร

ธง cn

ใน cloud-init user-data runcmd หรือใน autoinstall late-commands ฉันต้องเรียกใช้คำสั่งนี้โดยพื้นฐานแล้วเป็นส่วนหนึ่งของการเริ่มต้น Clevis + Tang สำหรับวอลุ่มที่เข้ารหัส LUKS:

echo '<ความลับ>' | clevis luks bind -d /dev/sda2 tang '{"url": "http://<ip-tangserver>" , "adv": "/tmp/adv.jws" }'

ปัญหาคือ ฉันมีปัญหาในการพิจารณาว่าเป็นไปได้จริงหรือไม่โดยใช้คำสั่ง runcmd หรือ late-commands และถ้าเป็นเช่นนั้น ฉันจะทำสิ่งนี้ด้วยวิธีที่สอดคล้องกับ YAML ได้อย่างไร เช่น:

เรียกใช้ cmd:
  - echo 'some-luks-temp-passwd' | clevis luks bind -d /dev/vda3 tang '{"url": "http://192.168.122.150" , "adv": "/tmp/adv.jws" }'

การแนบสตริงทั้งหมดด้านบนดูเหมือนจะไม่ทำงานเช่นกัน yamllint ยังคงแสดงข้อผิดพลาดทางไวยากรณ์:

เรียกใช้ cmd:
  - "echo 'some-luks-temp-passwd' | clevis luks bind -d /dev/vda3 tang '{"url": "http://192.168.122.150" , "adv": "/tmp/adv.jws " }'"

ขอบคุณ!

lnee avatar
td flag
ลองสิ่งนี้ `bash -c 'echo '\'''\'' | ปิ๊น luks ผูก -d /dev/sda2 tang '\''{"url": "http://" , "adv": "/tmp/adv.jws" }'\'''`
lnee avatar
td flag
สิ่งที่ฉันทำคือใส่สิ่งที่ฉันต้องการเรียกใช้ในไฟล์และทำ `i=$(cat tmp)` ถัดไปให้เรียกใช้ `set | grep "^i="` ลบส่วน "i=" ออก เท่านี้ก็เรียบร้อย
cn flag
ขอบคุณ @lnee แต่ดูเหมือนว่าการหลบหนีด้านบนยังคงส่งผลให้เกิดความล้มเหลวของ yamllint `ข้อผิดพลาดทางไวยากรณ์: ที่คาดไว้ , แต่พบว่า ','` ฉันจะขุดต่อไป แต่ขอบคุณสำหรับตัวเลือกที่จะลอง!
lnee avatar
td flag
`ทุบตี -c "$(xxd -r -p
Score:1
ธง jp

คุณอาจจะสามารถใช้ ไวยากรณ์หลายบรรทัดของ YAML. ฉันไม่แน่ใจว่าเกิดอะไรขึ้นกับไวยากรณ์ปัจจุบันของคุณ แต่นี่คือ ติดตั้งอัตโนมัติ ข้อมูลโค้ดที่ใช้ json, piping, output redirection และ Heredoc ในไวยากรณ์หลายบรรทัด

#cloud-config
เรียกใช้ cmd:
  - |
    echo '{"foo":"FOO" , "bar" : "BAR"}' > /run/cmd.log
    แมว <<EOF | xxd >> /run/cmd.log
    {
      "ฟู": "ฟู",
      "บาร์": "บาร์"
    }
    อฟ

FWIW นี่คือผลลัพธ์ /run/cmd.log ไฟล์

root@ubuntu-server:/# cat /run/cmd.log
{"foo":"FOO" , "บาร์" : "BAR"}
00000000: 7b0a 2020 2266 6f6f 223a 2022 464f 4f22 { "ฟู": "ฟู"
00000010: 2c0a 2020 2262 6172 223a 2022 4241 5222 ,. "บาร์": "บาร์"
00000020: 0a7d 0a .}.

โพสต์คำตอบ

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