Домой Полезные советы по macOS Ответ: Как скопировать файл, каталог или скрипт с локального хоста на удаленный...

Ответ: Как скопировать файл, каталог или скрипт с локального хоста на удаленный хост?

1352
0

Как часть отдела управления ИТ, люди занимаются lots of scripts и инструменты командной строки . Я уверен, что вы сталкиваетесь с повседневной ситуацией, когда вы копируете файлы или сценарии на тысячи удаленных хостов .

ИТ-специалисты не просто войти в систему, чтобы каждый thousands of hosts и запустить скрипт вручную. И именно поэтому Ansible входит в картину. Ansible — это очень мощное решение для управления ИТ, доступное для нас бесплатно.

В этом уроке мы рассмотрим шаги для копирования файлов на удаленный хост с использованием Ansible.

Что мы будем делать?

Копировать файл crunchify.txt файл из местоположения /opt/ashah/ на удаленный хост 192.66.129.83 каталог назначения /opt/ashah/ ,

Шаг 1

Установите Ansible в Linux Ubuntu или macOS . Следуйте инструкциям, чтобы пройти подробные шаги.

Шаг 2

Давайте разберемся с некоторыми основами и расположением файла для этого урока:

  • Расположение файла конфигурации: /etc/ansible/ansible.cfg
  • Файл сценария: /opt/ashah/crunchify.yml
  • файл hosts : / opt / ashah / hosts
  • файл для копирования: /opt/ashah/crunchify.txt (тестовый файл)

Шаг 3

crunchify.yml содержимое файла.

1
2
3
4
5
6
7
8
root @ localhost : / opt / ashah # cat crunchify.yml
хосты : crunchifyгруппа
   задачи :
     имя : скопировать файл в удаленный хост
       копия :
         источник : / opt / ashah / crunchify . текст
         Dest : / opt / ashah

Шаг 4

hosts содержимое файла. Обязательно измените IP-адрес вашего удаленного хоста.

1
2
3
4
root @ localhost : / opt / ashah # cat hosts
# crunchify-group в качестве образца
[ crunchifyгруппа ]
192.66.129.83

Шаг 5

Создать файл crunchify.txt с содержанием ниже.

1
2
3
4
root @ localhost : / opt / ashah # cat crunchify.txt
это является пример примера копирования файла в удаленное местоположение с использованием Ansible .
Более подробные руководства по адресу https : //crunchify.com/tag/ansible/

Шаг 6

Запустите эту команду, чтобы скопировать файл на удаленный хост :

  • Command : ansible-playbook -b -vvv -u root crunchify.yml -kkkk –extra-vars «crunchify-group» -i хосты

давайте разберемся со всеми параметрами:

  • -b: запускать операции с make (так же, как -become).
  • -vvv: подробный режим (-vvv для большего, -vvvv для включения отладки соединения).
  • -u: подключиться как этот пользователь (по умолчанию = Нет).
  • -kkkk: запросить пароль для подключения.
  • –Extra-vars: установить дополнительные переменные как ключ = значение или YAML / JSON, если имя файла начинается с @.
  • -i: указать путь к инвентарному хосту или список хостов через запятую .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
