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