Điểm:1

Làm cách nào tôi có thể chạy các lệnh đường ống phức tạp trong Autoinstall/Cloud-Init?

lá cờ cn

Trong runcmd dữ liệu người dùng khởi tạo trên đám mây hoặc trong các lệnh trễ tự động cài đặt, về cơ bản, tôi cần chạy lệnh này như một phần của quá trình khởi tạo Clevis + Tang cho ổ mã hóa LUKS:

echo '<bí mật>' | clevis luks bind -d /dev/sda2 tang '{"url": "http://<ip-tangserver>" , "adv": "/tmp/adv.jws" }'

Vấn đề là, tôi đang gặp khó khăn trong việc xác định xem điều này có thực sự khả thi khi sử dụng lệnh runcmd hoặc lệnh muộn hay không và nếu vậy, làm cách nào tôi có thể thực hiện việc này theo cách tuân thủ YAML, ví dụ:

chạy cmd:
  - echo 'some-luks-temp-passwd' | clevis luks bind -d /dev/vda3 tang '{"url": "http://192.168.122.150" , "adv": "/tmp/adv.jws" }'

Kèm theo toàn bộ chuỗi trên dường như cũng không hoạt động, yamllint vẫn hiển thị lỗi cú pháp:

chạy cmd:
  - "echo 'some-luks-temp-passwd' | clevis luks bind -d /dev/vda3 tang '{"url": "http://192.168.122.150" , "adv": "/tmp/adv.jws "}'"

Cảm ơn!

lnee avatar
lá cờ td
hãy thử cái này `bash -c 'echo '\'''\'' | clevis luks bind -d /dev/sda2 tang '\''{"url": "http://" , "adv": "/tmp/adv.jws" }'\'''`
lnee avatar
lá cờ td
Những gì tôi đã làm là đặt thứ tôi muốn chạy vào một tệp và thực hiện lệnh `i=$(cat tmp)` để chạy tiếp lệnh này `set | grep "^i="` hãy xóa phần "i=" và bạn vẫn ổn
lá cờ cn
Cảm ơn @lnee, nhưng có vẻ như việc thoát ở trên vẫn dẫn đến lỗi yamllint. `lỗi cú pháp: dự kiến , nhưng tìm thấy ','` Tôi sẽ tiếp tục đào nhưng cảm ơn bạn đã có tùy chọn để thử!
lnee avatar
lá cờ td
`bash -c "$(xxd -r -p
Điểm:1
lá cờ jp

Bạn có thể sử dụng Cú pháp nhiều dòng YAML. Tôi không chắc lỗi cú pháp hiện tại của bạn là gì, nhưng đây là tự động cài đặt đoạn mã sử dụng json, đường ống, chuyển hướng đầu ra và Heredoc theo cú pháp nhiều dòng.

#cloud-config
chạy cmd:
  - |
    echo '{"foo":"FOO" , "bar" : "BAR"}' > /run/cmd.log
    con mèo <<EOF | xxd >> /run/cmd.log
    {
      "foo": "FOO",
      "quán bar": "quán bar"
    }
    EOF

FWIW, đây là kết quả /run/cmd.log tập tin

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

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.