Домой Учебники по Linux и Unix Ansible — Как выполнить Grep (ps -few) и убить любой процесс linux,...

Ansible — Как выполнить Grep (ps -few) и убить любой процесс linux, запущенный на удаленном хосте?

1185
0

Ansible — довольно удивительный инструмент для системного администратора. За последние несколько недель мы опубликовали ряд статей по Ansible о том, как копировать файлы на удаленном хосте, как выполнять команды на удаленном хосте, как установить Java, Python на удаленном хосте и так далее.

В этом уроке мы рассмотрим, как выполнить grep java- процесс, выполняющийся на удаленном хосте, и уничтожить этот удаленный процесс, используя простую ansible playbook.

Вот шаги, которые мы сделаем в этом уроке:

1
2
3
Ubuntu @ IP1723110150 : ~ $ nohup java CrunchifyAlwaysRunningProgram &
[ 1 ] 18174
Ubuntu @ IP1723110150 : ~ $ nohup : игнорируя ввод и добавление вывода к 'nohup.out'

Как проверить, запущен ли процесс на удаленном хосте?

проверить процесс ID 18174 ,

1
2
3
Ubuntu @ IP1723110150 : ~ $ п.с. мало | grep CrunchifyAlwaysRunningProgram
убунту    18174 15069    1 15 : 15 баллы / 0      00 : 00 : 00 Java CrunchifyAlwaysRunningProgram
убунту    18187 15069    0 15 : 16 баллы / 0      00 : 00 : 00 Grep color = auto CrunchifyAlwaysRunningProgram
  • создать файл crunchify-hosts файл с IP удаленного хоста
  • создать файл crunchify-grep-kill-process.yml с имеет ответные задачи для grep и kill java процесса
  • Запустите команду: ansible-playbook -i ./crunchify-hosts crunchify-grep-kill-process.yml
  • результат проверки на терминальной консоли macOS

файл crunchify-hosts

1
2
3
4
5
6
7
8
9
10
[ местный ]
localhost ansible_connection = local ansible_python_interpreter = python
[ crunchify ]
3.16.83.84
[ crunchify : vars ]
ansible_ssh_user = ubuntu
ansible_ssh_private_key_file = / Users / crunchify / Документы / анзибль / crunchify. PEM
ansible_python_interpreter = / usr / bin / python3

Файл содержит удаленный IP-адрес и учетные данные, которые помогут пользователю войти в систему без пароля.

файл crunchify-grep-kill-process.yml

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
хосты : crunchify
   стать : да
   задачи :
     имя : Получить список запущенных процессов с удаленного хоста
       ignore_errors : да
       оболочка : ps -few | grep CrunchifyAlwaysRunningProgram | awk '{print $ 2}'
       зарегистрироваться : running_processes
     имя : Убить запущенные процессы
       ignore_errors : да
       оболочка : kill {{item}}
       with_items : {{running_processes.stdout_lines}}
     wait_for :
         путь : / proc / {{item}} / status
         состояние : нет на месте
       with_items : {{running_processes.stdout_lines}}
       ignore_errors : да
       зарегистрироваться : crunchify_processes
     имя : Принудительно убивать зависшие процессы
       ignore_errors : да
       оболочка : kill -9 {{item}}
       with_items : {{crunchify_processes.results | select ('failed') | map (attribute = 'item') | list}}

Здесь ANSIBLE файл PlayBook получает все процессы Java, убивая его с помощью простого kill -9 команда.

ЧИТАТЬ ТАКЖЕ:  Bash / Sh: Как читать файл построчно? Пример Linux Loop

Выполнить Ansible Playbook:

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
Баш1 . 2 $ ansibleplaybook я , / crunchifyхосты crunchifygrepkillprocess . YML
ИГРАТЬ [ crunchify ] ************************************************** ************************************************** ************************************************** ********
ЗАДАЧА [ Сбор фактов ] ************************************************** ************************************************** ************************************************** **
оК: [ 3.16.83.84 ]
ЗАДАЧА [ Получить список запущенных процессов с удаленного хоста ] ************************************************** ************************************************** ************************
изменилось : [ 3.16.83.84 ]
ЗАДАЧА [ Убить запущенные процессы ] ************************************************** ************************************************** *********************************************
изменилось : [ 3.16.83.84 ] = > ( позиция = 18174 )
не удалось : [ 3.16.83.84 ] ( позиция = 18342 ) = > { изменилось : правда , cmd : убить 18342 , дельта : «0: 00: 00.002602» , конец : «2019-05-10 15: 20: 36.957062» , предмет : 18342 , сообщение : «ненулевой код возврата» , rc : 1 , «начало» : «2019-05-10 15: 20: 36.954460» , stderr : / bin / sh: 1: kill: Нет такого процесса , stderr_lines : [ / bin / sh: 1: kill: Нет такого процесса ] , стандартный вывод : , stdout_lines : [ ] }
не удалось : [ 3.16.83.84 ] ( позиция = 18344 ) = > { изменилось : правда , cmd : «убить 18344» , дельта : «0: 00: 00.002648» , конец : «2019-05-10 15: 20: 38.479354» , предмет : 18344 , сообщение : «ненулевой код возврата» , rc : 1 , «начало» : «2019-05-10 15: 20: 38.476706» , stderr : / bin / sh: 1: kill: Нет такого процесса , stderr_lines : [ / bin / sh: 1: kill: Нет такого процесса ] , стандартный вывод : , stdout_lines : [ ] }
, , , игнорирование
ЗАДАЧА [ wait_for ] ************************************************** ************************************************** ************************************************** *********
оК: [ 3.16.83.84 ] = > ( позиция = 18174 )
оК: [ 3.16.83.84 ] = > ( позиция = 18342 )
оК: [ 3.16.83.84 ] = > ( позиция = 18344 )
ЗАДАЧА [ Принудительно убить застрявшие процессы ] ************************************************** ************************************************** *****************************************
PLAY RECAP * *********************************************** ************************************************** ************************************************** ****************
3.16.83.84                  : хорошо = 4      изменилось = 2      недоступен = 0      не удалось = 0   

Как проверить?

Просто попробуйте выполнить grep еще раз на удаленном хосте .

1
2
Ubuntu @ IP1723110150 : ~ $ п.с. мало | grep CrunchifyAlwaysRunningProgram
убунту    18484 15069    0 15 : 22 баллы / 0      00 : 00 : 00 Grep color = auto CrunchifyAlwaysRunningProgram

Как вы заметили, вы не увидите process ID 18174 в списке, и не работает ни один процесс Java .

Вот и все.

Это самый простой способ grep-процесса Java и уничтожения с помощью Ansible. Дайте мне знать, если у вас возникнут проблемы с этим Ansible playbook ,

Ansible — Как выполнить Grep (ps -few) и убить любой процесс linux, запущенный на удаленном хосте?

0.00 (0%) 0 votes

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

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