Добавьте серверы в / etc / exports с помощью Ansible - PullRequest
1 голос
/ 17 июня 2019

Я пытаюсь получить ответ, добавляя строки в / etc / exports для каждого значения в переменной {{ips}}, и не помещая их все в одну строку.

Я пробовал несколько разных способов, включая lineinfile, blockinfile и replace, которые, кажется, приближают меня к другим, но я все еще не могу получить желаемые результаты.

Для некоторых серверов они добавляются в этом формате

/foo/bar server1.com (rw,sync,no_root_squash)
/foo/bar server2.com (rw,sync,no_root_squash)
/foo/bar server3.com (rw,sync,no_root_squash)

используя этот код.

- name: Add New server to /etc/exports
lineinfile:
  path: /etc/exports
  insertafter: "# This Line"
  line: "/foo/bar {{ item }}(rw,sync,no_root_squash)"
loop: "{{ ips.split(',') }}"

Для других серверов мне нужно иметь их в этом формате, и я не могу заставить его работать.

/foo/bar server1(rw,sync,no_root_squash) server2(rw,sync,no_root_squash) server3(rw,sync,no_root_squash)

1 Ответ

0 голосов
/ 18 июня 2019

Я нашел способ получить то, что искал. Если кто-нибудь знает, как лучше, я открыт для предложений, но пока это работает.

  - name: Add Servers to /etc/exports
    lineinfile:
      path: /etc/exports
      insertafter: "# This Line"
      line: "/foo/bar {{ ips.split(',') | join('(rw,sync,no_root_squash) ') }}(rw,sync,no_root_squash)"

Это добавит серверы в переменную ips в этом формате

/foo/bar server1(rw,sync,no_root_squash) server2(rw,sync,no_root_squash) server3(rw,sync,no_root_squash)
...