Может ли файл write_files облачной конфигурации контролировать добавление новой строки к файлу?

I ' Я хочу использовать облачную конфигурацию в пользовательских данных на AWS для записи файла, например / etc / myfile. Мои эксперименты до сих пор, кажется, предполагают, что если блок write_files является последним битом пользовательских данных, то конечный символ новой строки не записывается в результирующий файл, тогда как если есть другие биты конфигурации, следующие за новая строка добавляется к файлу. Например:

#cloud-config
write_files:
  - path: "/etc/myfile"
    permissions: "0444"
    owner: "root"
    content: |
      hello
  - path: "/etc/myfile2"
    permissions: "0444"
    owner: "root"
    content: |
      hello

... создаст два файла. Но у них будет разное содержание:

[me@ip-172-31-40-207:~]$ cat /etc/myfile
hello
[me@ip-172-31-40-207:~]$ cat /etc/myfile2
hello[me@ip-172-31-40-207:~]$

Кроме того, чтобы вручную убедиться, что write_files никогда не будет внизу, есть ли способ контролировать добавление новой строки и документировано ли это где-нибудь?

0
задан 3 February 2016 в 15:42
1 ответ

Оказывается, что именно труба (|) стала ее причиной, в сочетании с тем, что я пропустил на входе трейлинговую новую линию. Таким образом, решение заключается в пропуске трубы, в результате чего оба файла были написаны без прокладки новой строки.

Труба означает "сохранение форматирования следующего блока текста", что cloudd-init делает правильно, включая новые строки. Так как я опустил пробельные символы (т.е. самую последнюю строку в примере выше), myfile2 был записан без строки.

.
0
ответ дан 5 December 2019 в 10:43

Теги

Похожие вопросы