diff --git a/modules.go b/modules.go index 32f1645..4982f1b 100644 --- a/modules.go +++ b/modules.go @@ -13,14 +13,18 @@ import ( func (e *Executor) executeModule(ctx context.Context, host string, client *SSHClient, task *Task, play *Play) (*TaskResult, error) { module := NormalizeModule(task.Module) - // Apply task-level become - if task.Become != nil && *task.Become { - // Save old state to restore + // Apply task-level become override. + if task.Become != nil { + // Save old state to restore. oldBecome := client.become oldUser := client.becomeUser oldPass := client.becomePass - client.SetBecome(true, task.BecomeUser, "") + if *task.Become { + client.SetBecome(true, task.BecomeUser, "") + } else { + client.SetBecome(false, "", "") + } defer client.SetBecome(oldBecome, oldUser, oldPass) }