Это то, что вам нужно знать о переменных и кавычках bash:
В следующих примерах переменная ${text}
имеет значение Hello
:
- Переменныерасширен внутри двойных кавычек. например,
"${text}"
=> Hello
- Переменные не раскрыты в одинарных кавычках. например,
'${text}'
=> ${text}
- Одинарные кавычки не имеют специального значения внутри двойных кавычек и наоборот. например,
"'${text}'"
=> 'Hello'
и '"${text}"'
=> "${text}"
- Если вам необходимо поместить двойную кавычку в строку с двойными кавычками или одинарную кавычку в строку с одинарными кавычками, тогда оно должно быть сброшено. например,
"\"${text}\""
=> "Hello"
и '\'${text}\''
=> '${text}'
С учетом всего сказанного, в вашем случае вы хотите, чтобы переменные были расширены, поэтому вы должны заключить всеЗначение --extra-vars в двойных кавычках. Согласно веб-сайту Ansible, значение каждой из этих дополнительных переменных не нужно указывать в кавычках, если только они не содержат пробелов. Чтобы быть в безопасности, вы можете заключить переменные в кавычки, поскольку вы не сможете контролировать их значения.
Попробуйте это. Я добавил дополнительные разрывы строк, чтобы облегчить понимание кода:
ansible-playbook -i inventory.yml playbook.yml --extra-vars \
"username='${login}' \
fullname='${username}' \
password='${password}' \
groups=['Users','Remote Desktop Users'] \
"