From d45ffe73d0c26f6b29c382f29045dc829b344a9c Mon Sep 17 00:00:00 2001 From: Megan Marsh Date: Tue, 31 Mar 2020 13:13:01 -0700 Subject: [PATCH] fix default ssh-extra-args flag --- provisioner/ansible/provisioner.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/provisioner/ansible/provisioner.go b/provisioner/ansible/provisioner.go index dc8d15691..936db7e6a 100644 --- a/provisioner/ansible/provisioner.go +++ b/provisioner/ansible/provisioner.go @@ -565,7 +565,7 @@ func (p *Provisioner) executeAnsible(ui packer.Ui, comm packer.Communicator, pri } } - args := []string{"-e", fmt.Sprintf("packer_build_name=%s", p.config.PackerBuildName), "-e", fmt.Sprintf("packer_builder_type=%s", p.config.PackerBuilderType), "-e", "IdentitiesOnly=yes"} + args := []string{"-e", fmt.Sprintf("packer_build_name=%s", p.config.PackerBuildName), "-e", fmt.Sprintf("packer_builder_type=%s", p.config.PackerBuilderType)} if len(privKeyFile) > 0 { // Changed this from using --private-key to supplying -e ansible_ssh_private_key_file as the latter // is treated as a highest priority variable, and thus prevents overriding by dynamic variables @@ -585,6 +585,11 @@ func (p *Provisioner) executeAnsible(ui packer.Ui, comm packer.Communicator, pri args = append(args, "-e", fmt.Sprintf(" ansible_password=%s", p.generatedData["Password"])) } + if p.generatedData["ConnType"] == "ssh" { + // Add ssh extra args to set IdentitiesOnly + args = append(args, "--ssh-extra-args", "-o IdentitiesOnly=yes") + } + args = append(args, "-i", inventory, playbook) args = append(args, p.config.ExtraArguments...)