Ansible 如何从资源清册中获取组主机

Ansible 如何从资源清册中获取组主机,ansible,Ansible,我正在尝试在多台服务器上构建rsync类型的备份。我想在笔记本电脑上本地为每台服务器创建一个备份目录,然后备份它们。如果目录不存在,请创建它。 我首先在本地调用playbook,以便在本地创建目录,然后将playbook更改为备份组。问题是我不知道如何在备份组中填充主机名。当我在下面运行playbook时,唯一创建的目录是localhost。我需要备份组中的每个主机创建一个本地目录并进行备份。最简单的方法是什么 - hosts: localhost become: yes #strate

我正在尝试在多台服务器上构建rsync类型的备份。我想在笔记本电脑上本地为每台服务器创建一个备份目录,然后备份它们。如果目录不存在,请创建它。
我首先在本地调用playbook,以便在本地创建目录,然后将playbook更改为备份组。问题是我不知道如何在备份组中填充主机名。当我在下面运行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:

在您的清单文件中,您可以创建与您正在呼叫的主机连接的组

[localhost]
127.0.0.1

[backup]
host1
host2
host3

在这种情况下,我认为您正在寻找循环模块

像这样的

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

我知道这正是我的库存设置方式。我需要的是找出如何将备份主机作为变量调用。这样,对于备份组中的每台主机,备份都将运行一个循环,将文件放在正确的位置。在这种情况下,我认为您正在寻找循环模块。像这样的东西……”名称:“Ansible创建目录如果不存在”文件:路径:“{{backupDir}}”状态:目录时间:my_folder.stat.exists==false”