Обработчик, работающий после другого плейбука в роли ansible

Вы можете получить вывод оболочки -в кавычках , используя модификатор расширения@Qв Bash 4.4 и более поздних версиях:

$ echo "$timeStamp" -  Executing command: sudo /home/editini.sh "${@@Q}"
Mon 04/16/18 04-05-pm - Executing command: sudo /home/editini.sh 'one' 'two' 'three' 'four' 'five' 'six'

Он использует одинарные кавычки, а не двойные, но это гарантирует, что вывод является допустимым в качестве ввода обратно в оболочку, которая делает то, что вы ожидаете. Пример того, где это имеет значение, приведен ниже, но если ваш формат журнала требует двойных кавычек, это бесполезно.

Несколько сбивает с толку, ${@@Q}использует @для двух разных значений в последовательных символах :первое @представляет массив аргументов, а второе вводит модификатор, который преобразует вывод расширения массива. Модификатор Qприводит к заключению вывода в кавычки. $@расширяется до каждого элемента по очереди, в отличие от $*, но это вероятно не имеет значения в данном случае (хотя может быть, если ваш реальный код более сложен ).


@Qи printf %q, используйте одинарные кавычки, поскольку они запрещают другие расширения оболочки -, если в одном из аргументов есть $, `, \, "или !., что-либо с двойными кавычками будет подозрительно. @Qгарантирует, что каждый термин заключен в кавычки, даже если это не обязательно требуется (, а printfне требует ). Пробелы по-прежнему обрабатываются правильно.

$ set -- 'o$ne' "t w o" th\`ree fo\\ur five\! s\"i\'x
$ echo "$timeStamp" -  Executing command: sudo /home/editini.sh "${@@Q}"
Mon 04/16/18 04-05-pm - Executing command: sudo /home/editini.sh 'o$ne' 't w o' 'th`ree' 'fo\ur' 'five!' 's"i'\''x'

Вы можете скопировать эту команду обратно, и она просто сработает, независимо от того, насколько извращенным будет ввод.

0
08.03.2020, 17:08
1 ответ

Удалось заставить это работать, определив post_tasksвместе с ролью, таким образом, после запуска всех других задач в плейбуках последний шаг (yum update )работает нормально, наследуя имя хоста виртуальной машины из последних шагов

Надеюсь, это кому-нибудь поможет..

0
28.04.2021, 23:21

Теги

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