我想让 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"