Рейтинг:1

Как я могу запускать сложные конвейерные команды в Autoinstall/Cloud-Init?

флаг cn

Либо в cloud-init user-data runcmd, либо в поздних командах автоматической установки мне нужно по существу запустить эту команду как часть инициализации Clevis + Tang для зашифрованного тома LUKS:

эхо '<секрет>' | clevis luks bind -d /dev/sda2 tang '{"url": "http://<ip-tangserver>", "adv": "/tmp/adv.jws" }'

Проблема в том, что мне трудно определить, возможно ли это на самом деле с помощью runcmd или поздних команд, и если да, то как я могу сделать это в соответствии с YAML, например:

выполнить команду:
  - echo 'some-luks-temp-passwd' | clevis luks bind -d /dev/vda3 tang '{"url": "http://192.168.122.150", "adv": "/tmp/adv.jws" }'

Включение всей приведенной выше строки, похоже, тоже не работает, yamllint по-прежнему показывает синтаксическую ошибку:

выполнить команду:
  - "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
попробуйте это `bash -c 'echo '\'''\'' | скоба luks bind -d /dev/sda2 tang '\''{"url": "http://" , "adv": "/tmp/adv.jws" }'\'''`
lnee avatar
флаг td
Что я сделал, так это поместил то, что я хочу запустить, в файл и сделал `i=$(cat tmp)`, затем запустил этот `set | grep "^i="` удалите часть "i=", и все в порядке
флаг cn
Спасибо @lnee, но похоже, что описанное выше экранирование по-прежнему приводит к сбоям yamllint. `синтаксическая ошибка: ожидается , но нашел ','` Я собираюсь продолжать копать, но спасибо за возможность попробовать!
lnee avatar
флаг td
`bash -c "$(xxd -r -p
Рейтинг:1
флаг jp

Возможно, вы сможете использовать Многострочный синтаксис YAML. Я не уверен, что не так с вашим текущим синтаксисом, но вот автоматическая установка фрагмент, который использует json, конвейер, перенаправление вывода и Heredoc в многострочном синтаксисе.

#cloud-config
выполнить команду:
  - |
    echo '{"foo":"FOO", "bar" : "BAR"}' > /run/cmd.log
    кошка <<ЕОФ | xxd >> /run/cmd.log
    {
      "фу": "ФОО",
      "бар": "БАР"
    }
    EOF

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 .}.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.