Я пишу модуль Ansible для настройки программного обеспечения. Поставщик требует, чтобы команды конфигурации выполнялись под определенным пользователем c. Если вы сделаете это в «root», вы получите ошибку.
Итак, текущее решение:
module = AnsibleModule(....)
command='su - <user> -c "<command>"'
result = module.run_command(command)
Это работает, но я не очень доволен этим. Я также мог бы позволить Ansible сделать это и использовать become
и become_user
. Но тогда вы должны должным образом задокументировать это, и вы получите большее количество ошибок, потому что люди не всегда читают документацию.
Поэтому мне интересно, что может быть лучшим способом для go или есть другой способ решить эту проблему.