Домой Без рубрики Ansible: Как выполнить команды на удаленных хостах и получить результат команды (log)...

Ansible: Как выполнить команды на удаленных хостах и получить результат команды (log) обратно?

1780
0

На Crunchify мы опубликовали довольно много статей Ansible, перед которыми они включают установку Ansible , копирование файла с одного хоста на удаленный и многое другое.

В этом уроке мы расскажем, как выполнить скрипт на удаленном хосте после его копирования.

Эта техника очень полезна, если вы IT admin и хотите обновить тысячи виртуальных машин и хостов одновременно с помощью одной команды .

Ansible является единственным togo tool для нас в Crunchify, поскольку мы имеем дело с большим количеством хостов для наших клиентов и регулярно обновляем ОС.

Давайте начнем

Мы выполним следующие задачи с помощью простой команды 1 Ansible:

  1. На Host1: Создать файл crunchify-script.sh в папке /opt/ashah/
  2. На хосте 2: создайте папку / opt / ashah /
  3. Скопируйте файл crunchify-script.sh с Host1 на Host2 в папке / opt / ashah /
  4. Выполните файл crunchify-script.sh на удаленном хосте, используя ansible-playbook команда.
  5. Получить полный результат из командной строки

Шаг 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 jdk11.0.2_linuxx64_bin . деготь. GZ
экспорт JAVA_HOME = / opt / ashah / jdk11.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
ansibleplaybook б 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?

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

Ansible: Как выполнить команды на удаленных хостах и получить результат команды (log) обратно?

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Java: шаблон фабричного метода проектирования | Объектно-ориентированный дизайн | Шаблоны проектирования

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

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