# تعریف کاربران در MySQL
## شرح مسئله
برای تعریف کاربران با سطوح دسترسی متفاوت Ansible Playbook بنویسید که بتوان در MySQL کاربران را  با سطوح دسترسی متفاوت تعریف کرد.
کاربران بدین شکل در group_vars تعریف شده اند (این Playbook در لینک انتهای صفحه در دسترس است):  
```
---
grants:
  - name: john
    host: "%"
    password: qazwsx
    grants:
      - "testdb5.*:SELECT,INSERT,UPDATE,DELETE,CREATE"
      - "testdb4.*:SELECT,INSERT,UPDATE,DELETE"
      - "testdb3.*:SELECT,INSERT"
      - "testdb2.*:SELECT"
  - name: foo
    host: "%"
    password: 1234
    grants:
      - "testdb2.*:SELECT"
      - "testdb3.*:UPDATE"
  - name: bar
    host: "172.16.16.%"
    password: 1111
    grants:
      - "testdb2.*:SELECT"
      - "testdb1.*:DELETE"
      - "testdb4.*:SELECT,INSERT,UPDATE,DELETE"
      - "testdb3.*:SELECT,INSERT"
  - name: sara
    host: "localhost"
    password: 2222
    grants:
      - "testdb5.*:SELECT,INSERT,UPDATE,DELETE,CREATE"
      - "testdb3.*:SELECT,INSERT"
      - "testdb2.*:SELECT"
      - "testdb4.*:SELECT,INSERT,UPDATE,DELETE"
```
پس از اجرای این Playbook انتظار داریم کاربران طبق این دسترسی ها در MySQL ایجاد شوند.
**نکته: در هنگام ارسال، اطلاعات اتصال به MySQL در تسک Ansible را حذف کنید.**
تغییرات خود را فقط در فایل `roles/grants/tasks/grants.yml` اعمال کنید.
نحوه ی اجرای تست:
```
ansible-playbook site.yml
```
## نحوهی ارسال جواب 
تغییرات خودتان را در محیط تست در فایل `roles/grants/tasks/grants.yml` اعمال کنید و سپس فایل های خود را به صورت zip شده با ساختار زیر ارسال نمایید.( فایل ها را از لینک انتهای صفحه دریافت نمایید) 
```
├── docker-compose.yml
├── group_vars
│   └── all
│       ├── main.yml
│       └── mysql.yml
├── inventory
│   └── sample
│       └── hosts.yml
├── roles
│   └── grants
│       ├── handlers
│       ├── tasks
│       │   ├── main.yml
│       │   └── grants.yml
│       └── templates
└── site.yml
```
#### دریافت فایل های محیط تست
فایل های مورد نیاز تست از طریق  [این لینک](/contest/assignments/26287/download_problem_initial_project/87500/)  قابل دسترس می باشد.