LINUX.ORG.RU
ФорумAdmin

Как в Ansible обойти группу, и выполнить модуль только для текущего хоста?

 , ,


0

1

В инвентаре описаны хосты:

[serviceHosts]
arm1 ansible_ssh_host=192.168.1.10 ansible_ssh_user=root
km1 ansible_ssh_host=192.168.1.11 ansible_ssh_user=root
km2 ansible_ssh_host=192.168.1.12 ansible_ssh_user=root

Соответственно, в плейбуке используется группа:
hosts: serviceHosts

А задача в следующем. Нужно на каждом хосте создать директорию с его же конфигурационным именем. Ну то есть:
На arm1 создать /usr/share/myservice/settings/arm1
На km1 создать /usr/share/myservice/settings/km1
На km2 создать /usr/share/myservice/settings/km2

Я пробую в плейбуке сделать так:
  - name: Создание директорий с настройками
    file:
      path: "/usr/share/myservice/settings/{{ item }}"
      state: directory
    with_items:
    - "{{ groups['serviceHosts'] }}"

Однако в этом случае, все директории появляются на каждом хосте. А нужно чтобы одна директория с именем хоста на хосте, как написано выше.

Как это сделать?

★★★★★

Ответ на: комментарий от Deleted

А если данную IP получит хост km2?

Первый коммент от @deadNightTiger самый верный.
Разве, что нужно папку создать на каком-то одном ПК, а плейбук запустить на всех.
Но ТС задачу такую не ставил)

i3wm ()
Последнее исправление: i3wm (всего исправлений: 1)