как получить хост группы из инвентаря - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь создать резервную копию типа rsyn c на нескольких серверах. Я хотел бы создать каталог резервного копирования для каждого сервера локально на моем ноутбуке, а затем создать их резервную копию. Если каталог не существует, создайте его.
Я начинаю с локального вызова книги воспроизведения, чтобы можно было создавать каталоги локально, а затем меняю книгу воспроизведения на группу резервного копирования. Проблема в том, что я не знаю, как заполнить имена хостов в резервной группе. Когда я запускаю playbook ниже, единственный каталог, который создается, является localhost. Мне нужно для каждого хоста в группе резервного копирования создать локальный каталог и создать его резервную копию. Какой самый простой способ сделать эту работу?

- hosts: localhost
  become: yes
  #strategy: free

  pre_tasks:

  vars:
   - backupDir: "/Users/user1/Desktop/Fusion/backups/{{ inventory_hostname }}/"

  roles:

  tasks:

  - name: Check if Backup Folder Exisits.
    stat:
      path: "{{ backupDir }}"
    register: my_folder

  - name: "Ansible Create directory if not exists"
    file:
      path: "{{ backupDir }}"
      state: directory
    when: my_folder.stat.exists == false

- hosts: backup
  tasks:

  - name: Rsync Directories from Remote to Local
    synchronize:
      mode: pull
      src: "{{ item }}"
      dest: "{{ backupDir }}/{{ansible_date_time.date}}.back"
    with_items:
      - "/home/user1/"
      - "/var/www/html/"
      - "/root/"
    when: my_folder.stat.exists

  handlers:

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

В этом случае, я думаю, вы ищете модуль l oop.

как-то так ..

- name: "Ansible Create directory if not exists"
file:
  path: "{{ backupDir }}"
  state: directory
when: my_folder.stat.exists == false
loop: {{ inventory_hostname }}

https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html

0 голосов
/ 18 марта 2020

В вашем файле инвентаря вы можете создавать группы, которые t ie возвращаются к вашим хостам, на которых вы звоните.

[localhost]
127.0.0.1

[backup]
host1
host2
host3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...