Reputation: 69
New to ansible and playbooks, I'm trying to run a linux command and use the output of that command as a variable. However, it is using the item name as the variable instead of the output of the command.
- name: Use apg to generate a password
command: apg -m 12 -n 1 -a 1
register: apg_generate
- name: Create Mail Account
command: "plesk bin mail --create [email protected] -mailbox true -passwd {{ item }}"
with_items: apg_generate.stdout
Instead of using the output of the apg command, which would be a random set of 12 characters I'm getting apg_generate.stdout as the password being set.
Upvotes: 6
Views: 16859
Reputation: 68239
In Ansible with_items
is for loops, you don't need to use it if you want to access just a single variable. Access it directly:
- name: Use apg to generate a password
command: apg -m 12 -n 1 -a 1
register: apg_generate
- name: Create Mail Account
command: "plesk bin mail --create [email protected] -mailbox true -passwd {{ apg_generate.stdout }}"
Upvotes: 9