6

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.

1
  • Duplicate of How to use Ansible's with_item with a variable?, but even if you quote the variable, you cannot iterate over stdout, because it is a string. The whole idea makes no sense. It's fine to be new to some topic, but in such situation start following docs and basic tutorials instead of posting bad questions on SO. Commented Jan 25, 2018 at 20:18

1 Answer 1

9

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 }}"
Sign up to request clarification or add additional context in comments.

1 Comment

That makes sense and worked perfectly. Thank you for your help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.