Мне нужно сгенерировать плейбук ansible -, используя jinja2 с файлом csv в ansible

Чтобы получить результат поиска файла "cpuinfo" с подавленными ошибками, выполните команду findс помощью утилиты screen.

Просто начните поиск с отключенным экраном:

screen -dm find / -iregex ".*cpuinfo.*" 2>/dev/null

Для повторного подключения экрана с помощью команды runnung do

screen -r

Поскольку в вашей команде присутствует начальный знак доллара $и поиск будет выполняться внутри корня /, рассмотрите возможность выполнения findс пользователем sudoили от имени пользователя root.

-1
23.07.2020, 14:19
1 ответ

Прочитайте файл csv с помощью модуля read _csv и используйте фильтр groupby . Например, плейбук и шаблон ниже

shell> cat playbook.yml
- hosts: localhost
  tasks:
    - read_csv:
        path: ansi.csv
      register: data
    - template:
        src: template.j2
        dest: playbook.yml
shell> cat template.j2
---
{% for host in data.list|groupby('aaa') %}
- name: 'make directory'
  hosts: {{ host.0 }}
  become: yes
  tasks:
{% for task in host.1 %}
    - name: {{ task.bbb }}
      file:
        path: {{ task.bbb }}
        state: {{ task.ccc }}

{% endfor %}
{% endfor %}

дать

shell> cat playbook.yml 
---
- name: 'make directory'
  hosts: aa01
  become: yes
  tasks:
    - name: ansi
      file:
        path: ansi
        state: directory

    - name: play
      file:
        path: play
        state: direvtory

- name: 'make directory'
  hosts: aa02
  become: yes
  tasks:
    - name: jinj
      file:
        path: jinj
        state: directory

    - name: tem
      file:
        path: ten
        state: directory
0
18.03.2021, 23:17

Теги

Похожие вопросы