Chỉ thị Ansible Become để chạy các lệnh với tư cách là người dùng được chỉ định

Ansible Become Directive Run Commands



Sử dụng Ansible, bạn có thể thực hiện các thao tác khác nhau trên các máy từ xa bằng các lệnh thô hoặc sách phát Ansible. Theo mặc định, một vở kịch Ansible được thực thi trên máy chủ từ xa với tư cách là người dùng tương tự trên bộ điều khiển Ansible. Điều đó có nghĩa là nếu bạn cần chạy một lệnh với tư cách là người dùng khác trên máy từ xa, bạn sẽ cần chỉ định lệnh đó một cách rõ ràng trong sách phát Ansible của mình.

Để triển khai chức năng chạy lệnh với tư cách người dùng khác, bạn sẽ cần sử dụng tính năng sudo có sẵn trong hệ thống Linux. Chỉ thị trở thành Ansible cho phép bạn chạy các lệnh với tư cách là người dùng được chỉ định.







Thông tin của người dùng được chỉ định trong một playbook Ansible bằng cách sử dụng các biến trở thành, chẳng hạn như be_pass, để chỉ định mật khẩu của người dùng trở thành người dùng, cũng như người dùng nào có thể chạy lệnh.



Cách chạy Ansible Tasks khi root

Để chạy một lệnh cụ thể với tư cách là người dùng gốc trong Ansible, bạn có thể triển khai chỉ thị trở thành và đặt giá trị thành ‘true.’ Việc làm này cho Ansible biết để thực thi sudo mà không có đối số khi chạy lệnh.



Ví dụ: hãy xem xét một playbook Ansible cập nhật gói MySQL-server và sau đó khởi động lại nó. Trong các hoạt động Linux thông thường, bạn sẽ cần đăng nhập với tư cách là người dùng gốc để thực hiện các tác vụ đó. Trong Ansible, bạn có thể đơn giản gọi chỉ thị trở thành: có, như được hiển thị bên dưới:





- máy chủ: tất cả

trở thành:đúng

nhiệm vụ:

- tên: Ansible runnhưroot và cập nhật hệ thống

yum:

tên: mysql-server

trạng thái: mới nhất

- Tên:

service.service:
tên: mysqld

trạng thái: đã khởi động lại

Trong playbook ở trên, chúng tôi đã sử dụng chỉ thị trở thành và không chỉ định người dùng trở thành người dùng, vì bất kỳ lệnh nào trong chỉ thị trở thành được chạy dưới dạng root theo mặc định.

Điều này tương tự như chỉ định nó là:



- máy chủ: tất cả

trở thành:đúng

trở thành người dùng: root

nhiệm vụ:

- tên: Ansible runnhưroot và cập nhật hệ thống

yum:
tên: mysql-server

trạng thái: mới nhất

- tên: service.service:

tên: mysqld

trạng thái: đã khởi động lại

Cách chạy Ansible Tasks bằng Sudo

Để chạy một tác vụ Ansible với tư cách là một người dùng cụ thể, thay vì người dùng gốc bình thường, bạn có thể sử dụng chỉ thị trở thành người dùng và chuyển tên người dùng của người dùng đó để thực thi tác vụ. Điều này khá giống với việc sử dụng lệnh sudo -u trong Unix.

Để triển khai chỉ thị trở thành người dùng, trước tiên bạn phải kích hoạt chỉ thị trở thành, vì trở thành người dùng không thể sử dụng được nếu không chỉ thị này được kích hoạt.

Hãy xem xét playbook sau, trong đó lệnh được chạy với tư cách là người dùng không ai cả.

- tên: Chạy mộtchỉ huy nhưngười dùng khác(không ai)
chỉ huy:pscủa

trở thành:thật

trở thành_method:nó là

trở thành người dùng: không ai cả

trở thành_flags:'-s / bin / bash'

Trong đoạn mã playbook ở trên, chúng tôi đã triển khai lệnh trở thành, trở thành người dùng và các lệnh trở thành khác.

  1. trở thành : Điều này đặt phương thức leo thang đặc quyền, chẳng hạn như su hoặc sudo.
  2. chỉ thị trở thành người dùng : Điều này chỉ định người dùng chạy lệnh dưới dạng; điều này không ngụ ý trở thành: có.
  3. trở thành : Điều này đặt các cờ được sử dụng cho tác vụ được chỉ định.

Bây giờ bạn có thể chạy playbook trên với filename.yml ansible-playbook và tự mình xem kết quả. Đối với các tác vụ có đầu ra, bạn có thể cần triển khai mô-đun gỡ lỗi.

Làm thế nào để Chạy Ansible trở thành với Mật khẩu

Để chạy chỉ thị trở thành yêu cầu mật khẩu, bạn có thể yêu cầu Ansible yêu cầu mật khẩu khi gọi playbook được chỉ định.

Ví dụ: để chạy một playbook có mật khẩu, hãy nhập lệnh dưới đây:

ansible-playbook be_pass.yml--ask-trở thành-vượt qua

Bạn cũng có thể chỉ định cờ -K, cờ này thực hiện các thao tác tương tự như lệnh trên. Ví dụ:

ansible-playbook be_pass.yml-ĐẾN

Sau khi được chỉ định, bạn sẽ được nhắc nhập mật khẩu khi các tác vụ đang thực thi.

GHI CHÚ : Bạn cũng có thể sử dụng chỉ thị trở thành trong các lệnh thô Ansible AD HOC bằng cách sử dụng cờ -b. Để tìm hiểu thêm, hãy xem tài liệu được cung cấp bên dưới:

https://linkfy.to/becomeDocumentation

Phần kết luận

Sau khi đọc bài viết này, bây giờ bạn nên biết cách sử dụng lệnh Ansible BECOME để thực hiện leo thang đặc quyền cho các tác vụ khác nhau.

Vì lý do bảo mật, tốt hơn là nên triển khai các hạn chế cho các tài khoản khác nhau và chỉ định rõ ràng khi nào chúng được sử dụng. Vì vậy, leo thang đặc quyền là một khía cạnh quan trọng của việc sử dụng sudo và su trong Ansible.