Ansible - 将 shell 命令的输出传递给变量

nbu*_*cko 5 ansible

ansible 和 playbooks 的新手,我正在尝试运行 linux 命令并将该命令的输出用作变量。但是,它使用项目名称作为变量而不是命令的输出。

- 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 admin@test.com -mailbox true -passwd {{ item }}"
with_items: apg_generate.stdout
Run Code Online (Sandbox Code Playgroud)

而不是使用 apg 命令的输出,这将是一组随机的 12 个字符,我将 apg_generate.stdout 作为正在设置的密码。

Kon*_*rov 8

在 Ansible 中with_items是 for 循环,如果您只想访问单个变量,则不需要使用它。直接访问:

- 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 admin@test.com -mailbox true -passwd {{ apg_generate.stdout }}"
Run Code Online (Sandbox Code Playgroud)