Содержание
Как часть отдела управления ИТ, люди занимаются 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 / ansible — local — 32435HXzj7o / tmpjFxUXp TO / root / . ansible / tmp / ansible — tmp — 1550966284.57 — 6253496643791 / 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
|
Вот и все. Вы успешно скопировали файл.
Как проверить, скопирован ли файл на новый удаленный хост?
Просто войдите на удаленный хост и проверьте местоположение /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









