Ansible 根据运行时对象生成任务

Ansible 根据运行时对象生成任务

我想让 Ansible 根据运行时发现的某个对象运行一个任务。例如,针对指定目录中的每个文件运行一个任务,或者针对每个正在运行的进程运行一个任务。有没有办法在 task/playbook 中实现这一点?我希望结果能够作为一项任务集成到正常输出中,最好是调整任务和“register”变量名。

不幸的是,我能找到的所有例子都是静态定义。

答案1

您可以为此使用包含。下面是一个例子,我读取 mysql 主机中的所有数据库,然后包含一些任务。您还可以为此包含提供一些变量。

- command: mysql -u root -e 'show databases;'
  register: databases

- include: soma_tasks.yml db={{item}}
  with_items: databases.stdout_lines
  when: item not "Database"

相关内容