ansible копирование файлов и директорий

Дата | 23.11.2021

ansible копирование файлов и директорий
Пример ansible копирование файлов и директорий.

Пример 1.
Используем модуль copy.
hosts: «all» — Тут указываем что копирование файлов нужно сделать на все сервера в подчинении у ansible.
Что бы не делать кучу задач по копированию индивидуальных файлов, создадим переменную списка что копируем ‘{{item}}’, содержимое переменной что копируем находится в loop.
With_items переменная устарела и заменена loop с версии ansible 2.5.
Тут мы копируем с целевой машины на которой установлен ansible на все сервера в подчинении ansible.
Копирование будет по тем же путям расположения файлов.

- hosts: "all"
  tasks:
  - name: Copy files.
    copy:
     src: '{{item}}'
     dest: '{{item}}'
    loop:
    - /etc/periodic.conf
    - /etc/csh.cshrc
    - /etc/rc.conf

Пример 2.
Либо более универсальный пример, что бы не было привязки к текущей системе.
Тут копируем на два сервера ans_test и ans_test1.
В домашней директории ansible у меня она такая /usr/local/etc/ansible, создадим директорию files.
В директории files создадим директорию sys, будет уже раскидывать файлы по нашим серверам из нее.
Loop указаны пути файлов.

- hosts: ans_test ans_test1
  tasks:
    - name: Copy system settings files.
      copy:
        src: 'files/sys/{{ item }}'
        dest: '{{ item }}'
      loop:
        - /etc/periodic.conf
        - /etc/csh.cshrc
        - /etc/rc.conf
        - /usr/local/etc/mysql/my.cnf
        - /root/backup

Пример 3.
Используем модуль synchronize.
Для использования этого метода на подчиненных серверах должен быть установлен пакет rsync.
Синхронизируем содержимое директории /mnt/tets.
Синхронизация директории будет на группе серверов под название BSD.

- hosts: "BSD"
  tasks:
  - name: Syn files.
    synchronize:
     src: '/mnt/tets'
     dest: '/mnt/'

Пример 4.
Копирование только на один сервер ans_test1.

- hosts: ans_test1
  tasks:
  - name: Copy files.
    command: cp -r /mnt/test/{{ item }} /mnt/test1/
    loop:
    - "test.txt"
    - "uploud/"

Есть и другие способы копирования, но мне пока этих достаточно.
Ansible копирование файлов и директорий вот и все.
Настройка ansible первые шаги.
ansible распаковка архива.
Ansible установка и запуск программ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *