nbucko
nbucko

Reputation: 69

Ansible - pass output of shell command to variable

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

Answers (1)

Konstantin Suvorov
Konstantin Suvorov

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

Related Questions