[英]how to read all lines from a file in ansible playbook
我有一个名为 packages.txt 的文件,其中包含一个包列表。 我必须通过我的 ansible 文件 rpm.yml 阅读 package.txt 的每一行。 这是我的代码
- hosts: myhost
tasks:
- name: RPM Filter
theforeman.foreman.content_view_filter:
username: "admin"
password: "admin"
server_url: "myhost"
name: "rpm filter"
organization: "myorg"
content_view: "My content view"
filter_type: "rpm"
package_name: "{{ item }}"
inclusion: True
loop:
- packages.txt
我的 packages.txt 包含这些
open-ssh
nginx
grafana
vim
任何帮助,将不胜感激
查询线路插件。 例如
- debug:
var: item
loop: "{{ query('lines', 'cat packages.txt') }}"
给出(删节)
item: open-ssh
item: nginx
item: grafana
item: vim
查看有关插件的详细信息
shell> ansible-doc -t lookup lines
您将需要一个额外的任务来读取文件。 最简单的方法是cat
文件并register
到变量中。 然后这个变量可以用于下一个任务。
就像是:
- name: get contents of package.txt
command: "cat packages.txt"
register: _packages
- name: RPM Filter
theforeman.foreman.content_view_filter:
username: "admin"
password: "admin"
server_url: "myhost"
name: "rpm filter"
organization: "myorg"
content_view: "My content view"
filter_type: "rpm"
package_name: "{{ item }}"
inclusion: True
loop: "{{ _packages.stdout_lines }}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.