Skip to content

Commit

Permalink
[FIX] spelling mistakes fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
ismoilovdevml committed Oct 4, 2024
1 parent 970dec8 commit aa0b56d
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions pages/tutorials/article/nfs-server.en-UZ.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ import { Callout } from "nextra-theme-docs";
# NFS Server sozlash
![nfs-server](https://raw.githubusercontent.com/devops-journey-uz/assets/main/images/article/nfs-server/banner.png)

**NFS** (**N**etwork **F**ile **S**ystem) tarmoqda fayl almashinuvi uchun ishlatiladigan ommabop texnologiyalardan biri hisoblanadi. U bir nechta serverlar va mijoz(client) tizimlar orasida ma'lumotlarni samarali ravishda ulashish(sahre) va boshqarish imkonini beradi. Ushbu texnik qo'llanmada biz Ansible Playbook yordamida bir necha turdagi operatsion tizimlarda (Ubuntu, CentOS, RHEL va boshqalar) NFS serverini o'rnatish va sozlash jarayonini avtomatlashtirishni ko'rib chiqamiz.
**NFS** (**N**etwork **F**ile **S**ystem) tarmoqda fayl almashinuvi uchun ishlatiladigan ommabop texnologiyalardan biri hisoblanadi. U bir nechta serverlar va mijoz(client) tizimlar orasida ma'lumotlarni samarali ravishda ulashish(share) va boshqarish imkonini beradi. Ushbu texnik qo'llanmada biz Ansible Playbook yordamida bir necha turdagi operatsion tizimlarda (Ubuntu, CentOS, RHEL va boshqalar) NFS serverini o'rnatish va sozlash jarayonini avtomatlashtirishni ko'rib chiqamiz.


**NFS** (**N**etwork **F**ile **S**ystem) — **Sun Microsystems** tomonidan **1984**-yilda yaratilgan tarmoq fayl tizimi protokoli. NFS'ning yaratilishidagi asosiy maqsad, UNIX tizimlari orasida tarmoq orqali fayllarni ulashish va boshqarishni osonlashtirish edi. Uning yaratilishi Sun Microsystems'ning muhandisi **Russel Sandberg, Bob Lyon, Bill Joy, Steve Kleiman** va boshqa dasturchilarning sa'y-harakatlari natijasida amalga oshirildi.

## NFS'ning Maqsadlari:
### NFS'ning Maqsadlari:

* **Tarmoq orqali fayllarni ulashish:** Serverdagi fayllarni clientlar orasida share qilish imkonini yaratish. Bu serverda saqlanadigan fayllarni boshqa tizimlarga ham foydalanuvchi uchun local disk kabi foydalanish imkonini beradi.
* **Multi-platforma ko'magi:** NFS UNIX asosidagi tizimlarda ishlash uchun ishlab chiqilgan, ammo keyinchalik boshqa operatsion tizimlarga ham kengaytirildi.
* **Tizimni markazlashtirish:** NFS orqali bir serverda fayllarni markazlashtirilgan holda saqlash va ulardan tarmoqdagi boshqa tizimlar tomonidan foydalanish imkoniyati taqdim etildi. Bu, ayniqsa, katta miqdordagi ma'lumotlarni saqlash va boshqarish kerak bo'lgan korxona muhitlari uchun foydali bo'ldi.

NFS dan Kubernets clusterda ham faol foydalanish mumkin. Kubernetesda NFS odatda bir nechta podlarda persistent storageni ta'minlash uchun ishlatiladi, bu esa uni stateful applicationlarni boshqarishda asosiy komponentga aylantiradi. NFS tez-tez Kubernetesda Persistent Volumes (PV) sifatida ishlatiladi. Persistent Volume administrator tomonidan taqdim etilgan storage resource boʻlib, foydalanuvchilar tomonidan Persistent Volume Claim (PVC) bilan bogʻlanishi mumkin. Bu konteynerlarga qayta ishga tushirish(restart), rescheduling yoki hatto bir nechta podlarda bir xil ma'lumotlarga kirish imkonini beradi. NFS-ga asoslangan PV-lar, ayniqsa, bir nechta podlar o'rtasida fayllarni almashish uchun foydalidir. Kubernetesdagi NFS ham stateful, ham stateless applicationlar uchun shared va persistent storageni boshqarishning moslashuvchan, kengaytiriladigan va ishonchli usulini taklif etadi. **Ceph** yoki **GlusterFS** kabi zamonaviy storage solutionlari yanada ilg'or xususiyatlarni taklif qilsa-da, NFS Kubernetes klasterlarida soddaligi va keng mosligi uchun ko'proq ishlatiladi.
NFS dan Kubernetes clusterda ham faol foydalanish mumkin. Kubernetesda NFS odatda bir nechta podlarda persistent storageni ta'minlash uchun ishlatiladi, bu esa uni stateful applicationlarni boshqarishda asosiy komponentga aylantiradi. NFS tez-tez Kubernetesda Persistent Volumes (PV) sifatida ishlatiladi. Persistent Volume administrator tomonidan taqdim etilgan storage resource boʻlib, foydalanuvchilar tomonidan Persistent Volume Claim (PVC) bilan bogʻlanishi mumkin. Bu konteynerlarga qayta ishga tushirish(restart), rescheduling yoki hatto bir nechta podlarda bir xil ma'lumotlarga kirish imkonini beradi. NFS-ga asoslangan PV-lar, ayniqsa, bir nechta podlar o'rtasida fayllarni almashish uchun foydalidir. Kubernetesdagi NFS ham stateful, ham stateless applicationlar uchun shared va persistent storageni boshqarishning moslashuvchan, kengaytiriladigan va ishonchli usulini taklif etadi. **Ceph** yoki **GlusterFS** kabi zamonaviy storage solutionlari yanada ilg'or xususiyatlarni taklif qilsa-da, NFS Kubernetes klasterlarida soddaligi va keng mosligi uchun ko'proq ishlatiladi.

<Callout type="info" emoji="">
Ushbu qo'llanmada biz open-source **[github.com/ismoilovdevml/infra-as-code](https://github.com/ismoilovdevml/infra-as-code)** Ansible playbooklardan foydalanib ishladik. Bu loyiha ustida hozir aktiv ishlanmoqda, loyihaning asosiy maqsadi infrastruktura boshqaruvini Ansible va Terraform orqali avtomatlashtirishdir bu repositoriya orqali siz o'z infrastrukturangizni avtomatlashtirishda foydalanshingiz mumkin.
Expand All @@ -40,7 +40,7 @@ Ushbu amaliyotni amalga oshirish uchun bizga quyidagi minimum server talablarida
| ------------- | -------------- | ------------- |------------- | ---------- |
| Farqi yo'q | 4GB | 2 core | 50GB | Ha kerak |

Qo'llanmada foydalanadigan ansible playbook multiple osni support qiladi RHEL, CenOS, Fedora, Oracle, Almalinux, Rocky Linux, Debian,Ubuntu OSlarda ishlaydi.
Qo'llanmada foydalanadigan ansible playbook multiple OSni support qiladi RHEL, CenOS, Fedora, Oracle, Almalinux, Rocky Linux, Debian,Ubuntu OSlarda ishlaydi.

**Talablar**
* Ansible playbok ishga tushiriladigan desktop yoki serverda ansible o'rnatilgan bo'lishi (2.15 dan past bo'lmagan)
Expand All @@ -53,9 +53,9 @@ Qo'llanmada foydalanadigan ansible playbook multiple osni support qiladi RHEL,
git clone https://github.com/ismoilovdevml/infra-as-code
```

**2->** NFS o'rnatmoqchi bo'lgan serverlarimizga ssh ulanishni ishga tushirishimiz kerak buning uchun masalan desktop kompyuterimizda ssh-key generatsiya qilishimiz va public keyni kerakli serverlar authorized_keys fayliga qo'shib chiqishimizdir.
**2->** NFS o'rnatmoqchi bo'lgan serverlarimizga ssh ulanishni ishga tushirishimiz kerak buning uchun masalan desktop kompyuterimizda ssh-key generatsiya qilishimiz va public keyni kerakli serverlar `authorized_keys` fayliga qo'shib chiqishimizdir.

ushbu buyruqni ishga tushiramiz va hammasiga **ENTER** bosib ssh-key geneatsiya qilib olamiz.
ushbu buyruqni ishga tushiramiz va hammasiga **ENTER** bosib ssh-key generatsiya qilib olamiz.

```bash
ssh-keygen -f ~/.ssh/ansible
Expand All @@ -66,7 +66,10 @@ ssh-keygen -f ~/.ssh/ansible
Yaratilgan ssh keyni ulanmoqchi bo'lgan serverlarimziga qo'yib chiqamiz, va ssh ulanishni tekshirib olamiz.

```bash
# ssh-copy-id usuli orqali
ssh-copy-id -i ~/.ssh/ansible.pub root@server_ip
# yoki public keyni olib server authorized_keys ga qo'shish
cat ~/.ssh/ansible.pub
```

**3->** Agar serverlarda hali update/upgrade bo'lmagan bo'lsa quyidagi playbokni ishga tushish kerak bo'ladi.
Expand All @@ -88,8 +91,9 @@ update/upgrade ansible playbokni ishga tushiramiz.
```bash
ansible-playbook -i inventory.ini ./update_upgrade_tools.yml
```
![nfs-server](https://raw.githubusercontent.com/devops-journey-uz/assets/main/images/article/nfs-server/7.png)

**3->** Playboklardan nfs ga o'tamiz va inventory.ini fayliga NFS seerverlarimizni ulab chiqamiz.
**3->** Playboklardan nfs ga o'tamiz va `inventory.ini` fayliga NFS seerverlarimizni ulab chiqamiz.


```bash
Expand All @@ -115,7 +119,7 @@ server3 ansible_host=34.170.180.55 ansible_user=root
RedHat: nfs-server
Debian: nfs-kernel-server
```
Bu konfigda **hosts** variablega **nfs_server** qo'yilgan bu `inevntory.ini` dagi **nfs_server** ichidagi sereverlarda ishga tushirishni bildiradi va **nfs_export_path** bu qaysi papkani nfs uchun share qilish ishlatishni belgilaydigan joy bizning holatimizda **/srv/nfs** unda keyin esa **nfs_export_path** ga **"*"** berilgan bu qism ushbu NFS server hammaga ochiq ekanligini hamma ishlata olishini bildira agar siz malum bir IP yoki subnet kira olishini ham berishingiz mumkin.
Bu konfigda **hosts** variablega **nfs_server** qo'yilgan bu `inevntory.ini` dagi **nfs_server** ichidagi serverlarda ishga tushirishni bildiradi va **nfs_export_path** bu qaysi papkani nfs uchun share qilish ishlatishni belgilaydigan joy bizning holatimizda **/srv/nfs** unda keyin esa **nfs_export_path** ga **"*"** berilgan bu qism ushbu NFS server hammaga ochiq ekanligini hamma ishlata olishini bildira agar siz malum bir IP yoki subnet kira olishini ham berishingiz mumkin.

**5->** Hammasi o'zimizga moslab to'grilab olganimzidan keyin NFS server o'rnatishni boshlaymiz

Expand All @@ -128,7 +132,7 @@ Ansible playbook muvaffaqiyatli ishga tushganida quyidagicha bo'lishi kerak.

![nfs-server](https://raw.githubusercontent.com/devops-journey-uz/assets/main/images/article/nfs-server/2.png)

**6->** NFS ishlayotganini tekshiris uchun keling NFS serverimizga kirib statusini ko'ramiz.
**6->** NFS ishlayotganini tekshirish uchun keling NFS serverimizga kirib statusini ko'ramiz.

```bash
systemctl status nfs-server
Expand All @@ -153,7 +157,7 @@ ls -la /mnt/nfs/
```
![nfs-server](https://raw.githubusercontent.com/devops-journey-uz/assets/main/images/article/nfs-server/5.png)

Okey hzoir biz NFS uchun bitta papka ochib(/mnt/nfs) unga NFS serverimizni mount qildik va test uchun bitta fayl ko'chirdik keling endi buni NFS serverimizda tekshirib ko'ramiz unda shared papkada bu congig bo'lishi kerak
Okey hzoir biz NFS uchun bitta papka ochib(/mnt/nfs) unga NFS serverimizni mount qildik va test uchun bitta fayl ko'chirdik keling endi buni NFS serverimizda tekshirib ko'ramiz unda shared papkada bu config bo'lishi kerak

![nfs-server](https://raw.githubusercontent.com/devops-journey-uz/assets/main/images/article/nfs-server/4.png)

Expand Down

0 comments on commit aa0b56d

Please sign in to comment.