radekg / terraform-provisioner-ansible

Ansible with Terraform 0.14.x
Apache License 2.0
572 stars 100 forks source link

Apostrophe ' in extra_vars not properly escaped #151

Closed huan086 closed 3 years ago

huan086 commented 4 years ago

Steps to reproduce

plays {
  playbook {
    file_path = "${path.module}/test.yml"
  }

  extra_vars = {
    cannot_pass_quote = "'"
  }
}

Expected behavior

Quotes are escaped automatically.

ansible-playbook test.yml --extra-vars='{"cannot_pass_quote":"\u0027"}'

or

ansible-playbook test.yml --extra-vars='{"cannot_pass_quote":"'\''"}'

Actual behavior

Results in error

ansible-playbook test.yml --extra-vars='{"cannot_pass_quote":"'"}'

Configuration

Terraform version: 0.12.20

terraform-provisioner-ansible version/SHA: 2.3.3

Terraform file / provisioner configuration:

Terraform run log: