首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取ansible剧本中文件中的所有行

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

Stack Overflow用户
提问于 2022-03-11 09:54:44
回答 2查看 623关注 0票数 1

我有一个名为packages.txt的文件,它包含一个包列表。我必须通过我的ansible文件package.txt读取该rpm.yml的每一行。这是我的密码

代码语言:javascript
复制
- 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包含以下内容

代码语言:javascript
复制
open-ssh
nginx
grafana
vim

如能提供任何帮助,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-11 10:21:33

您将需要一个额外的任务来读取该文件。最简单的方法是将文件和cat合并成一个变量。然后,这个变量可以用于下一个任务。

类似于:

代码语言:javascript
复制
    - 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 }}"
票数 1
EN

Stack Overflow用户

发布于 2022-03-11 10:21:40

的线插件。例如

代码语言:javascript
复制
    - debug:
        var: item
      loop: "{{ query('lines', 'cat packages.txt') }}"

给予(删节)

代码语言:javascript
复制
  item: open-ssh
  item: nginx
  item: grafana
  item: vim

请参阅有关插件的详细信息。

代码语言:javascript
复制
shell> ansible-doc -t lookup lines
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71436676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档