Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

10.2.2. Выполнение команд на миньонах‌


Как только миньоны подключены, вы можете выполнять на них команды от мастера:


мастер# соль '*' test.ping

Кали-царапина:

Истинный Кали-мастер:

Правда

мастер# соль '*' test.ping

Кали-царапина:

Истинный Кали-мастер:

Правда


Эта команда запрашивает у всех миньонов ( '*' подстановочный знак, нацеленный на всех миньонов), чтобы выполнить пинг функция от тестXNUMX исполнительный модуль. Эта функция возвращает Правда значение при успехе и это простой способ убедиться, что соединение работает между мастером и различными миньонами.

Вы также можете настроить таргетинг на конкретного миньона, указав его идентификатор в первом параметре, или, возможно, на подмножество миньонов, используя менее общий подстановочный знак (например, '* -scratch' или 'kali- *'). Вот пример того, как выполнить произвольную команду оболочки на миньоне kali-scratch:


мастер# соль кали-царапина cmd.shell 'uptime; uname -a '

Кали-царапина:

05:25:48 до 44 мин, 2 пользователя, средняя нагрузка: 0.00, 0.01, 0.05

Linux kali-scratch 4.5.0-kali1-amd64 # 1 SMP Debian 4.5.3-2kali1 (2016) x05_09

GNU / Linux

мастер# соль кали-царапина cmd.shell 'uptime; uname -a '

Кали-царапина:

05:25:48 до 44 мин, 2 пользователя, средняя нагрузка: 0.00, 0.01, 0.05

Linux kali-scratch 4.5.0-kali1-amd64 # 1 SMP Debian 4.5.3-2kali1 (2016) x05_09

GNU / Linux


Справочник по модулю соли Доступно множество модулей исполнения для всех видов использования. Мы не будем рассматривать их все здесь, но полный список доступен на https://docs.saltstack.com/ en / latest / ref / modules / all / index.html. Вы также можете получить описание всех исполнительных модулей и их доступных функций для данного миньона с помощью соль миньон sys.doc команда. Выполнение этой команды возвращает очень длинный список функций, но вы можете отфильтровать список, передав имя функции или модуля с префиксом родительского модуля в качестве параметра:

мастер# соль кали-царапина sys.doc disk.usage

использование диска:


Возвращает информацию об использовании томов, установленных на этом

миньон


Один из самых полезных модулей - упак, который представляет собой абстракцию диспетчера пакетов, полагающуюся на соответствующий диспетчер пакетов для системы (APT-получить для Debian и его производных, таких как Kali).

В pkg.refresh_db обновляет список пакетов (то есть выполняет apt-get update) в то время как pkg.upgrade устанавливает все доступные обновления (выполняет apt-get upgrade or apt-get dist-upgrade, в зависимости от полученных опций). В pkg.list_upgrades команда перечисляет ожидающие операции обновления (которые будут выполнены pkg.upgrade dist_upgrade = Истина команда).

В СЕРВИС модуль - это абстракция диспетчера служб (Systemd в случае с Kali), что позволяет выполнять все обычные systemctl операции: сервис.включить, сервис.отключить, услуга. Начните, сервис.стоп, сервис.перезапуститьи сервис.перезагрузка:


мастер# соль '*' service.enable ssh

Кали-царапина:

Истинный Кали-мастер:

Правда

мастер# соль '*' service.start ssh

Кали-мастер:

Правда

Кали-царапина:

Правда

мастер# соль '*' pkg.refresh_db

Кали-царапина:

----------

Кали-мастер:

----------

мастер# соль '*' pkg.upgrade dist_upgrade = Истина

Кали-царапина:

----------

изменения:

----------

базовые файлы:

----------

новые:

1:2016.2.1

Старый:

1:2016.2.0

[...]

запрокси:

----------

новые:

2.5.0-0kali1 старый:

2.4.3-0кали3

комментарий: результат:

Правда

мастер# соль '*' service.enable ssh

Кали-царапина:

Истинный Кали-мастер:

Правда

мастер# соль '*' service.start ssh

Кали-мастер:

Правда

Кали-царапина:

Правда

мастер# соль '*' pkg.refresh_db

Кали-царапина:

----------

Кали-мастер:

----------

мастер# соль '*' pkg.upgrade dist_upgrade = Истина

Кали-царапина:

----------

изменения:

----------

базовые файлы:

----------

новые:

1:2016.2.1

Старый:

1:2016.2.0

[...]

запрокси:

----------

новые:

2.5.0-0kali1 старый:

2.4.3-0кали3

комментарий: результат:

Правда

В качестве более конкретного примера вы можете легко настроить распределенный Nmap сканировать с dnmap. После установки пакета на всех миньонов вы запускаете сервер в первом терминале:


сервер # соль '*' pkg.install dnmap

[...]

сервер # vim dnmap.txt

сервер # dnmap_server -f dnmap.txt

сервер # соль '*' pkg.install dnmap

[...]

сервер # vim dnmap.txt

сервер # dnmap_server -f dnmap.txt


Предполагая, что IP-адрес сервера - 1.2.3.4, вы можете затем сказать всем миньонам запустить клиентский процесс, который подключается к серверу:


сервер # соль '*' cmd.run_bg template = jinja 'dnmap_client -s 1.2.3.4 -a {{grains.id}}'

Кали-царапина:

----------

идентификатор:

17137

[...]

сервер # соль '*' cmd.run_bg template = jinja 'dnmap_client -s 1.2.3.4 -a {{grains.id}}'

Кали-царапина:

----------

идентификатор:

17137

[...]


Обратите внимание, что в примере используется cmd.run_bg для запуска dnmap_client команда в фоновом режиме. Не ждите, пока он завершится, так как это длительный процесс. К сожалению, он не убивает себя должным образом, когда вы прерываете сервер, поэтому вам, возможно, придется его очистить:


сервер # соль '*' cmd.shell 'pkill -f dnmap_client'

сервер # соль '*' cmd.shell 'pkill -f dnmap_client'


Лучшие облачные вычисления для ОС в OnWorks: