繁体   English   中英

如何从 ansible 剧本中的文件中读取所有行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM