# Least Privilege और no_log — Ansible: Playbooks से Servers का Automation

Source: https://www.geekswithgeeks.com/hi/ansible/sec-become-no-log

> Privilege बढ़ाना सीमित करें और secrets को logs से बाहर रखें।

## संकरा privilege, शांत logs

`become: true` पूरे play पर नहीं बल्कि सिर्फ़ उन tasks पर उपयोग करें जिन्हें उसकी ज़रूरत है, और service खाते के लिए `become_user` पर विचार करें। Passwords या tokens सँभालने वाले tasks में **`no_log: true`** रखें ताकि उनके arguments और नतीजे console output, CI logs या callback plugins में न दिखें। याद रखें कि `-v` output और `debug` tasks भी secrets leak कर सकते हैं, इसलिए secret variables कभी न छापें।

## संवेदनशील task पर no_log

`no_log` के बिना विफलता पर module arguments (password hash समेत) छप सकते हैं। (उदाहरण।)

```yaml
- name: Create database user
  community.mysql.mysql_user:
    name: app
    password: "{{ vault_db_password }}"
    priv: "appdb.*:ALL"
    state: present
  no_log: true
  become: true
```

**Quiz:** `no_log: true` क्या करता है?

- [ ] Task बंद करता है
- [x] Task के arguments और नतीजे output व logs से छिपाता है
- [ ] Playbook encrypt करता है
- [ ] Error जाँच छोड़ता है

*Answer:* Task के arguments और नतीजे output व logs से छिपाता है. यह संवेदनशील मानों को console या log output में आने से रोकता है।
