簡體   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