Облачная инициализация виртуальной машины Azure переопределяет файл /etc/fstab

Предполагая, что внутри полей csv с двойными кавычками нет запятых, мы можем сделать следующее в простом sedкоде:

sed -ne '
     s/,/&\n/2;s/\n[^,]*,//;h
   n;s/.*,//;H
   n;s/.*,//;H
   g;s/\n/,/gp
' yourfile.csv

Результаты

"1","toto corp","+123456789","+198765432","totocorp.com"
"2","Namek corp","+14377678563","+19867334565","Namekcorp.com"
0
26.06.2019, 11:51
2 ответа

Я понимаю, что это поздно, но я надеюсь, что это поможет.

В Azure файл конфигурации агента Linux (waagent.conf )обычно устанавливает точку подключения, и вы делаете это оттуда для большинства поддерживаемых дистрибутивов Linux. Обычно вы найдете точку монтирования по умолчанию как «/mnt/resource»

.

Однако в Ubuntu 16.04+ облачная -инициализация переопределяет конфигурацию точки монтирования waagent.conf ephemeral0, а также fstab при каждом освобождении/запуске. Еще,вы можете указать точку монтирования несколькими способами, которые сохранятся после перезагрузки или освобождения/запуска. Я расскажу о них ниже.

Теперь ответим на ваши вопросы:

вопрос 1 :Должен ли я просто переместить пользовательскую точку за пределы /mnt? Я думаю, что вам, вероятно, следует, если вы монтируете что-то в /mnt, поскольку вы, вероятно, не хотите монтировать что-то во временную. диск, если вы не собираетесь это делать.

вопрос 2 :что делает облако -init и можно ли от него избавиться? Я думаю, что вам не следует избавляться от него. Вместо этого вы можете попробовать правильно настроить точку монтирования.

Как заставить его сохраняться? Предположим, вы хотите смонтировать временную среду Azure. диск в /mnt/resource.

Способ 1 (очистить ):Создать новое облако -init conf. файл в /etc/cloud/cloud.cfg.d для определения точек монтирования:

    cat >> /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF
mounts:
- [ ephemeral0, /mnt/resource ]
EOF

Способ 2 (грязный ):Удалить облако -параметры инициализации монтирования из временн. запись диска fstab, чтобы она выглядела так:

/dev/disk/cloud/azure_resource-part1    /mnt    auto    defaults,nofail       0       2

Метод 3 (противный ):Найдите строку точки монтирования в cc _mounts.py, путь:/usr/lib/python3/dist-packages/cloudinit/config/cc_mounts.pyи измените точку монтирования в коде. Строка должна выглядеть как:

defmnts = [["ephemeral0", "/mnt", "auto", defvals[3], "0", "2"],
           ["swap", "none", "swap", "sw", "0", "0"]]

Попробуйте и посмотрите, что получится.

3
24.04.2020, 17:51

простой обходной путь, который я нашел, просто после редактирования файла /etc/fstabустановите chattr +i /etc/fstab, таким образом облако -init не сможет перезаписать его

0
01.09.2021, 13:24

Теги

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