Puncte:1

Cum pot rula comenzi complexe cu conducte în Autoinstall / Cloud-Init?

drapel cn

Fie în cloud-init user-data runcmd, fie în autoinstall late-commands, trebuie să rulez în esență această comandă ca parte a inițializării Clevis + Tang pentru un volum criptat LUKS:

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

Problema este că îmi este greu să determin dacă acest lucru este de fapt posibil folosind fie runcmd, fie comenzi late-și, dacă da, cum pot face acest lucru într-un mod compatibil cu YAML, de exemplu:

runcmd:
  - ecou 'some-luks-temp-passwd' | clevis luks bind -d /dev/vda3 tang '{"url": "http://192.168.122.150" , "adv": "/tmp/adv.jws" }'

Nici includerea întregului șir de mai sus nu pare să funcționeze, yamllint încă arată o eroare de sintaxă:

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

Mulțumiri!

lnee avatar
drapel td
încercați acest `bash -c 'echo '\'''\'' | clevis luks bind -d /dev/sda2 tang '\''{"url": "http://" , "adv": "/tmp/adv.jws" }'\'''`
lnee avatar
drapel td
Ceea ce am făcut a fost să pun lucrul pe care vreau să-l rulez într-un fișier și să fac `i=$(cat tmp)` următoarea rulare acest `set | grep "^i="` elimină partea "i=" și ești bine
drapel cn
Mulțumesc @lnee, dar se pare că evadarea de mai sus duce în continuare la eșecuri yamllint. `eroare de sintaxă: așteptat , dar a găsit ','' Voi continua să sap, dar vă mulțumesc pentru opțiunea de a încerca!
lnee avatar
drapel td
`bash -c "$(xxd -r -p
Puncte:1
drapel jp

S-ar putea să poți folosi Sintaxa multilinie YAML. Nu sunt sigur ce eșuează cu sintaxa dvs. actuală, dar iată un autoinstalare fragment care folosește json, piping, redirecționare de ieșire și Heredoc în sintaxa multilinie.

#cloud-config
runcmd:
  - |
    echo '{"foo":"FOO" , "bar" : "BAR"}' > /run/cmd.log
    pisica <<EOF | xxd >> /run/cmd.log
    {
      "foo": "FOO",
      "bar": "BAR"
    }
    EOF

FWIW, acesta este rezultatul /run/cmd.log fişier

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 ,. "bar": "BAR"
00000020: 0a7d 0a .}.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.