I have a file called packages.txt which contains a list of packages. I have to read each line of that package.txt through my ansible file rpm.yml. Here is my code
- 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
My packages.txt contains these
open-ssh
nginx
grafana
vim
Any help would be appreciated
CodePudding user response:
You will need an additional task to read the file. The simplest way would be to cat
the file and register
into a variable. Then this variable can be used for the next task.
Something like:
- 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 }}"
CodePudding user response:
query the lines plugin. For example
- debug:
var: item
loop: "{{ query('lines', 'cat packages.txt') }}"
gives (abridged)
item: open-ssh
item: nginx
item: grafana
item: vim
See the details about the plugin
shell> ansible-doc -t lookup lines