Содержание
На Crunchify мы опубликовали довольно много статей Ansible, перед которыми они включают установку Ansible , копирование файла с одного хоста на удаленный и многое другое.
В этом уроке мы расскажем, как выполнить скрипт на удаленном хосте после его копирования.
Эта техника очень полезна, если вы IT admin и хотите обновить тысячи виртуальных машин и хостов одновременно с помощью одной команды .
Ansible является единственным togo tool для нас в Crunchify, поскольку мы имеем дело с большим количеством хостов для наших клиентов и регулярно обновляем ОС.
Давайте начнем
Мы выполним следующие задачи с помощью простой команды 1 Ansible:
- На Host1: Создать файл
crunchify-script.shв папке/opt/ashah/ - На хосте 2: создайте папку / opt / ashah /
- Скопируйте файл crunchify-script.sh с Host1 на Host2 в папке / opt / ashah /
- Выполните файл crunchify-script.sh на удаленном хосте, используя
ansible-playbookкоманда. - Получить полный результат из командной строки
Шаг 1
Создайте файл crunchify-script.sh в папке / opt / ashah /.
- Этот скрипт перейдет в папку / opt / ashah /
- Извлеките JDK 11.0.2, используя
tar -zxvfкоманда - Настройте JAVA_HOME после завершения извлечения.
crunchify-script.sh
|
1
2
3
4
|
CD / opt / ashah /
деготь — zxvf jdk — 11.0.2_linux — x64_bin . деготь. GZ
экспорт JAVA_HOME = / opt / ashah / jdk — 11.0.2
экспорт PATH = $ JAVA_HOME / bin : $ PATH
|
Шаг 2
Создайте .yml файл для Ansible .
crunchify_execute_command.yml file
|
1
2
3
4
5
6
7
8
9
10
11
|
—
— имя : Давайте скопируйте наш исполняемый скрипт в удаленное местоположение , выполнить скрипт и получить результат обратно .
remote_user : корень
sudo : да
хосты : crunchify — группа
задачи :
— имя : Передача исполняемого скрипта скрипта
копия : src = / opt / ashah / crunchify — скрипт . sh dest = / opt / ashah mode = 0777
— имя : Выполнить скрипт
команда : ш / opt / ashah / crunchify — скрипт . ш
|
Шаг 3
Файл crunchify-hosts, содержащий список всех удаленных хостов .
файл crunchify-hosts
|
1
2
3
|
# crunchify-группа
[ crunchify — группа ]
192.66.129.83
|
Шаг 4
Выполнить команду ansible-playbook ,
|
1
|
ansible — playbook — б — v — ты root crunchify_execute_command . YML — кккк — экстра — вары crunchify-группа — я crunchify — хосты
|
Вот результат:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
root @ localhost : / opt / ashah # ansible -playbook -b -v -u root crunchify_execute_command.yml -kkkk —extra-vars crunchify-group -i crunchify-hosts
С помощью / etc / ansible / ansible . CFG как файл конфигурации
Пароль SSH :
/ Опт / ashah / crunchify — хозяева не соответствовать требованиям host_list , проверьте документацию плагина, если этот является неожиданный
/ Опт / ashah / crunchify — хозяева не соответствовать требованиям сценария , проверьте документацию плагина, если этот является неожиданный
[ ПРЕДУПРЕЖДЕНИЕ УСТАРЕВАНИЯ ] : Вместо SUDO / sudo_user, использование стать / стать_пользователем и убедитесь , что become_method является 'Sudo' (по умолчанию ) . это
функция будет удалена в версия 2.9. Предупреждения устаревания можно отключить, установив deprecation_warnings = False в
анзибль. CFG.
ИГРАТЬ [ Передача и выполнять скрипт. ] ************************************************** *****************************************
ЗАДАЧА [ Сбор фактов ] ************************************************** ************************************************** ******
оК: [ 192.66.129.83 ]
ЗАДАЧА [Перенести сценарий] ************************************************** ************************************************** **
изменилось : [ 192.66.129.83 ] = > { изменилось : правда , «контрольная сумма» : 37dd2b7bd24c04fca7b7c436f299541a1f813f17 , Dest : /opt/ashah/crunchify-script.sh , Гид : 0 , группа : корень , md5sum : 140a200fbb7a12cbd6e1f57d3e14794f , «режим» : 0777 , владелец : корень , размер : 129 , SRC : /root/.ansible/tmp/ansible-tmp-1553138812.28-91041260033433/source , «состояние» : файл , UID : 0 }
ЗАДАЧА [Выполнить сценарий] ************************************************** ************************************************** ***
изменилось : [ 192.66.129.83 ] = > { изменилось : правда , cmd : [ ш , /opt/ashah/crunchify-script.sh ] , дельта : «0: 00: 02.713976» , конец : «2019-03-21 03: 26: 56.151494» , rc : 0 , «начало» : «2019-03-21 03: 26: 53.437518» , stderr : , stderr_lines : [ ] , стандартный вывод : «JDK-11.0.2 / README.html / njdk-11.0.2 / бен / jaotc / njdk-11.0.2 / бен / банка / njdk-11.0.2 / бен / Jarsigner / njdk-11.0.2 / бен / Java /njdk-11.0.2/bin/jsted.certs , jdk-11.0.2 / lib / security / cacerts , jdk-11.0.2 / lib / security / default.policy , jdk-11.0.2 / lib / security / public_suffix_list.dat , jdk-11.0.2 / lib / server / Xusage.txt , jdk-11.0.2 / lib / server / libjsig.so , jdk-11.0.2 / lib / server / libjvm.so , jdk-11.0.2 / lib / src.zip , jdk-11.0.2 / lib / tzdb.dat , jdk-11.0.2 / release ] }
PLAY RECAP * *********************************************** ************************************************** ********************
192.66.129.83 : хорошо = 3 изменилось = 2 недоступен = 0 не удалось = 0
root @ localhost : / opt / ashah #
|
Что дальше?
Ознакомьтесь с полным руководством по копированию файлов на удаленный хост с помощью Ansible?
Ответ: Как скопировать файл, каталог или скрипт с локального хоста на удаленный хост?
0.00 (0%) 0 votes











