Я ищу что-то, что было бы похоже на with_items:
, но это получило бы список элементов из файла вместо того, чтобы включать его в файл playbook.
Как я могу сделать это в недоступном?
Я ищу что-то, что было бы похоже на with_items:
, но это получило бы список элементов из файла вместо того, чтобы включать его в файл playbook.
Как я могу сделать это в недоступном?
Мне удалось найти легкую альтернативу:
- debug: msg="{{item}}"
with_lines: cat files/branches.txt
Допустим, у вас есть файл типа
item 1
item 2
item 3
И вы хотите установить эти элементы. Просто загрузите содержимое файла в переменную с помощью register.And используйте эту переменную для with_items
. Убедитесь, что ваш файл имеет по одному элементу в строке.
---
- hosts: your-host
remote_user: your-remote_user
tasks:
- name: get the file contents
command: cat /path/to/your/file
register: my_items
- name: install these items
pip: name:{{item}}
with_items: my_items.stdout_lines
Я удивлен, что никто не упомянул об поисках, думаю, это именно то, что вы хотите.
Он считывает содержимое, которое вы хотите использовать в своей книге игр, но не хотите включать в книгу игр из файлов, канала, csv, redis и т.д. с вашего локального управляющего компьютера(не с удаленного компьютера, это важно, поскольку в большинстве случаев это содержимое находится рядом с вашей книгой воспроизведения на локальном компьютере), и оно работает с ANSIBLE LOOP.
---
- hosts: localhost
gather_facts: no
tasks:
- name: Loop over lines in a file
debug:
var: item
with_lines: cat "./files/lines"
with_lines
здесь на самом деле цикл с поиском строк, чтобы увидеть, как работает поиск lines
, посмотрите код здесь, он просто запускает любые команды, которые вы ему даете (так что вы можете дать ему любой например, echo, cat и т.д.), затем разделите выходные данные на строки и верните их.
Есть много мощных поисков, чтобы получить полный список, проверьте папку плагинов поиска.
Последний Ansible рекомендует loop
вместо with_something
. Его можно использовать в сочетании с lookup
и splitlines()
, как Икар Похорски указал:
- debug: msg="{{item}}"
loop: "{{ lookup('file', 'files/branches.txt').splitlines() }}"
files/branches.txt
должен быть относительно пьесы