I'm pulling data from EC2 instance metadata (from an IAM instance profile).
The shell commands are:
curl
http://169.254.169.254/latest/meta-data/iam/security-credentials/PullCredentials
> creds.txt
access=`cat /home/ubuntu/creds.txt | grep "AccessKeyId" | cut -d':'
-f2 | tr -d ' ' | tr -d '"' | tr -d ','`
My playbook fragment:
- name: get IAM role creds
shell: curl
http://169.254.169.254/latest/meta-data/iam/security-credentials/PullCredentials
> creds.txt
- name: set env variables
command: access=`cat /home/ubuntu/creds.txt | grep "AccessKeyId" |
cut -d':' -f2 | tr -d ' ' | tr -d '"' | tr -d ','`
When I run this manually, the creds.txt file is created, and the cat | grep
| cut etc works fine.
When it runs:
TASK: [get IAM role creds]
****************************************************
changed: [****]
TASK: [set env variables]
*****************************************************
failed: [****] => {"cmd": "'access=`cat' /home/ubuntu/creds.txt '|'
grep AccessKeyId '|' cut -d: -f2 '|' tr -d ' ' '|' tr -d '\"' '|' tr -d
',`'", "failed": true, "rc": 2}
msg: [Errno 2] No such file or directory
If I set everything after command: in quotes, I get a parser error:
ERROR: Syntax Error while loading YAML script, ansible-qa-ami.yml
Note: The error may actually appear before this position: line 197, column
82
- name: set env variables
command: 'access=`cat /home/ubuntu/creds.txt | grep "AccessKeyId" |
cut -d':' -f2 | tr -d ' ' | tr -d '"' | tr -d ','`'
^
So I seem to have an issue with colons, quotes, and/or back ticks. Any
suggestions are very welcome.
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/e7d876a3-7731-417f-9b0f-15ba8d820a15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.