Директивата Ansible Become да изпълнява команди като определен потребител

Ansible Become Directive Run Commands



С помощта на Ansible можете да извършвате различни операции на отдалечени машини, като използвате необработени команди или учебници за игра Ansible. По подразбиране Ansible playbook се изпълнява на отдалечения хост като същия потребител на Ansible контролера. Това означава, че ако трябва да изпълните команда като друг потребител на отдалечената машина, ще трябва да я посочите изрично в книгата си за игра Ansible.

За да приложите функционалността на изпълнението на команди като друг потребител, ще трябва да използвате функцията sudo, която е налична в системите на Linux. Директивата Ansible become ви позволява да изпълнявате команди като посочения потребител.







Информацията за потребителя е посочена в книгата за игра Ansible, като се използват променливите стават, като например стават_pass, за да се определи паролата на потребителя become_user, както и кой потребител може да изпълни командата.



Как да стартирате Ansible Tasks като Root

За да изпълните конкретна команда като root потребител в Ansible, можете да внедрите директивата become и да зададете стойността на „true.“ Това прави на Ansible да прилага sudo без аргументи при изпълнение на командата.



Например, помислете за игра на Ansible, която актуализира пакета MySQL-сървър и след това го рестартира. При нормални операции с Linux ще трябва да влезете като root потребител, за да изпълнявате такива задачи. В Ansible можете просто да извикате директивата make: yes, както е показано по -долу:





- домакини: всички

да стане:да

задачи:

- име: Ansible бяганекатоroot и актуализирайте sys

yum:

име: mysql-сървър

състояние: последно

- име:

service.service:
име: mysqld

състояние: рестартирано

В горния учебник използвахме директивата become и не посочихме потребителя become_user, тъй като всички команди съгласно директивата стават по подразбиране се изпълняват като root.

Това е подобно на посочването му като:



- домакини: всички

да стане:да

станете_потребител: root

задачи:

- име: Ansible бяганекатоroot и актуализирайте sys

yum:
име: mysql-сървър

състояние: последно

- име: service.service:

име: mysqld

състояние: рестартирано

Как да изпълнявате Ansible Tasks като Sudo

За да изпълните задача Ansible като конкретен потребител, а не като обикновен root потребител, можете да използвате директивата become_user и да предадете потребителското име за изпълнение на задачата. Това прилича на използването на командата sudo -u в Unix.

За да приложите директивата postala_потребител, първо трябва да активирате директивата стават, тъй като става_потребител е неизползваем без активирана тази директива.

Помислете за следната книга, в която командата се изпълнява като потребител nobody.

- име: Изпълнете aкоманда катодруг потребител(Никой)
команда:псна

да стане:вярно

станете_метод:неговото

become_user: никой

станете_флаги:'-s /bin /bash'

В горния фрагмент от книгата за игри, ние реализирахме директивите стават, стават_потребители и други стават директиви.

  1. станете_метод : Това задава метода за ескалация на привилегии, като например su или sudo.
  2. стана директива на user_user : Това определя потребителя да изпълнява командата като; това не означава да стане: да.
  3. стават_флагове : Това задава флаговете да се използват за определената задача.

Вече можете да стартирате горната книга с името на файла ansible-playbook.yml и да видите резултата сами. За задачи с изход може да се наложи да внедрите модула за отстраняване на грешки.

Как да стартирате Ansible с парола

За да стартирате директива стават, която изисква парола, можете да кажете на Ansible да поиска парола при извикване на посочената книга за игра.

Например, за да стартирате книга за игра с парола, въведете командата по -долу:

ansible-playbook become_pass.yml--ask-become-pass

Можете също да посочите флага -K, който изпълнява операции, подобни на горната команда. Например:

ansible-playbook become_pass.yml-ДА СЕ

След като бъде посочено, ще бъдете подканени да въведете парола, когато задачите се изпълняват.

ЗАБЕЛЕЖКА : Можете също да използвате директивата become в сурови команди на Ansible AD HOC, използвайки флага -b. За да научите повече, разгледайте предоставената по -долу документация:

https://linkfy.to/becomeDocumentation

Заключение

След като прочетете тази статия, сега трябва да знаете как да използвате директивата Ansible BECOME за извършване на ескалация на привилегии за различни задачи.

От съображения за сигурност е по -добре да приложите ограничения за различни акаунти и изрично да посочите кога се използват. Така че ескалацията на привилегии е важен аспект при използването на sudo и su в Ansible.