root @ localhost : / opt / ashah # ansible -playbook -b -vvv -u root crunchify.yml -kkkk —extra-vars crunchify-group -i хосты
С помощью / etc / ansible / ansible . CFG как файл конфигурации
Пароль SSH :
/ Опт / ashah / хозяева не соответствовать требованиям host_list , проверьте документацию плагина, если этот является неожиданный
/ Опт / ashah / хозяева не соответствовать требованиям сценария , проверьте документацию плагина, если этот является неожиданный
Успешно разобран / opt / ashah / hosts источник ресурсов с плагином ini
PLAYBOOK : crunchify. yml * ******************************************************* ************************************************** **********************
1 играет в crunchify. YML
ИГРАТЬ [ crunchifyгруппа ] ************************************************** ************************************************** *****************************
ЗАДАЧА [ Сбор фактов ] ************************************************** ************************************************** ********************
< 192.66.129.83 > УСТАНОВИЛ SSH СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЬ : корень
< 192.66.129.83 > SSH : EXEC sshpass d9 сш С о ControlMaster = auto о ControlPersist = 60 с о Пользователь = root о ConnectTimeout = 10 о ControlPath = / root / . ansible / cp / 5fca43321f 192.66.129.83 '/ bin / sh -c' ' ' echo ~ root && sleep 0 ' ' ''
< 192.66.129.83 > ( 0 , '/ root / n' , '' )
< 192.66.129.83 > УСТАНОВИЛ SSH СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЬ : корень
< 192.66.129.83 > SSH : EXEC sshpass d9 сш С о ControlMaster = auto о ControlPersist = 60 с о Пользователь = root о ConnectTimeout = 10 о ControlPath = / root / . ansible / cp / 5fca43321f 192.66.129.83 '/ bin / sh -c' ' ' (umask 77 && mkdir -p ` echo /root/.ansible/tmp/ansible-tmp-1550966284.57-6253496643791 ` && echo ansible-tmp-15mp966284.57-6253496643791 = `echo /root/.ansible/tmp/ansible-tmp-1550966284.57-6253496643791` ) && sleep 0 ' ' ''
< 192.66.129.83 > ( 0 , 'ansible-tmp-1550966284.57-6253496643791 = / root / .ansible / tmp / ansible-tmp-1550966284.57-6253496643791 / n' , '' )
Использование файла модуля / usr / lib / python2 . 7 / distпакеты / ansible / modules / system / setup . ру
< 192.66.129.83 > ПОЛОЖИЛ / root / . ansible / tmp / ansiblelocal32435HXzj7o / tmpjFxUXp TO / root / . ansible / tmp / ansibletmp1550966284.576253496643791 / AnsiballZ_setup . ру
< 192.66.129.83 > SSH : EXEC sshpass d9 SFTP о BatchMode = нет б С о ControlMaster = auto о ControlPersist = 60 с о Пользователь = root о ConnectTimeout = 10 о ControlPath = / root / . ansible / cp / 5fca43321f '[192.66.129.83]
< 192.66.129.83 > ( 0 , 'sftp> put /root/.ansible/tmp/ansible-local-32435HXzj7o/tmpjFxUXp /root/.ansible/tmp/ansible-tmp-1550966284.57-6253496643791/AnsiballZ_setup.py/n' , '' )
< 192.66.129.83 > УСТАНОВИЛ SSH СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЬ : корень
< 192.66.129.83 > УСТАНОВИЛ SSH СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЬ : корень
< 192.66.129.83 > SSH : EXEC sshpass d9 сш С о ControlMaster = auto о ControlPersist = 60 с о Пользователь = root о ConnectTimeout = 10 о ControlPath = / root / . ansible / cp / 5fca43321f 192.66.129.83 '/ bin / sh -c' ' ' rm -f -r /root/.ansible/tmp/ansible-tmp-1550966284.57-6253496643791/> / dev / null 2> & 1 && sleep 0 ' ' '' '
< 192.66.129.83 > ( 0 , '' , '' )
оК: [ 192.66.129.83 ]
ЗАДАЧА [ развернуть топологию ] ************************************************** ************************************************** ****************************************
оК: [ 192.66.129.83 ] = > {
     изменилось : ложь ,
     «контрольная сумма» : 289b0c36372210c92bf028f2a19d57333af4d63c ,
     Dest : /opt/ashah/crunchify.txt ,
     diff : {
         после : {
             «путь» : /opt/ashah/crunchify.txt
         } ,
         «до» : {
             «путь» : /opt/ashah/crunchify.txt
         }
     } ,
     Гид : 0 ,
     группа : корень ,
     вызов : {
         module_args : {
             _diff_peek : ноль ,
             _original_basename : crunchify.txt ,
             access_time : ноль ,
             access_time_format : «% Y% m% d% H% M.% S» ,
             атрибуты : ноль ,
             «резервное копирование» : ноль ,
             «контент» : ноль ,
             «разделитель» : ноль ,
             Dest : / opt / ashah ,
             directory_mode : ноль ,
             «следовать» : правда ,
             «сила» : ложь ,
             группа : ноль ,
             «режим» : ноль ,
             «Время_ модификации» : ноль ,
             ification_time_format : «% Y% m% d% H% M.% S» ,
             владелец : ноль ,
             «путь» : /opt/ashah/crunchify.txt ,
             recurse : ложь ,
             регулярное выражение : ноль ,
             remote_src : ноль ,
             Selevel : ноль ,
             Сероль : ноль ,
             setype : ноль ,
             seuser : ноль ,
             SRC : ноль ,
             «состояние» : файл ,
             unsafe_writes : ноль
         }
     } ,
     «режим» : «0644» ,
     владелец : корень ,
     «путь» : /opt/ashah/crunchify.txt ,
     размер : 21 ,
     «состояние» : файл ,
     UID : 0
}
PLAY RECAP * *********************************************** ************************************************** ************************************************** ****
192.66.129.83                  : хорошо = 2      изменилось = 0      недоступен = 0      не удалось = 0

Вот и все. Вы успешно скопировали файл.

ЧИТАТЬ ТАКЖЕ:  Настройка MAMP на Mac OS X - Как установить WordPress локально на Mac OS X с помощью MAMP?

Как проверить, скопирован ли файл на новый удаленный хост?

Просто войдите на удаленный хост и проверьте местоположение /opt/ashah и вы увидите файл crunchify.txt

Как скопировать содержимое каталога в другой каталог?

Просто поменяй src а также desc ценность crunchify.yml файл. Вот обновленный файл crunchify.yml.

1
2
3
4
5
6
7
8
root @ localhost : / opt / ashah # cat crunchify.yml
хосты : crunchifyгруппа
   задачи :
     имя : скопировать все файлы из папки в удаленный хост
       копия :
         источник : / opt / ashah /
         Dest : / opt / ashah /

Все файлы в /opt/ashah/ папка будет скопирована на удаленные хосты.

Дайте мне знать, если у вас есть какие-либо вопросы, копирование файла в удаленное местоположение с помощью Ansible.

Ответ: Как скопировать файл, каталог или скрипт с локального хоста на удаленный хост?

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь