{"id":22438,"date":"2026-04-13T23:50:45","date_gmt":"2026-04-13T23:50:45","guid":{"rendered":"https:\/\/umang.pk\/2026\/04\/13\/docker%d8%8c-kubernetes%d8%8c-%d8%a7%d9%88%d8%b1-ansible-%da%a9%db%92-%d8%b3%d8%a7%d8%aa%da%be-%d9%85%d9%82%d8%a7%d9%85%db%8c-devops-homelab-%da%a9%db%8c%d8%b3%db%92-%d8%a8%d9%86%d8%a7%db%8c%d8%a7\/"},"modified":"2026-04-13T23:50:46","modified_gmt":"2026-04-13T23:50:46","slug":"docker%d8%8c-kubernetes%d8%8c-%d8%a7%d9%88%d8%b1-ansible-%da%a9%db%92-%d8%b3%d8%a7%d8%aa%da%be-%d9%85%d9%82%d8%a7%d9%85%db%8c-devops-homelab-%da%a9%db%8c%d8%b3%db%92-%d8%a8%d9%86%d8%a7%db%8c%d8%a7","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/04\/13\/docker%d8%8c-kubernetes%d8%8c-%d8%a7%d9%88%d8%b1-ansible-%da%a9%db%92-%d8%b3%d8%a7%d8%aa%da%be-%d9%85%d9%82%d8%a7%d9%85%db%8c-devops-homelab-%da%a9%db%8c%d8%b3%db%92-%d8%a8%d9%86%d8%a7%db%8c%d8%a7\/","title":{"rendered":"Docker\u060c Kubernetes\u060c \u0627\u0648\u0631 Ansible \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0642\u0627\u0645\u06cc DevOps HomeLab \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u062c\u0628 \u0645\u06cc\u06ba \u0646\u06d2 \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 DevOps \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u06cc \u062a\u0648 \u0645\u062c\u06be\u06d2 AWS \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0627\u0626\u0646 \u0627\u067e \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u06cc\u0627 \u06af\u06cc\u0627\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u06a9\u06cc\u0627\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 EC2 \u0645\u062b\u0627\u0644 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u060c \u0627\u0633 \u067e\u0631 \u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06d2 \u062a\u06a9 \u06a9\u0627\u0645 \u06a9\u06cc\u0627\u060c \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633\u06d2 \u0628\u0646\u062f \u06a9\u0631\u0646\u0627 \u0628\u06be\u0648\u0644 \u06af\u06cc\u0627\u06d4 \u0627\u06cc\u06a9 \u06c1\u0641\u062a\u06c1 \u0628\u0639\u062f \u0645\u062c\u06be\u06d2 \u0627\u06cc\u06a9 \u0645\u0634\u06cc\u0646 \u06a9\u0627 $34 \u0628\u0644 \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u0627 \u062c\u0633 \u0646\u06d2 \u06a9\u0686\u06be \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627\u06d4<\/p>\n<p>\u06cc\u06c1 \u0622\u062e\u0631\u06cc \u0628\u0627\u0631 \u062a\u06be\u0627 \u062c\u0628 \u0645\u06cc\u06ba \u0646\u06d2 \u06a9\u0633\u06cc \u0627\u0648\u0631 \u06a9\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06d2 \u067e\u0631 \u0645\u0634\u0642 \u06a9\u06cc\u06d4<\/p>\n<p>\u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u0631 \u0686\u06cc\u0632 \u0622\u067e \u06a9\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u067e\u0631 \u0686\u0644\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u06a9\u0644\u0627\u0624\u0688 \u0627\u06a9\u0627\u0624\u0646\u0679\u0633 \u0646\u06c1\u06cc\u06ba\u060c \u06a9\u0648\u0626\u06cc \u06a9\u0631\u06cc\u0688\u0679 \u06a9\u0627\u0631\u0688 \u0646\u06c1\u06cc\u06ba\u060c \u0645\u06c1\u06cc\u0646\u06d2 \u06a9\u06d2 \u0622\u062e\u0631 \u06a9\u06d2 \u0628\u0644 \u0646\u06c1\u06cc\u06ba\u06d4 \u0622\u062e\u0631 \u06a9\u0627\u0631\u060c \u0622\u067e \u0634\u0631\u0648\u0639 \u0633\u06d2 \u06c1\u06cc \u0645\u0644\u0679\u06cc \u0633\u0631\u0648\u0631 \u0645\u0627\u062d\u0648\u0644 \u06a9\u0648 \u06af\u06be\u0645\u0627\u0624\u060c \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0633\u06d2 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2\u060c \u0622\u067e \u06a9\u06cc \u0644\u06a9\u06be\u06cc \u06c1\u0648\u0626\u06cc \u0633\u0627\u0626\u0679\u0648\u06ba \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2\u060c \u0627\u0648\u0631 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u06a9\u0633\u06cc \u0686\u06cc\u0632 \u06a9\u06d2 \u062a\u0628\u0627\u06c1 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u06a9\u06cc\u0627 \u0679\u0648\u0679 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0633 \u06a9\u06cc \u062a\u0634\u062e\u06cc\u0635 \u06a9\u0631 \u0633\u06a9\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631\u06cc \u062d\u0635\u06c1 \u0648\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u062d\u0642\u06cc\u0642\u06cc \u062a\u0639\u0644\u06cc\u0645 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u06a9\u0645 \u0627\u0632 \u06a9\u0645 8 \u062c\u06cc \u0628\u06cc \u0631\u06cc\u0645 \u0648\u0627\u0644\u0627 \u0644\u06cc\u067e \u0679\u0627\u067e (16 \u062c\u06cc \u0628\u06cc \u0628\u06c1\u062a\u0631 \u06c1\u06d2)<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0645 \u0627\u0632 \u06a9\u0645 20 GB \u0645\u0641\u062a \u0688\u0633\u06a9 \u06a9\u06cc \u062c\u06af\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0648\u0646\u0688\u0648\u0632\u060c \u0645\u06cc\u06a9 \u0627\u0648 \u0627\u06cc\u0633\u060c \u06cc\u0627 \u0644\u06cc\u0646\u06a9\u0633 \u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u06a9\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u062a\u06a9 \u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0648\u0631\u0686\u0648\u0626\u0644\u0627\u0626\u0632\u06cc\u0634\u0646 BIOS\/UEFI \u0633\u06cc\u0679\u0646\u06af\u0632 \u0645\u06cc\u06ba \u0641\u0639\u0627\u0644 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u06a9\u0646\u06cc\u06a9\u0634\u0646<\/p>\n<\/li>\n<\/ul>\n<p>\u0639\u0644\u0645 \u0627\u0648\u0631 \u0622\u0631\u0627\u0645 \u06a9\u06cc \u0633\u0637\u062d:<\/p>\n<ul>\n<li>\n<p>\u0622\u067e \u06a9\u0648 \u0679\u0631\u0645\u06cc\u0646\u0644 \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0633\u06d2 \u0648\u0627\u0642\u0641 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 (\u06a9\u0645\u0627\u0646\u0688\u0632 \u0686\u0644\u0627\u0646\u0627\u060c \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc\u0632 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u067e\u0633\u0646\u062f\u06cc\u062f\u06c1 \u0627\u06cc\u0688\u06cc\u0679\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u06be\u0648\u0679\u06cc \u0679\u06cc\u06a9\u0633\u0679 \u0641\u0627\u0626\u0644\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u0646\u0627)\u06d4<\/p>\n<\/li>\n<li>\n<p>Docker\u060c Kubernetes\u060c Vagrant\u060c \u06cc\u0627 Ansible \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0633\u06cc \u067e\u06cc\u0634\u06af\u06cc \u062a\u062c\u0631\u0628\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062d\u0627\u0644\u0627\u0646\u06a9\u06c1 &quot;\u0633\u0631\u0648\u0631&#8221;\u060c &quot;SSH&#8221;\u060c \u0627\u0648\u0631 &quot;\u067e\u0648\u0631\u0679&#8221; \u062c\u06cc\u0633\u06d2 \u062a\u0635\u0648\u0631\u0627\u062a \u06a9\u0627 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0644\u0645 \u0645\u062f\u062f\u06af\u0627\u0631 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u0627\u0646 \u06a9\u0627 \u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0627\u062a\u06cc \u06c1\u06d2 \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u06cc\u06c1 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06af\u06be\u0628\u0631\u0627\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u0642\u062f\u0645 \u0628\u06c1 \u0642\u062f\u0645 \u06c1\u062f\u0627\u06cc\u0627\u062a \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062e\u0631\u0627\u0628\u06cc \u06a9\u0627 \u0622\u0624\u0679 \u067e\u0679 \u067e\u0691\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u062a\u06cc\u0627\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<ol>\n<li>\n<p>DevOps \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0645\u0642\u0627\u0645\u06cc \u0644\u06cc\u0628 \u06a9\u06cc\u0648\u06ba \u0628\u0646\u0627\u0624\u06ba\u061f<\/p>\n<\/li>\n<li>\n<p>\u0688\u0648\u06a9\u0631 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0628\u0631\u0646\u06cc\u0679\u0633 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>kubectl \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0622\u0648\u0627\u0631\u06c1 \u06af\u0631\u062f\u06cc \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062c\u0648\u0627\u0628\u06cc \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0627\u067e\u0646\u0627 \u067e\u06c1\u0644\u0627 DevOps \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/p>\n<\/li>\n<li>\n<p>\u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0644\u06cc\u0628 \u0645\u06cc\u06ba \u062e\u0644\u0644 \u0688\u0627\u0644\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0627\u0628 \u0622\u067e \u06a9\u06cc\u0627 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"heading-what-is-devops\">DevOps \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>DevOps \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0688\u0648\u06cc\u0644\u067e\u0645\u0646\u0679 \u0679\u06cc\u0645\u0648\u06ba \u0627\u0648\u0631 IT \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u0679\u06cc\u0645\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u062f\u06cc\u0648\u0627\u0631\u0648\u06ba \u06a9\u0648 \u062a\u0648\u0691\u0646\u06d2 \u06a9\u0627 \u0639\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<p>\u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631\u060c \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u06a9\u0648\u0688 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0627\u0648\u0631 \u062f\u06cc\u06a9\u06be \u0628\u06be\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e\u0631\u06cc\u0634\u0646 \u0679\u06cc\u0645 \u06a9\u06d2 \u062d\u0648\u0627\u0644\u06d2 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u06c1\u06cc\u0646\u0688 \u0622\u0641 \u062a\u0627\u062e\u06cc\u0631\u060c \u063a\u0644\u0637 \u0641\u06c1\u0645\u06cc\u0648\u06ba \u0627\u0648\u0631 \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0627 \u0633\u0628\u0628 \u0628\u0646\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 DevOps \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062f\u0648 \u0679\u06cc\u0645\u06cc\u06ba \u0634\u0631\u0648\u0639 \u0633\u06d2 \u0645\u0644 \u06a9\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u06c1\u0645 \u062c\u0648 \u0679\u0648\u0644\u0632 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06c1\u0631 \u0627\u06cc\u06a9 \u0627\u0633 \u0639\u0645\u0644 \u06a9\u06d2 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u062d\u0635\u06d2 \u06a9\u0648 \u0627\u06cc\u0688\u0631\u06cc\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p><strong>\u0688\u0627\u06a9\u0631<\/strong> \u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u06cc \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u0627\u06cc\u06a9 \u067e\u0648\u0631\u0679\u06cc\u0628\u0644 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0645\u06cc\u06ba \u067e\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u062a\u0645\u0627\u0645 \u0633\u0633\u0679\u0645\u0632 \u067e\u0631 \u0627\u0633\u06cc \u0637\u0631\u062d \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0648\u0628\u0631\u0646\u06cc\u0679\u0633<\/strong> \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u0645\u062a\u0639\u062f\u062f \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u06a9\u0627 \u0646\u0638\u0645 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639\u060c \u0646\u06cc\u0679 \u0648\u0631\u06a9\u0646\u06af\u060c \u0627\u0648\u0631 \u0644\u0648\u0688 \u0628\u06cc\u0644\u0646\u0633\u0646\u06af \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0622\u0648\u0627\u0631\u06c1<\/strong> \u0648\u0631\u0686\u0648\u0626\u0644 \u0645\u0634\u06cc\u0646 \u0645\u0627\u062d\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u0627 \u0646\u0638\u0645 \u06a9\u0631\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0622\u067e \u06a9\u06cc \u067e\u0648\u0631\u06cc \u0679\u06cc\u0645 \u06c1\u0645\u06cc\u0634\u06c1 \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062c\u0648\u0627\u0628\u062f\u06c1<\/strong> \u06c1\u0631 \u0627\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0644\u06a9\u06be\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u062a\u0639\u062f\u062f \u0633\u0631\u0648\u0631\u0632 \u067e\u0631 \u0628\u0627\u0631 \u0628\u0627\u0631 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u06a9\u06d2 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u0648 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-why-build-a-local-lab\">\u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0645\u0642\u0627\u0645\u06cc \u0644\u06cc\u0628 \u06a9\u06cc\u0648\u06ba \u0628\u0646\u0627\u0624\u06ba\u061f<\/h2>\n<p>\u0645\u0642\u0627\u0645\u06cc \u0644\u06cc\u0628\u0632 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0644\u0627\u06af\u062a \u06cc\u0627 \u062e\u0637\u0631\u06d2 \u06a9\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u062a\u0648\u0691\u0646\u06d2\u060c \u0679\u06be\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0633\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u062d\u0641\u0648\u0638 \u062c\u06af\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u062c\u06be\u06d2 \u0627\u067e\u0646\u06d2 \u0645\u0642\u0627\u0645\u06cc \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u06cc\u0627 \u0645\u0644\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><strong>\u0627\u0633 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u0628\u0627\u0644\u06a9\u0644 \u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/strong> \u06a9\u0648\u0626\u06cc \u06a9\u0644\u0627\u0624\u0688 \u0628\u0644\u060c \u0633\u0631\u067e\u0631\u0627\u0626\u0632 \u0686\u0627\u0631\u062c\u0632\u060c \u0627\u0648\u0631 \u06a9\u0633\u06cc \u06a9\u0631\u06cc\u0688\u0679 \u06a9\u0627\u0631\u0688 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0622\u0641 \u0644\u0627\u0626\u0646 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/strong> \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u06c1\u06cc\u06ba \u0628\u06be\u06cc \u0645\u0634\u0642 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062c\u0645\u0644\u06c1 \u062d\u0642\u0648\u0642 \u0645\u062d\u0641\u0648\u0638 \u06c1\u06cc\u06ba\u06d4<\/strong> OS \u0633\u06d2 \u0644\u06d2 \u06a9\u0631 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u062a\u06a9 \u062a\u0645\u0627\u0645 \u067e\u0631\u062a\u0648\u06ba \u06a9\u0627 \u0646\u0638\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0645\u062d\u0641\u0648\u0638 \u062a\u062c\u0631\u0628\u06c1\u06d4<\/strong> \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u062a\u0648\u0691\u0646\u06d2 \u06a9\u06d2 \u0644\u0626\u06d2 \u0622\u0632\u0627\u062f \u0645\u062d\u0633\u0648\u0633 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1\u0627\u06ba \u0627\u06cc\u0633\u06cc \u06a9\u0648\u0626\u06cc \u0686\u06cc\u0632 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0648 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u0648 \u0645\u062a\u0627\u062b\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u0648\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u06cc\u0632 \u0631\u0627\u0626\u06d2\u06d4<\/strong> \u0627\u067e\u0646\u06d2 \u06a9\u0644\u0627\u0624\u0688 \u0648\u0633\u0627\u0626\u0644 \u06a9\u06d2 \u0622\u0646 \u0644\u0627\u0626\u0646 \u0622\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 \u0633\u0628 \u06a9\u0686\u06be \u0622\u067e \u06a9\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u0646\u0641\u06cc \u067e\u06c1\u0644\u0648 \u0648\u0633\u0627\u0626\u0644 \u06a9\u06cc \u062d\u062f\u0648\u062f \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u06a9\u0627 CPU \u0627\u0648\u0631 RAM \u0633\u0628 \u0633\u06d2 \u0627\u0648\u067e\u0631 \u06c1\u06d2\u06d4 \u0628\u0691\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u0648\u06ba \u06a9\u0648 \u0646\u0642\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627\u060c \u0627\u0648\u0631 \u06a9\u0686\u06be \u06a9\u0644\u0627\u0624\u0688 \u0645\u0642\u0627\u0645\u06cc \u062e\u062f\u0645\u0627\u062a\u060c \u062c\u06cc\u0633\u06d2 AWS Lambda \u06cc\u0627 S3\u060c \u06a9\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0645\u0642\u0627\u0645\u06cc \u06c1\u0645 \u0645\u0646\u0635\u0628 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0644\u06cc\u06a9\u0646 \u062c\u0628 \u0628\u0646\u06cc\u0627\u062f\u06cc DevOps \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0633\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0628\u0627\u062a \u0622\u062a\u06cc \u06c1\u06d2 \u062a\u0648 \u0627\u0633 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0641\u0631\u0642 \u0646\u06c1\u06cc\u06ba \u067e\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-set-up-docker\">\u0688\u0648\u06a9\u0631 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u0688\u0648\u06a9\u0631 \u0627\u0633 \u0644\u06cc\u0628 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u06c1\u06d2\u06d4 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u06a9\u06d2 \u062f\u06cc\u06af\u0631 \u062a\u0645\u0627\u0645 \u0679\u0648\u0644\u0632 \u0627\u0646\u062f\u0631 \u0686\u0644\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 Docker \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-install-docker-on-windows\">\u0648\u0646\u0688\u0648\u0632 \u067e\u0631 \u0688\u0648\u06a9\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h3>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c BIOS \u0645\u06cc\u06ba \u0648\u0631\u0686\u0648\u0626\u0644\u0627\u0626\u0632\u06cc\u0634\u0646 \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<ol>\n<li>\n<p>\u0627\u067e\u0646\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 BIOS\/UEFI \u0633\u06cc\u0679\u0646\u06af\u0632 \u062f\u0631\u062c \u06a9\u0631\u06cc\u06ba\u06d4 \u0686\u0627\u0628\u06cc\u0627\u06ba \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 F2\u060c F10\u060c Del\u060c \u06cc\u0627 Esc \u0628\u0648\u0679 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u067e\u0646\u06cc \u0648\u0631\u0686\u0648\u0626\u0644\u0627\u0626\u0632\u06cc\u0634\u0646 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 Intel VT-x\u060c AMD-V\u060c SVM\u060c \u06cc\u0627 \u0648\u0631\u0686\u0648\u0626\u0644\u0627\u0626\u0632\u06cc\u0634\u0646 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u06a9\u06d2 \u0628\u0637\u0648\u0631 \u062f\u0631\u062c \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0686\u0627\u0644\u0648 \u06a9\u0631\u06cc\u06ba\u060c \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0628\u0627\u06c1\u0631 \u0646\u06a9\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u067e\u06be\u0631 \u0688\u0648\u06a9\u0631 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<ol>\n<li>\n<p>\u0688\u0648\u06a9\u0631 \u06a9\u06cc \u0622\u0641\u06cc\u0634\u0644 \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u0633\u06d2 \u0688\u0648\u06a9\u0631 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0633\u0679\u0627\u0644\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0634\u0627\u0631\u06d2 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 WSL 2 (\u0648\u0646\u0688\u0648\u0632 \u0633\u0628 \u0633\u0633\u0679\u0645 \u0641\u0627\u0631 \u0644\u06cc\u0646\u06a9\u0633) \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u067e\u0646\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633\u0679\u0627\u0631\u0679 \u0645\u06cc\u0646\u0648 \u0633\u06d2 \u0688\u0648\u06a9\u0631 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u06cc\u06ba \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0679\u0627\u0633\u06a9 \u0628\u0627\u0631 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0648\u06c1\u06cc\u0644 \u0622\u0626\u06cc\u06a9\u0646 \u0627\u06cc\u0646\u06cc\u0645\u06cc\u0634\u0646 \u0628\u0646\u062f \u0646\u06c1 \u06a9\u0631 \u062f\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0679\u0631\u0628\u0644 \u0634\u0648\u0679\u0646\u06af:<\/strong> \u0627\u06af\u0631 \u0688\u0648\u06a9\u0631 \u0634\u0631\u0648\u0639 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u067e\u0627\u0648\u0631 \u0634\u06cc\u0644 \u0645\u06cc\u06ba \u0628\u0637\u0648\u0631 \u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u0686\u0644\u0627 \u06a9\u0631 \u0648\u0631\u0686\u0648\u0626\u0644\u0627\u0626\u0632\u06cc\u0634\u0646 \u0641\u0639\u0627\u0644 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-powershell\">systeminfo | findstr \"Hyper-V Requirements\"\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u0648 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 &quot;\u06c1\u0627\u06ba&#8221; \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06af\u0631 \u0646\u06c1\u06cc\u06ba\u060c \u062a\u0648 BIOS \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u067e\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-install-docker-on-mac\">\u0645\u06cc\u06a9 \u067e\u0631 \u0688\u0648\u06a9\u0631 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<ol>\n<li>\n<p>\u0688\u0648\u06a9\u0631 \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u0633\u06d2 \u0645\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0648\u06a9\u0631 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u06cc \u06af\u0626\u06cc \u0641\u0627\u0626\u0644 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4 <code>.dmg<\/code> \u0641\u0627\u0626\u0644 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0688\u0648\u06a9\u0631 \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0648\u0644\u0688\u0631 \u0645\u06cc\u06ba \u06af\u06be\u0633\u06cc\u0679\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u0645\u06cc\u06ba \u0688\u0648\u06a9\u0631 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0627\u067e\u0646\u0627 \u067e\u0627\u0633 \u0648\u0631\u0688 \u062f\u0631\u062c \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u06cc\u06ba \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0645\u06cc\u0646\u0648 \u0628\u0627\u0631 \u0645\u06cc\u06ba \u0648\u06c1\u06cc\u0644 \u06a9\u0627 \u0622\u0626\u06cc\u06a9\u0646 \u062d\u0631\u06a9\u062a \u067e\u0630\u06cc\u0631\u06cc \u0628\u0646\u062f \u0646\u06c1 \u06a9\u0631 \u062f\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"heading-how-to-install-docker-on-linux\">\u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631 \u0688\u0648\u06a9\u0631 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688\u0632 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u0633\u06d2 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\"># Update your package lists\nsudo apt-get update\n\n# Install prerequisites\nsudo apt-get install apt-transport-https ca-certificates curl software-properties-common\n\n# Add Docker's official GPG key\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add -\n\n# Add the Docker repository\nsudo add-apt-repository \"deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\"\n\n# Update and install Docker\nsudo apt-get update\nsudo apt-get install docker-ce\n\n# Start and enable Docker\nsudo systemctl start docker\nsudo systemctl enable docker\n\n# Add your user to the docker group\nsudo usermod -aG docker $USER\n<\/code><\/pre>\n<p>\u0644\u0627\u06af \u0622\u0624\u0679 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06af\u0631\u0648\u067e \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u0627\u06af \u0627\u0646 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-test-docker\">\u0688\u0648\u06a9\u0631 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\">docker run hello-world\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0622\u067e \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba &quot;\u06c1\u06cc\u0644\u0648 \u0641\u0631\u0627\u0645 \u0688\u0648\u06a9\u0631!&#8221;\u060c \u0688\u0648\u06a9\u0631 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0648\u06a9\u0631 \u0642\u0627\u0626\u0645 \u06c1\u06d2\u06d4 \u0627\u06af\u0644\u0627\u060c \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 Kubernetes \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-set-up-kubernetes\">\u06a9\u0628\u0631\u0646\u06cc\u0679\u0633 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>Kubernetes \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0642\u0627\u0645\u06cc \u0644\u06cc\u0628\u0632 \u06a9\u06d2 \u067e\u0627\u0633 \u0686\u0627\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06c1\u06cc\u06ba: \u06cc\u06c1\u0627\u06ba \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0633\u0627\u0645\u0627\u0646<\/th>\n<th>\u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0645\u0648\u0632\u0648\u06ba \u06c1\u06d2\u06d4<\/th>\n<th>\u0631\u0627\u0645 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u0645\u0646\u06cc \u06a9\u06cc\u0648\u0628<\/strong><\/td>\n<td>\u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0633\u0628 \u0633\u06d2 \u0622\u0633\u0627\u0646 \u0633\u06cc\u0679 \u0627\u067e\u060c \u0628\u0644\u0679 \u0627\u0646 \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688<\/td>\n<td>2 GB \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0642\u0633\u0645<\/strong><\/td>\n<td>\u062a\u06cc\u0632 \u062a\u0631 \u0622\u063a\u0627\u0632\u060c CI \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646\u0632 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/td>\n<td>1 GB \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1<\/td>\n<\/tr>\n<tr>\n<td><strong>k3s<\/strong><\/td>\n<td>\u0686\u0646\u062f \u0648\u0633\u0627\u0626\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0645\u0634\u06cc\u0646. \u06c1\u0644\u06a9\u0627 \u067e\u06be\u0644\u06a9\u0627 \u0644\u06cc\u06a9\u0646 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u06cc \u0637\u0631\u062d<\/td>\n<td>512 MB \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1<\/td>\n<\/tr>\n<tr>\n<td><strong>kubeadm<\/strong><\/td>\n<td>\u062c\u0627\u0646\u06cc\u06ba \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d \u0627\u06cc\u06a9 \u06a9\u0644\u0633\u0679\u0631 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u0645\u06cc\u06ba \u0628\u0648\u0679\u0633\u0679\u0631\u06cc\u067e \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/td>\n<td>2 \u062c\u06cc \u0628\u06cc \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0641\u06cc \u0646\u0648\u0688<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u0628\u06be\u06cc \u0634\u0631\u0648\u0639\u0627\u062a \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 Minikube \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u0622\u0633\u0627\u0646 \u062a\u0631\u06cc\u0646 \u0633\u06cc\u0679 \u0627\u067e \u0627\u0648\u0631 \u0628\u0635\u0631\u06cc \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688 \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06a9\u06cc\u0627 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u06a9\u06cc \u0631\u06cc\u0645 8GB \u0633\u06d2 \u06a9\u0645 \u06c1\u06d2 \u062a\u0648 k3s \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 Minikube \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0636\u0628\u0648\u0637\u06cc \u0633\u06d2 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u0628\u0631\u062a\u0627\u0624 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>kubeadm \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0628 \u0622\u067e \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 Kubernetes \u0646\u0648\u0688\u0633 \u06a9\u0633 \u0637\u0631\u062d \u06a9\u0644\u0633\u0679\u0631 \u0645\u06cc\u06ba \u062d\u0635\u06c1 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0632\u06cc\u062f \u062f\u0633\u062a\u06cc \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u0627\u0648\u0631 \u06cc\u06c1 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u0648\u0633\u062a\u0627\u0646\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-install-minikube-recommended-for-beginners\">Minikube \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 (\u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0627\u0641\u0631\u0627\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1)<\/h3>\n<p>Minikube \u0622\u067e \u06a9\u06cc \u0646\u0648\u0679 \u0628\u06a9 \u067e\u0631 \u0633\u0646\u06af\u0644 \u0646\u0648\u0688 Kubernetes \u06a9\u0644\u0633\u0679\u0631 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0648\u0646\u0688\u0648\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<ol>\n<li>\n<p>Minikube \u0627\u0646\u0633\u0679\u0627\u0644\u0631 \u06a9\u0648 Minikube \u06a9\u06d2 GitHub \u0631\u06cc\u0644\u06cc\u0632 \u0635\u0641\u062d\u06c1 \u0633\u06d2 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u067e\u06be\u0627\u0646\u0633\u06cc <code>.exe<\/code> \u0627\u0646\u0633\u0679\u0627\u0644\u0631\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u06a9\u06cc \u0645\u0631\u0627\u0639\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0645\u0627\u0646\u0688 \u067e\u0631\u0627\u0645\u067e\u0679 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 Minikube \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-cmd\">minikube start --driver=docker\n<\/code><\/pre>\n<p>\u0645\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-bash\">brew install minikube\nminikube start --driver=docker\n<\/code><\/pre>\n<p>\u0644\u06cc\u0646\u06a9\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-bash\">curl -LO https:\/\/storage.googleapis.com\/minikube\/releases\/latest\/minikube-linux-amd64\nchmod +x minikube-linux-amd64\nsudo mv minikube-linux-amd64 \/usr\/local\/bin\/minikube\nminikube start --driver=docker\n<\/code><\/pre>\n<p>\u0627\u067e\u0646\u06d2 \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">minikube status\nminikube dashboard\n<\/code><\/pre>\n<h3 id=\"heading-how-to-install-k3s-recommended-for-low-ram-machines\">k3s \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 (\u06a9\u0645 RAM \u0648\u0627\u0644\u06d2 \u0633\u0633\u0679\u0645\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1)<\/h3>\n<p>k3s Kubernetes \u06a9\u0627 \u06c1\u0644\u06a9\u0627 \u067e\u06be\u0644\u06a9\u0627 \u0648\u0631\u0698\u0646 \u06c1\u06d2 \u062c\u0648 \u0627\u06cc\u06a9 \u0645\u0646\u0679 \u0633\u06d2 \u0628\u06be\u06cc \u06a9\u0645 \u0648\u0642\u062a \u0645\u06cc\u06ba \u0627\u0646\u0633\u0679\u0627\u0644 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0627\u0641 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062d\u0642\u06cc\u0642\u06cc \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06cc \u0637\u0631\u062d \u0628\u0631\u062a\u0627\u0624 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0633\u0627\u062f\u06c1 \u0688\u06cc\u0645\u0648 \u0648\u0631\u0698\u0646 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0644\u06cc\u0646\u06a9\u0633 (\u0627\u0648\u0631 \u0645\u06cc\u06a9 \u0628\u0630\u0631\u06cc\u0639\u06c1 \u0645\u0644\u0679\u06cc \u067e\u0627\u0633):<\/p>\n<pre><code class=\"language-bash\">curl -sfL https:\/\/get.k3s.io | sh -\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0648\u0627\u062d\u062f \u06a9\u0645\u0627\u0646\u0688 k3s \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u067e\u0633 \u0645\u0646\u0638\u0631 \u0645\u06cc\u06ba \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0686\u0644\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u06cc\u06c1 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\">sudo k3s kubectl get nodes\n<\/code><\/pre>\n<p>\u0622\u067e \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0646\u0648\u0688 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2\u06d4 <code>Ready<\/code>.<\/p>\n<p>\u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0622\u067e \u06a9\u06d2 \u0645\u06cc\u06a9 \u0633\u06d2 \u2014 k3s \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 macOS \u067e\u0631 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0644\u0679\u06cc \u067e\u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u067e\u06c1\u0644\u06d2 \u06c1\u0644\u06a9\u0627 \u067e\u06be\u0644\u06a9\u0627 Ubuntu VM \u06af\u06be\u0645\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0645\u0627\u0646\u0688 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u0646\u0688\u0648\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 &#8211; WSL2 (Ubuntu) \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u067e\u06be\u0631 WSL2 \u0679\u0631\u0645\u06cc\u0646\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0645\u0627\u0646\u0688 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-install-kind-kubernetes-in-docker\">\u0642\u0633\u0645 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba (Docker \u0645\u06cc\u06ba Kubernetes)<\/h3>\n<p>Kind \u0627\u06cc\u06a9 Docker \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u06cc\u06a9 \u067e\u0648\u0631\u0627 Kubernetes \u06a9\u0644\u0633\u0679\u0631 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 Minikube \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06af\u0631 \u0622\u067e \u0628\u06cc\u06a9 \u0648\u0642\u062a \u0645\u062a\u0639\u062f\u062f \u06a9\u0644\u0633\u0679\u0631 \u0686\u0644\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\"># Mac or Linux\nbrew install kind\n\n# Windows\nchoco install kind\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u06a9\u0644\u0633\u0679\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\">kind create cluster --name my-local-lab\n<\/code><\/pre>\n<h3 id=\"heading-how-to-install-kubeadm-for-understanding-cluster-bootstrap\">kubeadm \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 (\u06a9\u0644\u0633\u0679\u0631 \u0628\u0648\u0679\u0633\u0679\u0631\u06cc\u067e\u0646\u06af \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2)<\/h3>\n<p>kubeadm \u0648\u06c1 \u0679\u0648\u0644 \u06c1\u06d2 \u062c\u0633\u06d2 Kubernetes \u0641\u0632\u06cc\u06a9\u0644 \u06a9\u0644\u0633\u0679\u0631 \u0645\u06cc\u06ba \u0646\u0648\u0688\u0633 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u062c\u0648\u0627\u0626\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0628 \u0622\u067e \u0631\u0648\u0632\u0627\u0646\u06c1 \u0688\u0631\u0627\u0626\u06cc\u0648\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06c1\u0688 \u06a9\u06d2 \u0646\u06cc\u0686\u06d2 \u06a9\u06cc\u0627 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u0648 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u062f\u0648 \u0645\u0634\u06cc\u0646\u0648\u06ba (\u06cc\u0627 VMs) \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4 \u0633\u06cc\u0679 \u0627\u067e \u0627\u0648\u067e\u0631 \u06a9\u06d2 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u067e\u06cc\u0686\u06cc\u062f\u06c1 \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06d2 OS \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u0641\u06cc\u0634\u0644 kubeadm \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646 \u06af\u0627\u0626\u06cc\u0688 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u067e\u0646\u06d2 \u06a9\u0644\u0633\u0679\u0631 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">sudo kubeadm init --pod-network-cidr=10.244.0.0\/16\n<\/code><\/pre>\n<p>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06cc\u06a9 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0648\u0631\u06a9\u0631 \u0646\u0648\u0688\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u0648\u06ba \u062c\u0648 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u06d2 \u0622\u062e\u0631 \u0645\u06cc\u06ba kubeadm \u067e\u0631\u0646\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-install-kubectl\">kubectl \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h3>\n<p>kubectl \u0627\u06cc\u06a9 \u06a9\u0645\u0627\u0646\u0688 \u0644\u0627\u0626\u0646 \u0679\u0648\u0644 \u06c1\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u0627\u067e\u0646\u06d2 Kubernetes \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0639\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u0646\u0688\u0648\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<p>\u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba <code>kubectl.exe<\/code> \u0627\u0633\u06d2 Kubernetes \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u067e\u0631 \u0627\u067e\u0646\u06d2 PATH \u0645\u06cc\u06ba \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u06cc\u0627 \u0686\u0627\u06a9\u0644\u06cc\u0679\u06cc \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-cmd\">choco install kubernetes-cli\n<\/code><\/pre>\n<p>\u0645\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-bash\">brew install kubectl\n<\/code><\/pre>\n<p>\u0644\u06cc\u0646\u06a9\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-bash\">curl -LO \"https:\/\/dl.k8s.io\/release\/$(curl -L -s https:\/\/dl.k8s.io\/release\/stable.txt)\/bin\/linux\/amd64\/kubectl\"\nchmod +x kubectl\nsudo mv kubectl \/usr\/local\/bin\/kubectl\n<\/code><\/pre>\n<p>\u0627\u0633\u06d2 \u0622\u0632\u0645\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\">kubectl get pods --all-namespaces\n<\/code><\/pre>\n<p>\u0646\u0626\u06d2 \u06a9\u0644\u0633\u0679\u0631 \u0645\u06cc\u06ba\u060c \u0622\u067e \u0633\u0633\u0679\u0645 \u067e\u0648\u0688\u0632 \u06a9\u0648 \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2\u06d4 <code>kube-system<\/code> \u0646\u0627\u0645 \u06a9\u06cc \u062c\u06af\u06c1 &#8211; \u06a9\u0686\u06be \u0627\u0633 \u0637\u0631\u062d: <code>coredns<\/code> \u0627\u0648\u0631 <code>storage-provisioner<\/code>. \u06cc\u06c1 \u0645\u062a\u0648\u0642\u0639 \u0646\u062a\u06cc\u062c\u06c1 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0644\u0633\u0679\u0631 \u0627\u0648\u067e\u0631 \u06c1\u06d2 \u0627\u0648\u0631 kubectl \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0627\u062a \u0686\u06cc\u062a \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>Kubernetes \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2. \u0627\u06af\u0644\u0627 \u0648\u0646\u0688\u0631\u0631 \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0627\u06cc\u06a9 \u0627\u06c1\u0645 \u0641\u0631\u0642 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-docker-vs-vagrant-they-arent-the-same-thing\">\u0688\u0648\u06a9\u0631 \u0627\u0648\u0631 \u0648\u0627\u06af\u0631\u0646\u0679 &#8211; \u0648\u06c1 \u0627\u06cc\u06a9 \u06c1\u06cc \u0686\u06cc\u0632 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/h4>\n<p>\u0688\u0648\u06a9\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u06c1\u0644\u06a9\u06d2 \u0648\u0632\u0646 \u06a9\u06d2 \u0639\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u0648 \u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u062f\u0627\u0646\u0627 \u06a9\u0648 \u0634\u06cc\u0626\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 Vagrant \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0648\u0631\u0686\u0648\u0626\u0644 \u0645\u0634\u06cc\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0648\u0633\u0631\u06d2 \u0627\u0644\u0641\u0627\u0638 \u0645\u06cc\u06ba\u060c \u06cc\u06c1 \u0627\u06cc\u06a9 \u0627\u0644\u06af \u062a\u06be\u0644\u06af \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u06c1\u06d2 \u062c\u0648 \u0644\u06cc\u067e \u0679\u0627\u067e \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u067e\u0646\u0627 OS \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u0646\u0679\u06cc\u0646\u0631 \u062a\u06cc\u0632 \u0627\u0648\u0631 \u0686\u06be\u0648\u0679\u06d2 \u06c1\u06cc\u06ba\u06d4 VMs \u0628\u06be\u0627\u0631\u06cc \u06c1\u06cc\u06ba \u0644\u06cc\u06a9\u0646 \u062c\u0633\u0645\u0627\u0646\u06cc \u0633\u0631\u0648\u0631\u0632 \u06a9\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u0644\u06cc\u0628 \u0645\u06cc\u06ba\u060c \u0622\u067e \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0645\u062e\u062a\u0644\u0641 \u0648\u062c\u0648\u06c1\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-set-up-vagrant\">\u0622\u0648\u0627\u0631\u06c1 \u06af\u0631\u062f\u06cc \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>Vagrant \u0622\u067e \u06a9\u0648 \u0642\u0627\u0628\u0644 \u062a\u0648\u0644\u06cc\u062f \u0648\u0631\u0686\u0648\u0626\u0644 \u0645\u0634\u06cc\u0646 \u0645\u0627\u062d\u0648\u0644 \u0628\u0646\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u06a9\u0627 \u0646\u0638\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u06c1\u06cc \u0644\u06cc\u067e \u0679\u0627\u067e \u067e\u0631 \u0645\u062a\u0639\u062f\u062f \u0633\u0631\u0648\u0631 \u0633\u06cc\u0679 \u0627\u067e\u0633 \u06a9\u06cc \u0646\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062b\u0627\u0644\u06cc\u06d4<\/p>\n<h3 id=\"heading-how-to-install-vagrant-on-windows\">\u0648\u0646\u0688\u0648\u0632 \u067e\u0631 \u0648\u0627\u06af\u0631\u0646\u0679 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<ol>\n<li>\n<p>\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be VirtualBox \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>Vagrant \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0627\u067e\u0646\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> VirtualBox \u0627\u0648\u0631 Hyper-V \u0648\u0646\u0688\u0648\u0632 \u067e\u0631 \u0628\u06cc\u06a9 \u0648\u0642\u062a \u0646\u06c1\u06cc\u06ba \u0686\u0644 \u0633\u06a9\u062a\u06d2\u06d4 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 Hyper-V \u0641\u0639\u0627\u0644 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-cmd\">systeminfo | findstr \"Hyper-V\"\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0641\u0639\u0627\u0644 \u06c1\u06d2 \u062a\u0648\u060c \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u062f\u0648 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06c1\u06cc\u06ba: Hyper-V Vagrant \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba \u06cc\u0627 Hyper-V \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-powershell\">Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All\n<\/code><\/pre>\n<p>\u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-install-vagrant-on-mac-and-linux\">\u0645\u06cc\u06a9 \u0627\u0648\u0631 \u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631 \u0648\u0627\u06af\u0631\u0646\u0679 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0645\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<ol>\n<li>\n<p>\u0648\u0631\u0686\u0648\u0626\u0644 \u0628\u0627\u06a9\u0633 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0627\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4 <strong>\u0633\u0633\u0679\u0645 \u06a9\u06cc \u062a\u0631\u062c\u06cc\u062d\u0627\u062a> \u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u0627\u0648\u0631 \u0631\u0627\u0632\u062f\u0627\u0631\u06cc> \u0639\u0645\u0648\u0645\u06cc<\/strong>. \u0627\u06cc\u06a9 \u067e\u06cc\u063a\u0627\u0645 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u06a9\u06c1\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0648\u0631\u06cc\u06a9\u0644 \u06a9\u0627 \u0633\u0633\u0679\u0645 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0628\u0644\u0627\u06a9 \u06c1\u06d2\u06d4 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba <strong>\u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u06ba<\/strong> \u0627\u067e\u0646\u06d2 \u0645\u06cc\u06a9 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633 \u0642\u062f\u0645 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0648\u0631\u0686\u0648\u0626\u0644 \u0628\u0627\u06a9\u0633 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p>Vagrant \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0627\u06cc\u067e\u0644 \u0633\u0644\u06cc\u06a9\u0648\u0646 (M1\/M2\/M3) \u0645\u06cc\u06a9\u0633 \u067e\u0631 \u0646\u0648\u0679\u0633:<\/strong> Apple Silicon \u067e\u0631 VirtualBox \u0633\u067e\u0648\u0631\u0679 \u0627\u0628\u06be\u06cc \u0628\u06be\u06cc \u0645\u062d\u062f\u0648\u062f \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 M-series Mac \u06c1\u06d2\u060c \u062a\u0648 UTM \u06a9\u0648 \u0627\u067e\u0646\u06d2 VM \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u06cc\u0627 Multipass \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u062c\u0648 Apple Silicon \u067e\u0631 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0644\u06cc\u0646\u06a9\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<ol>\n<li>\n<p>\u0648\u0631\u0686\u0648\u0626\u0644 \u0628\u0627\u06a9\u0633 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>Vagrant \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u0627\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u062f\u0648\u0646\u0648\u06ba \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u06cc\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">vboxmanage --version\nvagrant --version\n<\/code><\/pre>\n<h3 id=\"heading-how-to-create-your-first-vagrant-environment\">\u0627\u067e\u0646\u0627 \u067e\u06c1\u0644\u0627 \u06af\u06be\u0648\u0645\u0646\u06d2 \u067e\u06be\u0631\u0646\u06d2 \u06a9\u0627 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0627\u0646\u062f\u0631\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u0641\u0627\u0626\u0644\u06cc\u06ba \u0628\u0646\u0627\u0626\u06cc\u06ba: <code>Vagrantfile<\/code> \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be:<\/p>\n<pre><code class=\"language-ruby\">Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"ubuntu\/focal64\"\n\n  # Create a private network between VMs\n  config.vm.network \"private_network\", type: \"dhcp\"\n\n  # Forward port 8080 on your laptop to port 80 on the VM\n  config.vm.network \"forwarded_port\", guest: 80, host: 8080\n\n  # Install Nginx when the VM starts\n  config.vm.provision \"shell\", inline: <<-SHELL\n    apt-get update\n    apt-get install -y nginx\n    echo \"Hello from Vagrant!\" > \/var\/www\/html\/index.html\n  SHELL\nend\n<\/code><\/pre>\n<p>VM \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">vagrant up\n<\/code><\/pre>\n<p>\u062f\u0648\u0631\u06c1 <code>http:\/\/localhost:8080<\/code> \u0622\u067e \u06a9\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 &quot;\u0648\u0627\u06af\u0631\u0646\u0679 \u0633\u06d2 \u06c1\u06cc\u0644\u0648!&#8221;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_585_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2 \" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" Hello from in title=\"\"><\/p>\n<h4 id=\"heading-troubleshooting-ssh-on-windows\">\u0648\u0646\u0688\u0648\u0632 \u067e\u0631 SSH \u0645\u0633\u0627\u0626\u0644 \u06a9\u0627 \u0627\u0632\u0627\u0644\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<p>\u0627\u06af\u0631 <code>vagrant ssh<\/code> \u0627\u06af\u0631 \u06cc\u06c1 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u0622\u0632\u0645\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\">vagrant ssh -- -v\n<\/code><\/pre>\n<p>\u06cc\u0627 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062c\u0691\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">ssh -i .vagrant\/machines\/default\/virtualbox\/private_key vagrant@127.0.0.1 -p 2222\n<\/code><\/pre>\n<h3 id=\"heading-how-to-create-a-local-vagrant-box-without-internet\">\u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u0642\u0627\u0645\u06cc \u0648\u06cc\u06af\u0631\u0646\u0679 \u0628\u0627\u06a9\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p><strong>\u0645\u06cc\u0645\u0648:<\/strong> \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0642\u0627\u0631\u0626\u06cc\u0646 \u0627\u0633 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u06a9\u0631\u06cc\u06ba \u062c\u0628 \u0622\u067e \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06d2 \u0628\u0639\u062f \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0622\u0641 \u0644\u0627\u0626\u0646 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<ol>\n<li>\n<p>Ubuntu 20.04 LTS \u0627\u0648\u0631 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba\u06d4 <code>.iso<\/code> \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0648\u0631\u0686\u0648\u0626\u0644 \u0628\u0627\u06a9\u0633 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 VM \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0646\u0627\u0645 \u062f\u06cc\u06ba\u06d4 <code>ubuntu-devops<\/code>\u0642\u0633\u0645: \u0644\u06cc\u0646\u06a9\u0633\u060c \u0648\u0631\u0698\u0646: \u0627\u0648\u0628\u0646\u0679\u0648 (64 \u0628\u0679)\u06d4<\/p>\n<\/li>\n<li>\n<p>2048MB RAM \u0627\u0648\u0631 20GB VDI \u0688\u0633\u06a9 \u0645\u062e\u062a\u0635 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0646\u0633\u0644\u06a9 <code>.iso<\/code> \u0627\u0633\u0679\u0648\u0631\u06cc\u062c > \u0622\u067e\u0679\u06cc\u06a9\u0644 \u0688\u0631\u0627\u0626\u06cc\u0648\u0632 \u0645\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>VM \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 Ubuntu \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646 \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c VM \u06a9\u0648 \u0628\u0646\u062f \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">VBoxManage list vms\nvagrant package --base \"ubuntu-devops\" --output ubuntu2004.box\nvagrant box add ubuntu2004 ubuntu2004.box\n<\/code><\/pre>\n<p>\u0627\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0645\u0642\u0627\u0645\u06cc \u0628\u0627\u06a9\u0633 \u06c1\u06d2 \u062c\u0648 \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0628\u06be\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u0648\u0631\u0686\u0648\u0626\u0644 \u0645\u0634\u06cc\u0646 \u0686\u0644\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u06cc\u06c1 \u06c1\u06d2:<\/p>\n<h2 id=\"heading-how-to-install-ansible\">\u062c\u0648\u0627\u0628\u06cc \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h2>\n<p>\u062c\u0648\u0627\u0628\u062f\u06c1 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0627\u0648\u0631 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646 \u06a9\u0648 \u0645\u062a\u0639\u062f\u062f \u0633\u0631\u0648\u0631\u0632 \u067e\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 10 \u0645\u0634\u06cc\u0646\u0648\u06ba \u0645\u06cc\u06ba SSH \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc \u06a9\u0645\u0627\u0646\u0688\u0632 \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e \u0627\u067e\u0646\u06cc \u067e\u0644\u06d2 \u0628\u06a9 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0628\u0627\u0642\u06cc \u06a9\u0627 \u062e\u06cc\u0627\u0644 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-install-ansible-on-windows\">\u0648\u0646\u0688\u0648\u0632 \u067e\u0631 \u062c\u0648\u0627\u0628\u06cc \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h3>\n<p>Ansible \u0648\u0646\u0688\u0648\u0632 \u067e\u0631 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u0646\u0688\u0648\u0632 \u0633\u0628 \u0633\u0633\u0679\u0645 \u0641\u0627\u0631 \u0644\u06cc\u0646\u06a9\u0633 (WSL) \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<ol>\n<li>\u067e\u0627\u0648\u0631 \u0634\u06cc\u0644 \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 WSL \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/li>\n<\/ol>\n<pre><code class=\"language-powershell\">dism.exe \/online \/enable-feature \/featurename:Microsoft-Windows-Subsystem-Linux \/all \/norestart\ndism.exe \/online \/enable-feature \/featurename:VirtualMachinePlatform \/all \/norestart\n<\/code><\/pre>\n<ol>\n<li>\n<p>\u0627\u067e\u0646\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0627\u0626\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u0679 \u0627\u0633\u0679\u0648\u0631 \u0633\u06d2 \u0627\u0648\u0628\u0646\u0679\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>Ubuntu \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 Ansible \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install software-properties-common\nsudo apt-add-repository --yes --update ppa:ansible\/ansible\nsudo apt install ansible\n<\/code><\/pre>\n<h3 id=\"heading-how-to-install-ansible-on-mac\">\u0645\u06cc\u06a9 \u067e\u0631 Ansible \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-bash\">brew install ansible\n<\/code><\/pre>\n<h3 id=\"heading-how-to-install-ansible-on-linux\">\u0644\u06cc\u0646\u06a9\u0633 \u067e\u0631 \u062c\u0648\u0627\u0628\u06cc \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h3>\n<pre><code class=\"language-bash\"># Ubuntu\/Debian\nsudo apt update\nsudo apt install software-properties-common\nsudo apt-add-repository --yes --update ppa:ansible\/ansible\nsudo apt install ansible\n\n# Red Hat\/CentOS\nsudo yum install ansible\n<\/code><\/pre>\n<h3 id=\"heading-how-to-test-ansible\">\u062c\u0648\u0627\u0628\u06cc \u0679\u06cc\u0633\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h3>\n<p>\u0646\u0627\u0645\u06cc \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>hosts<\/code> \u0645\u0648\u062c\u0648\u062f\u06c1 \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba:<\/p>\n<pre><code class=\"language-ini\">[local]\nlocalhost ansible_connection=local\n<\/code><\/pre>\n<p>\u0646\u0627\u0645\u06cc \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>playbook.yml<\/code> \u0627\u0633\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba:<\/p>\n<pre><code class=\"language-yaml\">---\n- name: Test playbook\n  hosts: local\n  tasks:\n    - name: Print a message\n      debug:\n        msg: \"Ansible is working!\"\n<\/code><\/pre>\n<p>\u067e\u0644\u06d2 \u0628\u06a9 \u0686\u0644\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0644\u0648\u06a9\u0644 \u067e\u0627\u0633 \u06a9\u0631\u06cc\u06ba\u06d4 <code>hosts<\/code> \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be <code>-i<\/code>:<\/p>\n<pre><code class=\"language-bash\">ansible-playbook -i hosts playbook.yml\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u0648 \u067e\u06cc\u063a\u0627\u0645 \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627 &quot;Ansible \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2!&#8221; \u0622\u0624\u0679 \u067e\u0679 \u0645\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_357_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u062c\u0648\u0627\u0628\u06cc \u067e\u0644\u06d2 \u0628\u06a9 \u06a9\u06cc \u0645\u06a9\u0645\u0644 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0628\u06c1\u062a \u0627\u0686\u06be\u0627 \u062a\u0645\u0627\u0645 \u0622\u0644\u0627\u062a \u0646\u0635\u0628 \u06c1\u06cc\u06ba\u06d4 \u0627\u0628 \u06c1\u0645 \u0627\u0646 \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u06a9\u06d2 \u06a9\u0686\u06be \u062d\u0642\u06cc\u0642\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-build-your-first-devops-project\">\u0627\u067e\u0646\u0627 \u067e\u06c1\u0644\u0627 DevOps \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0622\u067e \u0627\u0633 \u0644\u06cc\u0628 \u06a9\u0627 \u0645\u06a9\u0645\u0644 \u06a9\u0648\u0688 \u0627\u0633 \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u062a\u0644\u0627\u0634 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: https:\/\/github.com\/Osomudeya\/homelab-demo-article<\/p>\n<p>\u0627\u0628 \u0622\u0626\u06cc\u06d2 \u0627\u0646 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0627\u06cc\u06a9 \u067e\u0631\u0627\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0627\u06a9\u0679\u06be\u0627 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u0679\u0648\u0644 \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u067e \u06a9\u0648 \u06a9\u0686\u06be \u0628\u06be\u06cc \u0645\u062c\u0628\u0648\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c<\/strong> \u0627\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0646\u0626\u06cc \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u0627\u0633\u06d2 \u0627\u0633 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0633\u06d2 \u0646\u06c1 \u0686\u0644\u0627\u0626\u06cc\u06ba \u062c\u0648 \u0622\u067e \u067e\u06c1\u0644\u06d2 Vagrant \u0679\u06cc\u0633\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u062a\u06be\u06d2\u06d4 \u06cc\u06c1\u0627\u06ba Vagrantfile \u0645\u062e\u062a\u0644\u0641 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u062a\u0635\u0627\u062f\u0645 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u062f\u0648 VM \u0645\u0627\u062d\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 \u0627\u06cc\u06a9 \u0645\u0634\u06cc\u0646 \u0688\u0648\u06a9\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0644\u06a9\u06be\u06d2 \u06c1\u0648\u0626\u06d2 \u0648\u06cc\u0628 \u0635\u0641\u062d\u0627\u062a \u067e\u06cc\u0634 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062f\u0648\u0633\u0631\u06cc \u0645\u0634\u06cc\u0646 \u0645\u0627\u0631\u06cc\u0627 \u0688\u06cc \u0628\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0648 \u0686\u0644\u0627\u062a\u06cc \u06c1\u06d2\u06d4 Vagrant \u0645\u0634\u06cc\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 Ansible \u0627\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u062e\u0631\u06cc \u0635\u0641\u062d\u06c1 \u062c\u0648 \u0622\u067e \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0648\u06c1 \u0622\u067e \u06a9\u0627 \u0635\u0641\u062d\u06c1 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-step-1-create-the-project-directory\">\u0645\u0631\u062d\u0644\u06c1 1: \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<pre><code class=\"language-bash\">mkdir devops-lab-project && cd devops-lab-project\n<\/code><\/pre>\n<h3 id=\"heading-step-2-write-your-site-content\">\u0645\u0631\u062d\u0644\u06c1 2: \u0633\u0627\u0626\u0679 \u06a9\u0627 \u0645\u0648\u0627\u062f \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/h3>\n<p>\u0646\u0627\u0645\u06cc \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>index.html<\/code> \u06cc\u06c1 \u0622\u067e \u06a9\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u0633 \u0635\u0641\u062d\u06d2 \u067e\u0631 \u062c\u0648 \u0686\u0627\u06c1\u06cc\u06ba \u0644\u06a9\u06be\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0622\u062e\u0631 \u0645\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-html\">\n\n  <title>My DevOps Lab<\/title>\n  \n    \n    <p>Provisioned by Vagrant. Configured by Ansible. Served by Docker.<\/p>\n    <p>Built on a laptop. No cloud account needed.<\/p>\n  \n\n<\/code><\/pre>\n<p>\u0645\u062a\u0646 \u06a9\u0648 \u0627\u067e\u0646\u06cc \u067e\u0633\u0646\u062f \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u0627 \u0635\u0641\u062d\u06c1 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-step-3-write-the-vagrantfile\">\u0645\u0631\u062d\u0644\u06c1 3: \u0648\u0627\u06af\u0631\u0646\u0679 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0646\u0627\u0645\u06cc \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>Vagrantfile<\/code> \u0627\u0633\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba:<\/p>\n<pre><code class=\"language-ruby\">Vagrant.configure(\"2\") do |config|\n  config.vm.box = \"ubuntu\/focal64\"\n\n  config.vm.define \"web\" do |web|\n    web.vm.network \"private_network\", ip: \"192.168.33.10\"\n    web.vm.network \"forwarded_port\", guest: 80, host: 8080\n  end\n\n  config.vm.define \"db\" do |db|\n    db.vm.network \"private_network\", ip: \"192.168.33.11\"\n  end\nend\n<\/code><\/pre>\n<h3 id=\"heading-step-4-start-the-virtual-machines\">\u0645\u0631\u062d\u0644\u06c1 4: \u0648\u0631\u0686\u0648\u0626\u0644 \u0645\u0634\u06cc\u0646 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-bash\">vagrant up\n<\/code><\/pre>\n<p>\u067e\u06c1\u0644\u06cc \u062f\u0648\u0691 \u0645\u06cc\u06ba <code>ubuntu\/focal64<\/code> \u0628\u0627\u06a9\u0633 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 500MB \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_713_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u0648\u0631\u0686\u0648\u0626\u0644 \u0628\u0627\u06a9\u0633 \u06a9\u06cc \u062a\u0646\u0635\u06cc\u0628 \u06a9\u0627 \u0639\u0645\u0644 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u062d\u0627\u0644\u062a \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u06c1\u06d2\u060c \u0627\u0633 \u0645\u06cc\u06ba 10 \u0633\u06d2 30 \u0645\u0646\u0679 \u0644\u06af \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0686\u0648\u0646\u06a9\u06c1 \u0628\u0627\u06a9\u0633 \u06a9\u0648 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06d2 \u0631\u0646\u0632 \u0628\u06c1\u062a \u062a\u06cc\u0632 \u06c1\u0648\u06ba \u06af\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_757_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u062f\u0648 \u0648\u0631\u0686\u0648\u0626\u0644 \u0628\u0627\u06a9\u0633 \u0633\u0631\u0648\u0631 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" in VB title=\"\"><\/p>\n<h3 id=\"heading-step-5-create-the-ansible-inventory\">\u0645\u0631\u062d\u0644\u06c1 5: \u062c\u0648\u0627\u0628\u062f\u06c1 \u0627\u0646\u0648\u06cc\u0646\u0679\u0631\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0646\u0627\u0645\u06cc \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>inventory<\/code> \u0627\u0633\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba:<\/p>\n<pre><code class=\"language-ini\">[webservers]\n192.168.33.10 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant\/machines\/web\/virtualbox\/private_key\n\n[dbservers]\n192.168.33.11 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant\/machines\/db\/virtualbox\/private_key\n<\/code><\/pre>\n<p>Ansible Vagrant \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u0646\u062c\u06cc \u06a9\u0644\u06cc\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 <code>vagrant<\/code> \u0635\u0627\u0631\u0641 \u0627\u0633 \u0644\u06cc\u0628 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0644\u06cc\u062f \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u0627\u0633 \u0648\u0642\u062a \u0628\u0646\u062f \u06a9\u0631 \u062f\u06cc \u06af\u0626\u06cc \u062a\u06be\u06cc: <code>ansible.cfg<\/code> (\u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1)\u060c \u0627\u0646\u0648\u06cc\u0646\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-step-6-create-the-ansible-config-file\">\u0645\u0631\u062d\u0644\u06c1 6: \u062c\u0648\u0627\u0628\u062f\u06c1 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u067e\u0644\u06d2 \u0628\u06a9 \u0686\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 <code>ansible.cfg<\/code> \u0627\u0633\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba:<\/p>\n<pre><code class=\"language-ini\">[defaults]\ninventory = inventory\nhost_key_checking = False\n<\/code><\/pre>\n<p>\u0627\u0646\u0648\u06cc\u0646\u0679\u0631\u06cc \u0644\u0627\u0626\u0646 Ansible \u06a9\u0648 \u0628\u062a\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u0641\u0648\u0644\u0688\u0631 \u0645\u06cc\u06ba \u0627\u0646\u0648\u06cc\u0646\u0679\u0631\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 host_key_checking = False Ansible \u06a9\u0648 \u06a9\u06c1\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 Vagrant VM \u0633\u06d2 \u062c\u0691\u062a\u06d2 \u0648\u0642\u062a SSH \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0644\u06cc\u062f \u06a9\u0648 \u0686\u06cc\u06a9 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c Ansible \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0644\u06cc\u062f \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u0645\u06cc\u06ba \u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u06cc \u063a\u0644\u0637\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06c1\u0644\u06d2 \u06a9\u0646\u06a9\u0634\u0646 \u067e\u0631 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 VM \u06a9\u06cc \u06a9\u0644\u06cc\u062f \u0627\u0628\u06be\u06cc \u062a\u06a9 Known_hosts \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0635\u0631\u0641 \u0645\u0642\u0627\u0645\u06cc \u0644\u06cc\u0628\u0632 \u067e\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0633\u0633\u0679\u0645\u0632 \u067e\u0631 host_key_checking = False \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-step-7-create-the-ansible-playbook\">\u0645\u0631\u062d\u0644\u06c1 7: \u062c\u0648\u0627\u0628\u062f\u06c1 \u067e\u0644\u06d2 \u0628\u06a9 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0646\u0627\u0645\u06cc \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>playbook.yml<\/code>:<\/p>\n<pre><code class=\"language-yaml\">---\n- name: Configure web server\n  hosts: webservers\n  become: yes\n  tasks:\n\n    - name: Install Docker\n      apt:\n        name: docker.io\n        state: present\n        update_cache: yes\n\n    - name: Start Docker service\n      service:\n        name: docker\n        state: started\n        enabled: yes\n\n    # Create the directory that will hold your site content\n    - name: Create web content directory\n      file:\n        path: \/var\/www\/html\n        state: directory\n        mode: '0755'\n\n    # This copies your index.html from your laptop into the VM\n    - name: Copy site content to web server\n      copy:\n        src: index.html\n        dest: \/var\/www\/html\/index.html\n\n    # This mounts that file into the Nginx container so it serves your page\n    # The -v flag connects \/var\/www\/html on the VM to \/usr\/share\/nginx\/html inside the container\n    - name: Run Nginx serving your content\n      shell: |\n        docker rm -f webapp 2>\/dev\/null || true\n        docker run -d --name webapp --restart always -p 80:80 \n          -v \/var\/www\/html:\/usr\/share\/nginx\/html:ro nginx\n\n- name: Configure database server\n  hosts: dbservers\n  become: yes\n  tasks:\n\n    # Hash sum mismatch on .deb downloads is often stale lists, a flaky mirror, or apt pipelining\n    # behind NAT; fresh indices + Pipeline-Depth 0 usually fixes it on lab VMs.\n    - name: Disable apt HTTP pipelining (mirror\/proxy hash mismatch workaround)\n      copy:\n        dest: \/etc\/apt\/apt.conf.d\/99disable-pipelining\n        content: 'Acquire::http::Pipeline-Depth \"0\";'\n        mode: \"0644\"\n\n    - name: Clear apt package index cache\n      shell: apt-get clean && rm -rf \/var\/lib\/apt\/lists\/* \/var\/lib\/apt\/lists\/auxfiles\/*\n      changed_when: true\n\n    - name: Update apt cache after reset\n      apt:\n        update_cache: yes\n\n    - name: Install MariaDB\n      apt:\n        name: mariadb-server\n        state: present\n        update_cache: no\n\n    - name: Start MariaDB service\n      service:\n        name: mariadb\n        state: started\n        enabled: yes\n<\/code><\/pre>\n<p>\u0646\u0648\u0679 \u06a9\u06cc \u062f\u0648 \u0633\u0637\u0631\u06cc\u06ba \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><code>src: index.html<\/code>    \u2014 \u062c\u0648\u0627\u0628\u062f\u06c1 \u0627\u0633 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0627\u0633\u06cc \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0645\u06cc\u06ba \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u067e\u0644\u06d2 \u0628\u06a9 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0648\u06c1 \u0641\u0627\u0626\u0644 \u06c1\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u0646\u06d2 \u0645\u0631\u062d\u0644\u06c1 2 \u0645\u06cc\u06ba \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>-v \/var\/www\/html:\/usr\/share\/nginx\/html:ro<\/code>    &#8211; \u06cc\u06c1 VM \u06a9\u06cc \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u06a9\u0648 Nginx \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0645\u06cc\u06ba \u0645\u0627\u0624\u0646\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>:ro<\/code> \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u0635\u0631\u0641 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4 Nginx \u0627\u0633 \u0641\u0648\u0644\u0688\u0631 \u0645\u06cc\u06ba \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u06cc \u062e\u062f\u0645\u062a \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-step-8-run-the-playbook\">\u0645\u0631\u062d\u0644\u06c1 8: \u067e\u0644\u06d2 \u0628\u06a9 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-bash\">ansible-playbook -i inventory playbook.yml\n<\/code><\/pre>\n<p>\u062c\u06cc\u0633\u0627 \u06a9\u06c1 Ansible \u06c1\u0631 VM \u06a9\u0648 SSH \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062c\u0648\u0691\u062a\u0627 \u0627\u0648\u0631 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0622\u067e \u06a9\u0648 \u06a9\u0627\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062e\u0635\u0648\u0635 \u0622\u0624\u0679 \u067e\u0679 \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627\u06d4 \u0633\u0628\u0632 <code>ok<\/code> \u06cc\u0627 \u067e\u06cc\u0644\u0627 <code>changed<\/code> \u06c1\u0631 \u06a9\u0627\u0645 \u06a9\u06d2 \u0622\u06af\u06d2 \u0627\u06cc\u06a9 \u0646\u0634\u0627\u0646\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0627\u0645 \u0645\u06a9\u0645\u0644 \u06c1\u0648 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0633\u0631\u062e <code>fatal<\/code> \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0686\u06be \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_917_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u06c1\u0631 \u06a9\u0627\u0645 \u06a9\u06d2 \u0622\u06af\u06d2 \u0633\u0628\u0632 \u0686\u06cc\u06a9 \u06cc\u0627 \u0679\u0631\u0645\u06cc\u0646\u0644 \u06a9\u06d2 \u067e\u06cc\u0644\u06d2 \u0631\u0646\u06af \u06a9\u06d2 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0627\u0645 \u0645\u06a9\u0645\u0644 \u06c1\u0648 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0633\u0631\u062e \u0645\u06c1\u0644\u06a9 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u0686\u06be \u0646\u0627\u06a9\u0627\u0645\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_838_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u067e\u0644\u06d2 \u0628\u06a9 \u067e\u0631 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0627 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u0645\u06a9\u0645\u0644 \u06c1\u0648 \u06af\u06cc\u0627\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-step-9-verify-the-setup\">\u0645\u0631\u062d\u0644\u06c1 9: \u0627\u067e\u0646\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u06be\u0644\u0627 <code>http:\/\/localhost:8080<\/code> \u0622\u067e \u06a9\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0648 \u0645\u0631\u062d\u0644\u06c1 2 \u0645\u06cc\u06ba \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u0635\u0641\u062d\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 \u062c\u0648 \u0688\u0648\u06a9\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u06cc\u06a9 Vagrant VM \u0645\u06cc\u06ba \u062e\u0648\u062f \u0628\u062e\u0648\u062f Ansible \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0635\u0641\u062d\u06c1 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u062a\u0648 \u0622\u067e \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u0627\u0633 \u0644\u06cc\u0628 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0679\u0648\u0644\u0632 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_777_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u0628\u0631\u0627\u0624\u0632\u0631 \u0644\u0648\u06a9\u0644 \u06c1\u0648\u0633\u0679 \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2: 8082 \u0639\u0646\u0648\u0627\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" My DevOps and the text &quot;Provisioned by Configured Served title=\"\"><\/p>\n<h3 id=\"heading-step-9-clean-up-optional\">\u0645\u0631\u062d\u0644\u06c1 9: \u0635\u0627\u0641 \u06a9\u0631\u06cc\u06ba (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc)<\/h3>\n<p>\u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f:<\/p>\n<pre><code class=\"language-bash\">vagrant destroy -f\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062f\u0648\u0646\u0648\u06ba VMs \u06a9\u0648 \u0628\u0646\u062f \u0627\u0648\u0631 \u062d\u0630\u0641 \u06a9\u0631 \u062f\u06d2 \u06af\u0627\u06d4 \u0622\u067e \u06a9\u0627 <code>Vagrantfile<\/code>, <code>inventory<\/code>, <code>playbook.yml<\/code>\u0627\u0648\u0631 <code>index.html<\/code> \u0688\u0633\u06a9 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba &#8211; \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4 <code>vagrant up<\/code> \u067e\u06be\u0631 <code>ansible-playbook -i inventory playbook.yml<\/code> \u0622\u067e \u0627\u0633\u06d2 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0648\u0642\u062a \u0648\u0627\u067e\u0633 \u0644\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0628 \u062c\u0628 \u06a9\u06c1 \u06c1\u0645\u0627\u0631\u06cc \u0648\u0631\u06a9\u0634\u0627\u067e \u062a\u06cc\u0627\u0631 \u06c1\u06d2\u060c \u0622\u0626\u06cc\u06d2 \u0627\u0633\u06d2 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0627\u0644\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-break-your-lab-on-purpose\">\u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0644\u06cc\u0628 \u0645\u06cc\u06ba \u062e\u0644\u0644 \u0688\u0627\u0644\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h2>\n<p>\u0644\u06cc\u0628 \u0627\u0646 \u0645\u0631\u0627\u062d\u0644 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631 \u06a9\u06d2 \u0686\u0644\u0627\u0626\u06d2 \u06af\u06cc: \u0628\u0631\u06cc\u06a9\u0646\u06af \u062a\u06be\u0646\u06af\u0632 \u0622\u067e \u06a9\u0648 \u0633\u06a9\u06be\u0627\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06c1 \u0648\u0627\u0642\u0639\u06cc \u0633\u0628 \u06a9\u0686\u06be \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u067e\u0627\u0646\u0686 \u0686\u06cc\u0632\u06cc\u06ba \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0648 \u062a\u0648\u0691\u0646\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0622\u067e \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u06a9\u06cc\u0627 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-break-1-crash-the-main-process-inside-the-container-and-watch-it-come-back\">\u0628\u0631\u06cc\u06a9 1: \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0645\u0644 \u06a9\u0648 \u06a9\u0631\u06cc\u0634 \u06a9\u0631\u06cc\u06ba (\u0627\u0648\u0631 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u06cc\u06c1 \u0648\u0627\u067e\u0633 \u0622\u062a\u0627 \u06c1\u06d2)<\/h3>\n<p>\u0627\u0633 \u0633\u06d2 \u0635\u0631\u0641 \u06cc\u06c1 \u062b\u0627\u0628\u062a \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0645\u0648\u062c\u0648\u062f \u06a9\u0648\u0626\u06cc \u0686\u06cc\u0632 (\u0645\u062b\u0644\u0627\u064b \u0627\u06cc\u06a9 \u0627\u0635\u0644 \u0628\u06af \u06cc\u0627 OOM) \u0645\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 Docker \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0648\u062c\u0648\u06c1\u0627\u062a \u06a9\u06cc \u0628\u0646\u0627 \u067e\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2: <code>--restart always<\/code>\u0627\u0648\u0631 \u0622\u067e \u06a9\u06cc \u0633\u0627\u0626\u0679 Ansible \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0648\u0627\u067e\u0633 \u0622\u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u0639\u062f \u0645\u06cc\u06ba <code>vagrant ssh web<\/code>\u06c1\u0631 <code>docker<\/code> \u0646\u06cc\u0686\u06d2 \u062f\u06cc \u06af\u0626\u06cc \u06a9\u0645\u0627\u0646\u0688 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 <strong>\u0648\u06cc\u0628 VM \u067e\u0631<\/strong>. \u0644\u06c1\u0630\u0627\u060c \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u067e\u0631 \u0686\u06be\u0648\u0691 \u062f\u06cc\u06ba\u06d4 <code>http:\/\/localhost:8080<\/code> (Vagrant \u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0648\u0631\u0679 \u06a9\u0648 VM \u067e\u0631 \u067e\u0648\u0631\u0679 80 \u067e\u0631 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2)\u06d4<\/p>\n<h4 id=\"heading-troubleshooting-if-your-lab-isnt-ready\">\u0679\u0631\u0628\u0644 \u0634\u0648\u0679\u0646\u06af: \u062c\u0628 \u0622\u067e \u06a9\u06cc \u0644\u06cc\u0628 \u062a\u06cc\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/h4>\n<p>\u0622\u067e \u06a9\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646 (\u0644\u06cc\u067e \u0679\u0627\u067e) \u067e\u0631 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0641\u0648\u0644\u0688\u0631 \u0633\u06d2 &#8211; \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0622\u067e \u06a9\u0648 \u0627\u0633\u06d2 VM \u067e\u0631 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06c1 \u06a9\u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u062a\u0645 \u0628\u06be\u0627\u06af \u06af\u0626\u06d2 <code>vagrant destroy -f<\/code>. \u0686\u0644\u0627\u0626\u06cc\u06ba <code>vagrant up<\/code>\u067e\u06be\u0631 <code>ansible-playbook -i inventory playbook.yml<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>docker ps<\/code>    \u062f\u06a9\u06be\u0627\u0626\u06cc\u06ba <code>webapp<\/code> \u0644\u06cc\u06a9\u0646 \u062d\u06cc\u062b\u06cc\u062a \u062e\u062a\u0645 \u06a9\u0631 \u062f\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u06d4 \u0648\u06cc\u0628 VM \u0645\u06cc\u06ba\u060c \u0686\u0644\u0627\u0626\u06cc\u06ba: <code>sudo docker start webapp<\/code>\u067e\u06be\u0631 <code>sudo docker ps<\/code> \u062f\u0648\u0628\u0627\u0631\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0645\u0648\u062c\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 <code>webapp<\/code> \u0644\u0627\u0626\u0646 \u0645\u06cc\u06ba \u06a9\u06be\u0691\u06d2 \u06c1\u0648 \u062c\u0627\u0624 <code>docker ps -a<\/code><strong>.<\/strong> \u062f\u0648\u0628\u0627\u0631\u06c1 \u06a9\u0631\u06cc\u06ba <code>ansible-playbook -i inventory playbook.yml<\/code> \u0645\u06cc\u0632\u0628\u0627\u0646 \u0633\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u067e\u0644\u06d2 \u0628\u06a9 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0644\u0627\u06af\u0648 \u06c1\u06d2 \u0627\u0648\u0631 <code>webapp<\/code> \u0627\u06af\u0631 \u06cc\u06c1 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633 \u0633\u06cc\u06a9\u0634\u0646 \u06a9\u0648 \u0686\u06be\u0648\u0691\u06cc\u06ba \u0627\u0648\u0631 \u0646\u06cc\u0686\u06d2 \u062f\u06cc\u0626\u06d2 \u06af\u0626\u06d2 \u0645\u0631\u0627\u062d\u0644 \u06a9\u06d2 \u062a\u062d\u062a \u0645\u0631\u062d\u0644\u06c1 1 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba (\u062e\u0648\u0634\u06cc \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1)\u06d4 (SSH \u06a9\u0648 \u0646\u06c1 \u0686\u06be\u0648\u0691\u06cc\u06ba\u06d4 <code>docker ps<\/code>. \u0686\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 VM \u0634\u06cc\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0641\u0648\u0631\u06cc \u0686\u06cc\u06a9 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 <code>docker exec<\/code>.)<\/p>\n<h4 id=\"heading-steps-happy-path\">\u0642\u062f\u0645 (\u062e\u0648\u0634\u06cc \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1)<\/h4>\n<ol>\n<li>SSH \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0648\u06cc\u0628 VM \u0633\u06d2 \u062c\u0691\u06cc\u06ba\u06d4<\/li>\n<\/ol>\n<pre><code class=\"language-plaintext\">vagrant ssh web\n<\/code><\/pre>\n<ol>\n<li>\n<p>\u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba <code>webapp<\/code> \u06c1\u06d2 <strong>\u062a\u0633\u0644\u06cc<\/strong>:<\/p>\n<pre><code class=\"language-plaintext\">sudo docker ps\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0679\u0648\u0679\u0646\u0627:<\/strong> \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0645\u0631\u06a9\u0632\u06cc \u0639\u0645\u0644 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <strong>\u0627\u0646\u062f\u0631 \u0633\u06d2<\/strong> (PID 1)\u06d4 \u06cc\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u0627\u0633\u06cc \u0637\u0631\u062d \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u0634\u0646\u06af \u0627\u06cc\u067e\u06d4 <code>docker stop<\/code> \u0645\u06cc\u0632\u0628\u0627\u0646 \u0633\u06d2:<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">sudo docker exec webapp sh -c 'sleep 5 && kill 1'\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>sleep<\/code> 5 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u067e\u0631 \u0633\u0648\u0626\u0686 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0648\u0642\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0645\u0627\u0646\u0688 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0641\u0648\u0631\u0627\u064b \u0628\u0639\u062f \u06a9\u06be\u0648\u0644\u06cc\u06ba \u06cc\u0627 \u0631\u06cc\u0641\u0631\u06cc\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 <code>http:\/\/localhost:8080<\/code>. \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u063a\u0644\u0637\u06cc \u06cc\u0627 \u062e\u0627\u0644\u06cc \u0635\u0641\u062d\u06c1 \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u06c1 \u067e\u0648\u0631\u0679 80 \u067e\u0631 \u06a9\u0686\u06be \u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u0633\u0646\u0627 \u062c\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_838_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u0628\u0631\u0627\u0624\u0632\u0631 \u0644\u0648\u06a9\u0644 \u06c1\u0648\u0633\u0679 \u067e\u0631 ERR_CONNECTION_RESET \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2: Nginx \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0627 \u0639\u0645\u0644 \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f 8082\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<ol>\n<li>\u0688\u0648\u06a9\u0631 \u06a9\u0648 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">watch sudo docker ps -a\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_885_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u0679\u0631\u0645\u06cc\u0646\u0644 \u0686\u0644\u0627\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0648\u0627\u0686 \u0688\u0648\u06a9\u0631 PS \u0622\u0679\u0648 \u0631\u06cc \u0627\u0633\u0679\u0627\u0631\u0679 \u06a9\u06d2 \u0628\u0639\u062f 10 \u0633\u06cc\u06a9\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u06cc\u0628 \u0627\u06cc\u067e \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06cc \u062d\u06cc\u062b\u06cc\u062a \u062f\u06a9\u06be\u0627 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688 \u0645\u06cc\u06ba \u0622\u067e \u062f\u06cc\u06a9\u06be \u0644\u06cc\u06ba \u06af\u06d2\u06d4 <strong>\u0628\u0627\u06c1\u0631 \u0646\u06a9\u0644\u06cc\u06ba (137)<\/strong> \u0628\u0646 <strong>\u062a\u0633\u0644\u06cc<\/strong> \u062f\u0648\u0628\u0627\u0631\u06c1 (\u0628\u0627\u06c1\u0631 \u0646\u06a9\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 Ctrl+C \u062f\u0628\u0627\u0626\u06cc\u06ba\u06d4 <code>watch<\/code>.)<\/p>\n<p>5. \u0627\u067e\u0646\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0631\u06cc\u0641\u0631\u06cc\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u0641\u0627\u0626\u0644\u06cc\u06ba VM \u0645\u06cc\u06ba \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u06a9\u0648 \u0648\u06c1\u06cc HTML \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627 \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u062a\u06be\u0627\u06d4 <code>\/var\/www\/html<\/code> \u06cc\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0645\u06cc\u06ba \u0646\u0635\u0628 \u06c1\u06d2. \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u0635\u0631\u0641 Nginx \u0639\u0645\u0644 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0646 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-why-not-docker-stop-or-docker-kill-on-the-host-for-this-demo\"><strong>\u06a9\u06cc\u0648\u06ba \u0646\u06c1\u06cc\u06ba<\/strong> <code>docker stop<\/code> <strong>\u06cc\u0627<\/strong> <code>docker kill<\/code> <strong>\u06a9\u06cc\u0627 \u0622\u067e \u0627\u0633 \u0688\u06cc\u0645\u0648 \u06a9\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06c1\u06cc\u06ba\u061f<\/strong><\/h4>\n<p>\u06cc\u06c1 \u06a9\u0645\u0627\u0646\u0688\u0632 \u0688\u0648\u06a9\u0631 \u06a9\u06d2 API \u0633\u06d2 \u06af\u0632\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0628\u06c1\u062a \u0633\u06d2 \u0633\u06cc\u0679 \u0627\u067e \u0645\u06cc\u06ba (\u0628\u0634\u0645\u0648\u0644 \u062d\u0627\u0644\u06cc\u06c1 \u0688\u0648\u06a9\u0631)\u060c \u0688\u0648\u06a9\u0631 \u0627\u0633\u06d2 \u0627\u06cc\u0633\u06d2 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u0622\u067e \u0646\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u0631\u0648\u06a9\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u06cc\u0627 \u06c1\u0648 (<code>hasBeenManuallyStopped<\/code>)\u060c \u0627\u0648\u0631 <code>--restart always<\/code> \u0622\u067e \u06a9\u06d2 \u0622\u0646\u06d2 \u062a\u06a9 \u06c1\u0645 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0648\u0627\u067e\u0633 \u0646\u06c1\u06cc\u06ba \u0644\u0627 \u0633\u06a9\u062a\u06d2\u06d4 <code>docker start<\/code> \u0648\u06c1 \u06cc\u0627 \u06a9\u0686\u06be \u0627\u06cc\u0633\u0627 \u06c1\u06cc\u06d4<\/p>\n<p>\u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631\u060c PID 1 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u0646\u0627 \u0627\u06cc\u06a9 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u062d\u0627\u062f\u062b\u06d2 \u06a9\u06cc \u0637\u0631\u062d \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u067e\u0644\u06d2 \u0628\u06a9 \u0645\u06cc\u06ba \u0633\u06cc\u0679 \u0631\u06cc \u0627\u0633\u0679\u0627\u0631\u0679 \u067e\u0627\u0644\u06cc\u0633\u06cc \u0648\u06c1 \u067e\u0627\u0644\u06cc\u0633\u06cc \u06c1\u06d2 \u062c\u0633 \u06a9\u0627 \u0622\u067e \u06cc\u06c1\u0627\u06ba \u0645\u0634\u0627\u06c1\u062f\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>Kubernetes \u062a\u0634\u0628\u06cc\u06c1:<\/strong> \u067e\u06be\u0644\u06cc \u062c\u0646 \u06a9\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u0648\u0628\u06cc\u0644\u06cc\u0679 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062d\u0630\u0641 \u0634\u062f\u06c1 \u067e\u06be\u0644\u06cc\u0627\u06ba \u062e\u0648\u062f \u0648\u0627\u067e\u0633 \u0646\u06c1\u06cc\u06ba \u0622\u062a\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u0645\u0634\u0627\u06c1\u062f\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632\u06cc\u06ba (\u0686\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0646 \u0627\u0644\u06af \u0627\u0644\u06af \u0686\u06cc\u0632\u06cc\u06ba):<\/strong><\/p>\n<ol>\n<li>\n<p><strong>\u0627\u06cc\u06af\u0632\u0679 \u06a9\u0648\u0688:<\/strong> \u0628\u0639\u062f \u0645\u06cc\u06ba <code>kill 1<\/code>, <code>docker ps -a<\/code> \u06cc\u06c1 \u0628\u062a\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648\u0688 137 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0627\u06c1\u0631 \u0646\u06a9\u0644\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0645\u0644 \u0633\u06af\u0646\u0644 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062e\u062a\u0645 \u06c1\u0648 \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u062e\u062a\u0645 \u06c1\u0648 \u0686\u06a9\u0627 \u06c1\u06d2\u060c \u0646\u06c1 \u0635\u0631\u0641 \u0644\u0627\u0646\u0686 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4 <code>docker stop<\/code> \u0645\u06cc\u0632\u0628\u0627\u0646 \u0633\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0628\u0631\u0627\u0624\u0632\u0631\u0632 \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u062a\u0627\u062e\u06cc\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba:<\/strong> \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 Exited \u0627\u0648\u0631 Up \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u06a9\u062a\u0646\u06d2 \u0633\u06cc\u06a9\u0646\u0688 \u06af\u0632\u0631\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>docker ps -a<\/code>; \u0648\u06c1 \u0648\u0642\u0641\u06c1 \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0648 \u0688\u0648\u06a9\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <code>--restart always<\/code>. \u06cc\u06c1 \u0627\u0633 \u0633\u06d2 \u0627\u0644\u06af \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u0627 \u0628\u0631\u0627\u0624\u0632\u0631 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0628\u0631\u0627\u0624\u0632\u0631 \u0635\u0631\u0641 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u06a9\u0646\u06a9\u0634\u0646 VM \u06a9\u06d2 \u067e\u0648\u0631\u0679 80 \u067e\u0631 \u0642\u0628\u0648\u0644 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u06a9\u0648 \u062e\u0627\u0644\u06cc \u0648\u0642\u0641\u0648\u06ba \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u063a\u0644\u0637\u06cc\u0627\u06ba \u06cc\u0627 \u062e\u0627\u0644\u06cc \u0635\u0641\u062d\u0627\u062a \u0646\u0638\u0631 \u0622 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u062c\u0628 Docker \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u0648\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0628\u062d\u0627\u0644\u06cc \u06a9\u06d2 \u0628\u0639\u062f \u0645\u0648\u0627\u062f:<\/strong> \u062c\u0628 \u0627\u0633\u0679\u06cc\u0679\u0633 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u067e \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u062a\u0648 \u067e\u06cc\u062c \u0631\u06cc\u0641\u0631\u06cc\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0648 \u0648\u06c1\u06cc \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u062a\u06be\u0627\u06d4 \u0627\u0633 \u0633\u06d2 \u067e\u062a\u06c1 \u0686\u0644\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0645\u0648\u0627\u062f VM \u0688\u0633\u06a9 \u067e\u0631 \u06c1\u06d2 (\u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0645\u06cc\u06ba \u0646\u0635\u0628: <code>-v<\/code>) \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0646\u06c1\u06cc\u06ba \u062c\u0648 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0627 \u0639\u0645\u0644 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u063a\u0627\u0626\u0628 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0639\u0645\u0644 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u060c \u0622\u067e \u06a9\u0648 \u0646\u06c1\u06cc\u06ba\u06d4 <code>index.html<\/code> \u06cc\u06c1 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u06d2 \u0631\u0627\u0633\u062a\u06d2 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"heading-break-2-cause-a-container-name-conflict\">\u0648\u0642\u0641\u06c1 2: \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0646\u0627\u0645 \u06a9\u0627 \u062a\u0646\u0627\u0632\u0639\u06c1 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u0627\u06cc\u06a9 \u06c1\u06cc \u0688\u0648\u06a9\u0631 \u0688\u06cc\u0645\u0648\u0646 \u0645\u06cc\u06ba (\u06cc\u06c1\u0627\u06ba \u0627\u06cc\u06a9 \u0648\u06cc\u0628 VM)\u060c \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0627 \u0646\u0627\u0645 \u06c1\u06d2\u06d4 <strong>\u0645\u0646\u0641\u0631\u062f \u0644\u06cc\u0628\u0644<\/strong>. \u062f\u0648 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 (\u06cc\u0627 \u0631\u06a9\u06d2 \u06c1\u0648\u0626\u06d2) \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u0627\u06cc\u06a9 \u06c1\u06cc \u0646\u0627\u0645 \u06a9\u0627 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0627\u0648\u0631 \u067e\u0644\u06d2 \u0628\u06a9\u0633 \u062c\u0648 \u0622\u067e \u06c1\u0631 \u0648\u0642\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>docker run --name webapp<\/code> \u06cc\u06c1 \u063a\u0644\u0637\u06cc \u0622\u067e \u06a9\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633\u06d2 \u0635\u0627\u0641 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u06c1\u0648\u062a\u06cc \u0631\u06c1\u06d2 \u06af\u06cc\u060c \u0627\u0648\u0631 \u0627\u0633 \u0633\u06d2 \u0622\u06af\u0627\u06c1 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u0627 \u0648\u0642\u062a \u0628\u0686 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p><strong>\u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2:<\/strong> Ansible \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u06cc\u06a9 \u0646\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0628\u0646\u0627 \u0686\u06a9\u0627 \u06c1\u06d2\u06d4 <code>webapp<\/code>.<br \/>\u0648\u06cc\u0628 VM \u0631\u06a9\u06be\u06cc\u06ba (\u06cc\u0639\u0646\u06cc \u0627\u0628 \u0628\u06be\u06cc \u0627\u0646\u062f\u0631\u0648\u0646\u06cc)\u06d4 <code>vagrant ssh web<\/code>) \u062a\u0648 \u0646\u06cc\u0686\u06d2 \u062f\u06cc \u06af\u0626\u06cc \u06a9\u0645\u0627\u0646\u0688 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u062c\u06c1\u0627\u06ba \u0628\u06be\u06cc \u0648\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0628 \u062f\u0648\u0633\u0631\u0627 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u06cc\u06ba: <code>webapp<\/code>. \u062a\u0635\u0648\u06cc\u0631 \u0639\u0627\u0645 \u06c1\u06d2\u06d4 <code>nginx<\/code> \u06cc\u06c1\u0627\u06ba \u0645\u0642\u0635\u062f \u067e\u0631 &#8211; \u0646\u0642\u0637\u06c1 \u06cc\u06c1 \u06c1\u06d2 <strong>\u0646\u0627\u0645 \u06a9\u0627 \u062a\u0646\u0627\u0632\u0639\u06c1<\/strong>\u06cc\u06c1 \u0633\u0627\u0626\u0679 \u06a9\u06d2 \u067e\u0648\u0631\u0679 \u06cc\u0627 \u0648\u0627\u0644\u06cc\u0648\u0645 \u0645\u0627\u0624\u0646\u0679 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-plaintext\">sudo docker run -d --name webapp nginx\n<\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u0648\u0627\u0642\u0639\u06cc \u06a9\u06cc\u0627 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2 \u0648\u06c1 \u06c1\u06d2 \u0688\u0648\u06a9\u0631\u06d4 <strong>\u0627\u06cc\u0633\u0627 \u0646\u06c1\u06cc\u06ba<\/strong> \u062f\u0648\u0633\u0631\u0627 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u063a\u0644\u0637\u06cc \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u06cc \u0627\u0635\u0644 <code>webapp<\/code> \u06a9\u0648\u0626\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0646\u0627\u0645 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u06c1\u06d2\u06d4 <code>webapp<\/code> \u0622\u067e \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0627\u06cc\u06a9 \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0631\u062c\u0633\u0679\u0631\u0688 \u06c1\u06cc\u06ba (\u062e\u0631\u0627\u0628\u06cc \u0627\u0633 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06cc ID \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u06d2 \u06af\u06cc)\u06d4 \u0688\u0648\u06a9\u0631 \u0646\u0627\u0645 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0627\u0646\u06a9\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u067e\u0631\u0627\u0646\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u06c1\u0679\u0627 \u06cc\u0627 \u0627\u0633 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u0646\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc (ID \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2):<\/p>\n<pre><code class=\"language-plaintext\">docker: Error response from daemon: Conflict. The container name \"\/webapp\" is already in use by container \"2e48b81a311c4b71cdc1e25e0df75a22296845c7eb53aab82f9ae739fb6410ec\". You have to remove (or rename) that container to be able to reuse that name.\nSee 'docker run --help'.\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1776124245_136_Docker\u060c-Kubernetes\u060c-\u0627\u0648\u0631-Ansible-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0645\u0642\u0627\u0645\u06cc-DevOps-HomeLab-\u06a9\u06cc\u0633\u06d2.png\" alt=\"\u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0646\u0627\u0632\u0639\u06c1 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0627\u06cc\u0631\u0631 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0645\u0633\u0626\u0644\u06c1 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0633 \u06a9\u0627 \u0646\u0627\u0645 \u062e\u062a\u0645 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 <code>webapp<\/code> \u067e\u0644\u06d2 \u0628\u06a9 \u06a9\u06cc \u0637\u0631\u062d \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u06ba (\u067e\u0648\u0631\u0679 80 \u067e\u0631 \u0634\u0627\u0626\u0639 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u06cc\u0686 \u0679\u06cc \u0627\u06cc\u0645 \u0627\u06cc\u0644 \u06a9\u0648 \u0645\u0627\u0624\u0646\u0679 \u06a9\u0631\u06cc\u06ba\u060c \u067e\u0627\u0644\u06cc\u0633\u06cc \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba)\u06d4<\/p>\n<pre><code class=\"language-plaintext\">sudo docker rm -f webapp\nsudo docker run -d --name webapp --restart always -p 80:80 \n  -v \/var\/www\/html:\/usr\/share\/nginx\/html:ro nginx\n<\/code><\/pre>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0622\u067e \u06a9\u06cc \u0633\u0627\u0626\u0679 \u067e\u06c1\u0644\u06d2 \u06a9\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u06d2 (\u0631\u06cc\u0641\u0631\u06cc\u0634 <code>http:\/\/localhost:8080<\/code> \u0622\u067e \u06a9\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u067e\u0631)\u06d4<\/p>\n<h4 id=\"heading-what-to-observe\">\u0645\u0634\u0627\u06c1\u062f\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632\u06cc\u06ba:<\/h4>\n<p>\u0688\u0648\u06a9\u0631 \u06a9\u06d2 \u06a9\u0631\u06cc\u0634 \u067e\u06cc\u063a\u0627\u0645 \u06a9\u0648 \u067e\u0691\u06be\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u0627\u0633 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0646\u0627\u0645 \u06c1\u06d2\u06d4 <code>\/webapp<\/code> \u0627\u06cc\u06a9 \u06a9\u0646\u0679\u06cc\u0646\u0631 ID \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0645\u06cc\u06ba \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0628\u0627\u06a9\u0633 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0645\u06cc\u06ba\u060c \u067e\u06cc\u0679\u0631\u0646 \u06cc\u06c1 \u06c1\u0648\u06af\u0627 \u06a9\u06c1 &quot;\u06a9\u0633\u06cc \u0686\u06cc\u0632 \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0633 \u0646\u0627\u0645 \u06a9\u0627 \u062f\u0639\u0648\u06cc \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0627\u0633\u06d2 \u06c1\u0679\u0627 \u062f\u06cc\u06ba\u060c \u0627\u0633 \u06a9\u0627 \u0646\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u06cc\u0627 \u0686\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u0648\u0626\u06cc \u0645\u062e\u062a\u0644\u0641 \u0646\u0627\u0645 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4 <code>docker run<\/code> \u062f\u0648\u0628\u0627\u0631\u06c1.&#8221;<\/p>\n<h3 id=\"heading-break-3-make-ansible-fail-to-reach-a-vm\">\u0628\u0631\u06cc\u06a9 3: \u062c\u0648\u0627\u0628\u062f\u06c1 \u06a9\u0648 VM \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u06cc\u06ba\u06d4<\/h3>\n<p>Ansible &quot;\u0645\u0631\u0628\u0648\u0637 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u0642\u0627\u0635\u0631&#8221; \u0627\u0648\u0631 &quot;\u0645\u0646\u0633\u0644\u06a9 \u0644\u06cc\u06a9\u0646 \u0622\u067e\u0631\u06cc\u0634\u0646 \u0645\u0646\u0633\u0648\u062e&#8221; \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0641\u0631\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06c1\u0644\u0627 \u06cc\u06c1 \u06c1\u06d2\u06d4 <strong>\u0646\u0627\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc<\/strong>\u062f\u0648\u0633\u0631\u0627 \u06c1\u06d2\u06d4 <strong>\u0646\u0627\u06a9\u0627\u0645<\/strong>. \u06cc\u06c1 \u062c\u0627\u0646\u0646\u0627 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u06a9\u0648\u0646 \u0633\u0627 \u06c1\u06d2 \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u062c\u0627\u0646\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u0645\u0644\u06d2 \u06af\u06cc \u06a9\u06c1 \u0646\u06cc\u0679 \u0648\u0631\u06a9\/SSH \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u0646\u06cc \u06c1\u06d2 \u06cc\u0627 \u067e\u0644\u06d2 \u0628\u06a9\u0633\/\u067e\u06cc\u06a9\u06cc\u062c\u0632\/\u0627\u062c\u0627\u0632\u062a\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u067e\u0646\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u067e\u0631 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0641\u0648\u0644\u0688\u0631 \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u06cc\u06ba\u06d4 <code>inventory<\/code> \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u06a9\u0627 \u067e\u062a\u06c1 \u0627\u0633 \u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba: <code>192.168.33.10<\/code> \u0622\u0626\u06cc \u067e\u06cc \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 <strong>VMs \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627<\/strong>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code>192.168.33.99<\/code>. \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ini\">[webservers]\n192.168.33.99 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant\/machines\/web\/virtualbox\/private_key\n<\/code><\/pre>\n<p>\u06a9\u0627\u0645 \u0686\u0644\u0627\u0646\u0627 (\u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0631 \u0627\u0633\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0641\u0648\u0644\u0688\u0631 \u0645\u06cc\u06ba):<\/p>\n<pre><code class=\"language-bash\">ansible-playbook -i inventory playbook.yml\n<\/code><\/pre>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u062c\u0648\u0627\u0628\u06cc SSH \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>192.168.33.99<\/code>. \u0686\u0648\u0646\u06a9\u06c1 \u0644\u06cc\u0628 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u067e\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u062c\u0648\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u062f\u06d2 \u0631\u06c1\u0627 \u06c1\u06d2 (\u06cc\u0627 SSH \u06a9\u0628\u06be\u06cc \u06a9\u0627\u0645\u06cc\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2)\u060c \u062c\u0648\u0627\u0628\u062f\u06c1 <strong>\u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u0627\u062a\u0627<\/strong> \u0622\u067e \u06a9\u06d2 \u0648\u06cc\u0628 \u0633\u0631\u0648\u0631 \u067e\u0631\u06d4 UNRECHABLE \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0648 \u0631\u0648\u06a9\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-plaintext\">fatal: [192.168.33.99]: UNREACHABLE! => {\"msg\": \"Failed to connect to the host via ssh\"}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u06af\u0631 IP \u063a\u0644\u0637 \u06c1\u06d2\u060c VM \u0646\u06c1\u06cc\u06ba \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u0641\u0627\u0626\u0631 \u0648\u0627\u0644 \u067e\u0648\u0631\u0679 22 \u06a9\u0648 \u0645\u0633\u062f\u0648\u062f \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u06cc\u0627 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u063a\u0644\u0637 \u06a9\u0646\u0641\u06cc\u06af\u0631\u0688 \u06c1\u06d2 \u062a\u0648 \u0627\u06cc\u06a9 \u06c1\u06cc \u067e\u06cc\u063a\u0627\u0645 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u06af\u0627\u06d4 \u0639\u0627\u0645 \u062f\u06be\u0627\u06af\u06c1 \u06c1\u06d2\u06d4 <strong>\u06a9\u0648\u0626\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 SSH \u0633\u06cc\u0634\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/strong>.<\/p>\n<p>\u0627\u0628 \u0627\u0633\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0646\u062f\u0631 \u0688\u0627\u0644\u0646\u06d2 \u06a9\u0627 \u0648\u0642\u062a \u06c1\u06d2\u06d4 \u0628\u062d\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>192.168.33.10<\/code> \u06a9\u0648 <code>inventory<\/code> \u0627\u0648\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba <code>ansible-playbook -i inventory playbook.yml<\/code> \u062f\u0648\u0628\u0627\u0631\u06c1 \u0648\u06cc\u0628 \u067e\u0644\u06d2 \u06a9\u0648 VM \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 (\u06cc\u06c1 \u0641\u0631\u0636 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u06c1 \u0644\u06cc\u0628 \u0686\u0644 \u0631\u06c1\u06cc \u06c1\u06d2)\u06d4<\/p>\n<p><strong>\u0646\u0627\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0628\u0645\u0642\u0627\u0628\u0644\u06c1 \u0646\u0627\u06a9\u0627\u0645 &#8211; \u0645\u0634\u0627\u06c1\u062f\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632\u06cc\u06ba:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0627\u06af\u0631 \u062c\u0648\u0627\u0628\u06cc \u067e\u0631\u0646\u0679 \u0646\u0627\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0641\u0631\u0636 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u0627\u0633 \u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0631 SSH \u0646\u06c1\u06cc\u06ba \u06a9\u06be\u0648\u0644\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0648\u06c1\u0627\u06ba \u06a9\u0648\u0626\u06cc \u062c\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u0627\u0626\u06cc \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06cc \u067e\u0644\u06d2 \u0628\u06a9 \u0645\u0646\u0637\u0642 \u06a9\u0648 \u0688\u06cc\u0628\u06af \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u06a9\u0646\u06a9\u0634\u0646\u0632 (IP\u060c VM \u0628\u0631\u062a\u0627\u0624\u060c \u0641\u0627\u0626\u0631 \u0648\u0627\u0644\u060c \u06a9\u0644\u06cc\u062f\u06cc \u0631\u0627\u0633\u062a\u06d2) \u06a9\u0648 \u0679\u06be\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06af\u0631 \u062c\u0648\u0627\u0628\u06cc \u067e\u0631\u0646\u0679\u0633 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u06af\u0626\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0641\u0631\u0636 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 SSH \u0646\u06d2 \u06a9\u0627\u0645 \u06a9\u06cc\u0627 \u0627\u0648\u0631 \u0622\u067e\u0631\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u062e\u0631\u0627\u0628\u06cc \u0622\u0626\u06cc\u06d4 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u0635\u0644 \u063a\u06cc\u0631 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0648\u062c\u06c1 (\u067e\u06cc\u06a9\u06cc\u062c \u06a9\u0627 \u0646\u0627\u0645\u060c \u0627\u062c\u0627\u0632\u062a\u060c \u0646\u062d\u0648) \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0627\u0628 \u0622\u0624\u0679 \u067e\u0679 \u067e\u0691\u06be\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0628\u0639\u062f \u0645\u06cc\u06ba\u060c \u062c\u0628 \u0622\u067e \u0688\u06cc\u0628\u06af \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u062c\u0648\u0627\u0628\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0644\u0641\u0638 \u067e\u0631\u0646\u0679 \u0634\u062f\u06c1 \u0646\u0638\u0631 \u0622\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 <strong>\u0646\u0627\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc<\/strong> \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 <strong>\u0646\u0627\u06a9\u0627\u0645<\/strong> \u062c\u0627\u0628 \u0622\u0624\u0679 \u067e\u0679 \u0627\u0648\u0631 \u0627\u0633 \u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0631 \u067e\u06c1\u0644\u06cc \u0646\u0627\u06a9\u0627\u0645 \u0646\u0648\u06a9\u0631\u06cc \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-break-4-fill-the-vms-disk\">\u0628\u0631\u06cc\u06a9 4: VM \u06a9\u06cc \u0688\u0633\u06a9 \u06a9\u0648 \u0628\u06be\u0631\u0646\u0627<\/h3>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u062e\u062f\u0645\u0627\u062a \u06a9\u0648 \u0644\u0627\u06af\u0632\u060c \u0639\u0627\u0631\u0636\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u062a \u0688\u0633\u06a9 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0641\u0627\u0626\u0644 \u0633\u0633\u0679\u0645 \u0628\u06be\u0631\u0627 \u06c1\u0648\u0627 \u06c1\u06d2 \u06cc\u0627 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0628\u06be\u0631\u0627 \u06c1\u0648\u0627 \u06c1\u06d2 \u062a\u0648\u060c \u0633\u0631\u0648\u0633 \u0634\u0631\u0648\u0639 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0633\u06a9\u062a\u06cc \u06c1\u06d2 \u06cc\u0627 \u0631\u0646 \u0679\u0627\u0626\u0645 \u067e\u0631 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u0648\u0642\u0641\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646\u060c \u06c1\u0645 \u0648\u06c1\u06cc \u062a\u0634\u062e\u06cc\u0635\u06cc \u0639\u0627\u062f\u0627\u062a \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u062c\u0648 \u06c1\u0645 \u062d\u0642\u06cc\u0642\u06cc \u0633\u0631\u0648\u0631\u0632 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u0639\u0646\u06cc\u060c \u06cc\u06c1 \u0627\u0633\u067e\u06cc\u0633 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u0633\u0631\u0648\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0633\u0679\u0645 \u0627\u0648\u0631 \u062c\u0631\u0646\u0644 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u06cc\u0686\u06d2 \u062f\u06cc \u06af\u0626\u06cc \u062a\u0645\u0627\u0645 \u06a9\u0645\u0627\u0646\u0688\u0632 \u067e\u0631 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 <strong>DB VM \u067e\u0631<\/strong> ~ \u0628\u0639\u062f <code>vagrant ssh db<\/code>. \u0645\u0627\u0631\u06cc\u0627 \u0688\u06cc \u0628\u06cc \u06a9\u0648 \u06cc\u06c1\u0627\u06ba \u067e\u0644\u06d2 \u0628\u06a9 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<h4 id=\"heading-what-you-do\">\u0622\u067e \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba:<\/h4>\n<ol>\n<li>\n<p>db VM \u067e\u0631 \u0627\u06cc\u06a9 \u0634\u06cc\u0644 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-plaintext\">vagrant ssh db\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u0688\u0633\u06a9 \u06a9\u06cc \u062c\u06af\u06c1 \u0644\u06cc\u0646\u06d2 \u0648\u0627\u0644\u06cc \u06a9\u0633\u06cc \u0686\u06cc\u0632 \u06a9\u06cc \u0646\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0632\u06cc\u0631\u0648 \u0633\u06d2 \u0628\u06be\u0631\u06cc \u0627\u06cc\u06a9 \u0628\u0691\u06cc \u0641\u0627\u0626\u0644 \u0645\u062e\u062a\u0635 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba (\u06cc\u06c1\u0627\u06ba 1 \u062c\u06cc \u0628\u06cc)\u06d4<\/p>\n<pre><code class=\"language-plaintext\">sudo dd if=\/dev\/zero of=\/tmp\/bigfile bs=1M count=1024\n\ndf -h\n<\/code><\/pre>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>df -h<\/code> \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0631\u0648\u0679 \u0641\u0627\u0626\u0644 \u0633\u0633\u0679\u0645 (\u06cc\u0627 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0645\u0627\u0624\u0646\u0679) \u06a9\u062a\u0646\u0627 \u0628\u06be\u0631\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4 \u0648\u06cc\u06af\u0631\u0646\u0679 \u0688\u0633\u06a9\u06cc\u06ba \u0627\u062a\u0646\u06cc \u0628\u0691\u06cc \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06c1 1 \u062c\u06cc \u0628\u06cc \u062a\u06a9 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631 \u0633\u06a9\u06d2\u06d4 \u0627\u06af\u0631 \u0645\u0627\u0631\u06cc\u0627 \u0688\u06cc \u0628\u06cc \u0627\u0628 \u0628\u06be\u06cc \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u0646\u06d2 \u0679\u06cc\u0633\u0679 \u06a9\u06cc \u0645\u0634\u0642 \u06a9\u0631 \u0644\u06cc \u06c1\u06d2\u06d4 \u0622\u067e \u0627\u06cc\u06a9 \u0645\u0636\u0628\u0648\u0637 \u0627\u062b\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0691\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u062f\u06c1\u0631\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>count=<\/code> <strong>\u0635\u0631\u0641 \u0644\u06cc\u0628\u0627\u0631\u0679\u0631\u06cc \u0645\u06cc\u06ba<\/strong> (\u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0688\u0633\u06a9\u0648\u06ba \u06a9\u0648 \u0646\u06c1 \u067e\u064f\u0631 \u06a9\u0631\u06cc\u06ba)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u0627\u0631\u06cc\u0627 \u0688\u06cc \u0628\u06cc \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0633\u0633\u0679\u0645\u0688 \u0633\u06d2 \u0627\u0633\u0679\u06cc\u0679\u0633 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-plaintext\">sudo systemctl restart mariadb\nsudo systemctl status mariadb\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0688\u0633\u06a9 \u0628\u06be\u0631 \u062c\u0627\u062a\u06cc \u06c1\u06d2 \u062a\u0648\u060c \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06cc\u0627 \u062e\u062f\u0645\u0627\u062a \u0646\u0627\u06a9\u0627\u0645 \u06cc\u0627 \u0646\u06c1 \u0686\u0644\u0646\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0638\u0627\u06c1\u0631 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u067e\u0631\u06cc\u0634\u0627\u0646\u06cc \u06c1\u0648 \u0631\u06c1\u06cc \u06c1\u06d2 \u062a\u0648 \u0627\u067e\u0646\u06d2 \u0645\u0627\u0631\u06cc\u0627 \u0688\u06cc \u0628\u06cc \u0688\u06cc\u0648\u0627\u0626\u0633 \u06a9\u06d2 \u062d\u0627\u0644\u06cc\u06c1 \u0644\u0627\u06af\u0632 \u06a9\u0648 \u067e\u0691\u06be\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-plaintext\">sudo journalctl -u mariadb --no-pager | tail -20\n<\/code><\/pre>\n<p>\u063a\u0644\u0637\u06cc\u0648\u06ba \u0645\u06cc\u06ba \u0627\u06a9\u062b\u0631 \u0688\u0633\u06a9\u060c \u0627\u0633\u067e\u06cc\u0633\u060c \u0635\u0631\u0641 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0627\u0626\u0644 \u0633\u0633\u0679\u0645\u060c \u06cc\u0627 InnoDB \u067e\u0631 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0646\u06c1 \u06c1\u0648\u0646\u0627 \u0634\u0627\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>VM \u06a9\u0648 \u0635\u0627\u0641 \u06a9\u0631\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u062c\u0627\u0631\u06cc \u0631\u06c1 \u0633\u06a9\u06d2\u06d4<\/p>\n<pre><code class=\"language-plaintext\">sudo rm \/tmp\/bigfile\n<\/code><\/pre>\n<p>\u0645\u0646\u062a\u062e\u0628 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba <code>sudo systemctl restart mariadb<\/code> \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u067e\u06be\u0631 \u0641\u0639\u0627\u0644 (\u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2) \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0645\u0634\u0627\u06c1\u062f\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632\u06cc\u06ba:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0622\u067e \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 <code>df -h<\/code> \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0641\u0627\u0626\u0644 \u0633\u0633\u0679\u0645 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u062a\u0646\u06af \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u067e\u0631 \u0627\u0644\u0632\u0627\u0645 \u0644\u06af\u0627\u0646\u06d2 \u0633\u06d2 \u0628\u0686 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u062c\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0688\u0633\u06a9 \u06a9\u06cc \u06a9\u0627\u0641\u06cc \u062c\u06af\u06c1 \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u06a9\u0648 \u067e\u0691\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 <code>systemctl status mariadb<\/code> systemd \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u06a9\u0648\u0626\u06cc \u0633\u0631\u0648\u0633 \u0641\u0639\u0627\u0644\u060c \u0646\u0627\u06a9\u0627\u0645\u060c \u06cc\u0627 \u067e\u06be\u0691\u067e\u06be\u0691\u0627 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u06a9\u0648 \u067e\u0691\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 <code>journalctl -u mariadb<\/code> \u0627\u06af\u0631 \u062d\u0627\u0644\u062a \u062e\u0631\u0627\u0628 \u06c1\u06d2 \u062a\u0648\u060c \u0622\u067e \u0645\u0627\u0631\u06cc\u0627 \u0688\u06cc \u0628\u06cc \u06cc\u0627 \u06a9\u0631\u0646\u0644 (\u0627\u06a9\u062b\u0631 \u0688\u0633\u06a9\u060c \u0627\u0633\u067e\u06cc\u0633\u060c \u06cc\u0627 \u0635\u0631\u0641 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0627\u0626\u0644 \u0633\u0633\u0679\u0645 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba) \u0645\u06cc\u06ba \u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u0648 \u06a9\u0633\u06cc \u062e\u0627\u0635 \u063a\u0644\u0637\u06cc \u0633\u06d2 \u062c\u0648\u0691 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <strong>\u0627\u0633\u067e\u06cc\u0633 + \u0627\u0633\u0679\u06cc\u0679 + \u0644\u0627\u06af<\/strong> \u06cc\u06c1 \u0648\u06c1\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06c1\u06d2 \u062c\u0633\u06d2 \u06c1\u0645 \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0633\u0631\u0648\u0631\u0632 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-break-5-run-minikube-out-of-resources\">\u0628\u0631\u06cc\u06a9 \u067e\u0648\u0627\u0626\u0646\u0679 5: \u0646\u0627\u06a9\u0627\u0641\u06cc \u0648\u0633\u0627\u0626\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0646\u06cc \u06a9\u06cc\u0648\u0628 \u0686\u0644\u0627\u0646\u0627<\/h3>\n<p>Kubernetes \u06a9\u0627\u0641\u06cc CPU \u0627\u0648\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0648\u0627\u0644\u06d2 \u0646\u0648\u0688\u0633 \u067e\u0631 Pods \u06a9\u0648 \u0634\u06cc\u0688\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u06a9\u0644\u0633\u0679\u0631 \u0627\u067e\u0646\u06cc \u062c\u06af\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u06a9\u0686\u06be \u067e\u0648\u0688 \u0628\u0627\u0642\u06cc \u0631\u06c1\u06cc\u06ba \u06af\u06d2\u06d4 <strong>\u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621<\/strong> \u0627\u0648\u0631 <strong>\u0648\u0627\u0642\u0639\u06c1<\/strong> \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u06a9\u06cc\u0648\u06ba\u060c \u062c\u06cc\u0633\u06d2 <em>\u0633\u06cc \u067e\u06cc \u06cc\u0648 \u06a9\u06cc \u06a9\u0645\u06cc<\/em>)\u06d4 \u06cc\u06c1 \u0627\u0633 \u067e\u0648\u0688 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u06d2 \u062c\u0648 \u0634\u0631\u0648\u0639 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u0631\u06cc\u0634 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0642\u0627\u0645\u06cc \u06a9\u0644\u0633\u0679\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 (\u06c1\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <strong>\u0645\u0646\u06cc \u06a9\u06cc\u0648\u0628<\/strong> \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba) \u0627\u0648\u0631 <code>kubectl<\/code> \u0627\u067e\u0646\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u067e\u0631\u06d4 \u06cc\u06c1 \u0628\u0646\u062f\u0634 Vagrant VM \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0646\u06d2 \u0627\u0628\u06be\u06cc \u062a\u06a9 Minikube \u0627\u0646\u0633\u0679\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u067e\u06c1\u0644\u06d2 &quot;Kubernetes \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2&#8221; \u0633\u06cc\u06a9\u0634\u0646 \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u06cc\u0627 \u0627\u0633 \u0648\u0642\u0641\u06d2 \u06a9\u0648 \u0627\u0633 \u0648\u0642\u062a \u062a\u06a9 \u0686\u06be\u0648\u0691 \u062f\u06cc\u06ba \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0622\u067e \u0627\u06cc\u0633\u0627 \u0646\u06c1 \u06a9\u0631 \u0644\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u0627\u0633\u06d2 \u0627\u067e\u0646\u06d2 \u0622\u0644\u06d2 \u067e\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 <strong>\u0645\u06cc\u06a9\u060c \u0644\u06cc\u0646\u06a9\u0633\u060c \u06cc\u0627 \u0648\u0646\u0688\u0648\u0632 \u0679\u0631\u0645\u06cc\u0646\u0644<\/strong> (\u0645\u06cc\u0632\u0628\u0627\u0646)\u060c \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0646\u06c1\u06cc\u06ba\u06d4 <code>vagrant ssh<\/code>. \u0627\u06af\u0631 \u0622\u067e \u0627\u0628\u06be\u06cc \u0628\u06be\u06cc VM \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06c1\u06cc\u06ba \u062a\u0648 \u0679\u0627\u0626\u067e \u06a9\u0631\u06cc\u06ba: <code>exit<\/code> \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u067e\u0631\u0627\u0645\u067e\u0679 \u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0638\u0627\u06c1\u0631 \u0646\u06c1 \u06c1\u0648\u06d4<\/p>\n<h4 id=\"heading-what-you-do\">\u0622\u067e \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba:<\/h4>\n<ol>\n<li>\n<p>Minikube \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-plaintext\">minikube status\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0631\u0648\u06a9\u0627 \u06af\u06cc\u0627 \u062a\u0648 \u0627\u0633\u06d2 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba (\u0688\u0648\u06a9\u0631 \u0688\u0631\u0627\u0626\u06cc\u0648\u0631 \u067e\u0686\u06be\u0644\u06d2 \u062d\u0635\u06d2 \u0633\u06d2 \u0645\u06cc\u0644 \u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2)\u06d4<\/p>\n<pre><code class=\"language-plaintext\">minikube start --driver=docker\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u0628\u06c1\u062a \u0633\u0627\u0631\u06cc \u0646\u0642\u0644\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0627\u06cc\u06a9 \u06c1\u06cc Minikube \u0646\u0648\u0688 \u0627\u06cc\u06a9 \u06c1\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u0646\u0642\u0644\u06cc\u06ba \u0646\u06c1 \u0686\u0644\u0627 \u0633\u06a9\u06d2\u06d4<\/p>\n<pre><code class=\"language-plaintext\">kubectl create deployment stress --image=nginx --replicas=20\n\n#watch pods start\nkubectl get pods -w\n<\/code><\/pre>\n<p>\u062c\u0628 \u0622\u067e \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0645\u06a9\u0645\u0644 \u06a9\u0631 \u0644\u06cc\u06ba \u062a\u0648 Ctrl+C \u062f\u0628\u0627\u0626\u06cc\u06ba\u06d4 \u06a9\u0686\u06be \u067e\u06be\u0644\u06cc\u0627\u06ba \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06c1 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 <strong>\u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621<\/strong> \u062c\u0628\u06a9\u06c1 \u062f\u06cc\u06af\u0631 <strong>\u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621 \u067e\u0648\u0688 \u0646\u0627\u0645\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba: <code>kubectl get pods<\/code> \u0627\u0633\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-plaintext\">kubectl describe pod <pod-name>\n<\/pod-name><\/code><\/pre>\n<p>\u0648\u0627\u0642\u0639\u0627\u062a \u06a9\u06d2 \u062a\u062d\u062a\u060c FailedScheduling \u0627\u0648\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u06d2 \u0645\u0644\u062a\u06cc \u062c\u0644\u062a\u06cc \u0644\u0627\u0626\u0646 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-plaintext\">Warning  FailedScheduling  0\/1 nodes are available: 1 Insufficient cpu.\n<\/code><\/pre>\n<p>\u0622\u067e \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba <strong>\u06a9\u0645 \u0645\u06cc\u0645\u0648\u0631\u06cc<\/strong> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06cc\u06c1 \u0622\u067e \u06a9\u06d2 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0644\u0633\u0679\u0631 \u06a9\u0648 \u067e\u06a9\u0691\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06cc\u0686\u06d2 \u0627\u0633\u06a9\u06cc\u0644 \u06a9\u0631\u06a9\u06d2 \u0644\u06cc\u0628 \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-plaintext\">kubectl scale deployment stress --replicas=2\n<\/code><\/pre>\n<p>\u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0622\u067e \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062d\u0630\u0641 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>kubectl delete deployment stress<\/code>.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0645\u0634\u0627\u06c1\u062f\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632\u06cc\u06ba:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0622\u067e \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621 \u067e\u0648\u0688\u0632 \u0627\u0633 \u0648\u0642\u062a \u062a\u06a9 \u063a\u06cc\u0631 \u0634\u06cc\u0688\u0648\u0644 \u0631\u06c1\u06cc\u06ba \u06af\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0635\u0644\u0627\u062d\u06cc\u062a \u062f\u0633\u062a\u06cc\u0627\u0628 \u0646\u06c1 \u06c1\u0648 \u062c\u0627\u0626\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0634\u06cc\u0688\u0648\u0644\u0631 \u0646\u06d2 \u0627\u0633\u06d2 \u06a9\u06c1\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u0631\u06a9\u06be\u0627\u06d4 <strong>\u0644\u0641\u0638<\/strong> \u062a\u0627\u06c1\u0645\u060c \u06cc\u06c1 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0646\u0648\u0688 \u0645\u06cc\u06ba \u0627\u0633 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc CPU \u06cc\u0627 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u06a9\u0648 \u067e\u0691\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 <code>kubectl describe pod <pod-name\/><\/code> \u0627\u0648\u0631 \u062a\u06a9 \u0633\u06a9\u0631\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <strong>\u0648\u0627\u0642\u0639\u06c1<\/strong>. \u06a9\u0645 \u0633\u06cc \u067e\u06cc \u06cc\u0648 \u06cc\u0627 \u06a9\u0645 \u0645\u06cc\u0645\u0648\u0631\u06cc \u062c\u06cc\u0633\u06d2 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0644\u0633\u0679\u0631 \u0645\u06cc\u06ba \u0631\u06cc\u0632\u0631\u0648 \u0635\u0644\u0627\u062d\u06cc\u062a \u0646\u0627\u06a9\u0627\u0641\u06cc \u06c1\u06d2\u060c \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06a9\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631 \u062e\u0631\u0627\u0628 \u06c1\u0648 \u06af\u0626\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 Pod \u0633\u06d2 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u060c \u062c\u0648 Running \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0627 \u0627\u0648\u0631 \u067e\u06be\u0631 CrashLoopBackOff \u062a\u06a9 \u067e\u06c1\u0646\u0686 \u06af\u06cc\u0627\u06d4 \u0627\u0633 \u06a9\u0627 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0639\u0645\u0644 \u062e\u062a\u0645 \u06c1\u0648\u062a\u06d2 \u0631\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 &quot;\u06a9\u06c1\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u0686\u0644\u0627\u0646\u06d2&#8221; \u06a9\u0627 \u0645\u0633\u0626\u0644\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u0628\u0644\u06a9\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06cc\u0627 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u06a9\u0627 \u0645\u0633\u0626\u0644\u06c1 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-what-you-can-now-do\">\u0627\u0628 \u0622\u067e \u06a9\u06cc\u0627 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba \u06c1\u0645 \u0635\u0631\u0641 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0646\u06d2 \u0628\u06be\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627\u06d4<\/p>\n<p>\u0627\u0628 \u0622\u067e \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0633\u06d2 \u062f\u0648 \u0633\u0631\u0648\u0631 \u0627\u0633\u067e\u0646 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u0644\u06d2 \u0628\u06a9\u0633 \u0644\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0634\u06cc\u0646 \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0686\u06be\u0648\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632 \u0644\u06af\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e Vagrant VM \u0645\u06cc\u06ba \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 Docker \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u067e\u0646\u06d2 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u062e\u062f\u0645\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u06a9\u0645\u0627\u0646\u0688 \u0633\u06d2 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u0633\u06d2 \u0648\u0627\u067e\u0633 \u0644\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0645 \u0646\u06d2 \u0627\u0633\u06d2 \u0628\u06be\u06cc \u062a\u0648\u0691 \u062f\u06cc\u0627\u06d4 \u06c1\u0645 \u0646\u06d2 \u062f\u06cc\u06a9\u06be\u0627 \u06a9\u06c1 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0631\u06cc\u0634 \u06a9\u06cc\u0633\u0627 \u0644\u06af\u062a\u0627 \u06c1\u06d2\u060c Ansible \u06a9\u06cc\u0627 \u067e\u0631\u0646\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06cc\u06c1 \u0645\u0634\u06cc\u0646 \u062a\u06a9 \u0646\u06c1\u06cc\u06ba \u067e\u06c1\u0646\u0686 \u067e\u0627\u062a\u06cc\u060c \u0688\u0633\u06a9 \u06a9\u0627 \u062f\u0628\u0627\u0624 \u06a9\u0633 \u0637\u0631\u062d \u0686\u0644\u0627\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062e\u062f\u0645\u0627\u062a \u06a9\u0648 \u0645\u062a\u0627\u062b\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0648\u0633\u0627\u0626\u0644 \u06a9\u0645 \u06c1\u0648\u0646\u06d2 \u067e\u0631 Kubernetes \u0634\u06cc\u0688\u0648\u0644\u0631 \u06a9\u06cc\u0627 \u06a9\u06c1\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u06c1 \u063a\u0644\u0637\u06cc \u06a9\u0627 \u067e\u06cc\u063a\u0627\u0645 \u0627\u0628 \u063a\u06cc\u0631 \u0645\u0627\u0646\u0648\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u0631\u0642 \u06c1\u06d2 \u06a9\u0633\u06cc \u0627\u06cc\u0633\u06d2 \u0634\u062e\u0635 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u062c\u0633 \u0646\u06d2 DevOps \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u067e\u0691\u06be\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0633 \u0646\u06d2 \u0627\u0633 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u06cc\u06c1\u0627\u06ba \u0686\u0627\u0631 \u0645\u0641\u062a \u0645\u0646\u0635\u0648\u0628\u06d2 \u06c1\u06cc\u06ba \u062c\u0646\u06c1\u06cc\u06ba \u0622\u067e \u0627\u06cc\u06a9 \u06c1\u06cc \u0644\u06cc\u0628 \u0645\u06cc\u06ba \u0686\u0644\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0645\u0632\u06cc\u062f \u0622\u06af\u06d2 \u0644\u06d2 \u062c\u0627 \u0633\u06a9\u06cc\u06ba\u06d4<\/strong><\/p>\n<ul>\n<li>\n<p><strong>DevOps HomeLab 2026<\/strong> \u2014 \u0639\u0627\u0644\u0645\u06cc \u0633\u0637\u062d \u067e\u0631 \u0646\u0645\u0627\u0626\u0634 \u06a9\u06d2 \u0644\u06cc\u06d2 Docker Compose\u060c Kubernetes\u060c Prometheus\/Grafana \u0645\u0627\u0646\u06cc\u0679\u0631\u0646\u06af\u060c ArgoCD \u06a9\u06d2 \u0633\u0627\u062a\u06be GitOps\u060c \u0627\u0648\u0631 Cloudflare \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u0646\u0688 \u0679\u0648 \u0627\u06cc\u0646\u0688 \u0645\u0644\u0679\u06cc \u0633\u0631\u0648\u0633 \u0627\u06cc\u067e\u0633 (\u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688\u060c API\u060c PostgreSQL\u060c Redis) \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u06cc\u0648\u0628 \u0644\u06cc\u0628<\/strong> &#8211; \u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u06a9\u06d2 Kubernetes \u06a9\u06d2 \u062e\u0631\u0627\u0628\u06cc \u06a9\u06d2 \u0645\u0646\u0638\u0631\u0646\u0627\u0645\u06d2\u060c \u067e\u0648\u0688 \u06a9\u0631\u06cc\u0634\u0632\u060c OOMKills\u060c \u0646\u0648\u0688 \u0688\u0631\u06cc\u0646\u0632\u060c \u06a9\u06cc\u0633\u06a9\u06cc\u0688\u0646\u06af \u06a9\u06cc \u0646\u0627\u06a9\u0627\u0645\u06cc\u0648\u06ba \u06a9\u0648 \u0645\u062a\u062d\u0631\u06a9 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0645\u0634\u0627\u06c1\u062f\u06c1 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u06a9\u0644\u0633\u0679\u0631 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u06cc\u0633\u06d2 \u0631\u062f \u0639\u0645\u0644 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>K8s \u062e\u0641\u06cc\u06c1 \u0644\u06cc\u0628<\/strong> \u2014 AWS Secrets Manager \u0633\u06d2 \u0627\u067e\u0646\u06d2 \u06a9\u0644\u0633\u0679\u0631 \u062a\u06a9 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u062e\u0641\u06cc\u06c1 \u0645\u06cc\u0646\u062c\u0645\u0646\u0679 \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0628\u0634\u0645\u0648\u0644 \u0631\u0648\u0679\u06cc\u0634\u0646 \u0627\u06cc\u06a9\u0634\u0646\u0632 \u0627\u0648\u0631 IRSA\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>DevOps \u0679\u0631\u0628\u0644 \u0634\u0648\u0679\u0646\u06af \u0679\u0648\u0644 \u06a9\u0679<\/strong> &#8211; \u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u06a9\u06d2 \u0648\u0627\u0642\u0639\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u067e\u06cc \u067e\u06cc\u0633\u0679 \u06a9\u0645\u0627\u0646\u0688\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u0644\u06cc\u0646\u06a9\u0633\u060c \u06a9\u0646\u0679\u06cc\u0646\u0631\u0632\u060c \u06a9\u0628\u0631\u0646\u06cc\u0679\u0633\u060c \u06a9\u0644\u0627\u0624\u0688\u060c \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633\u0632\u060c \u0627\u0648\u0631 \u0645\u0634\u0627\u06c1\u062f\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u0638\u0645 \u0688\u06cc\u0628\u06af\u0646\u06af \u0631\u06c1\u0646\u0645\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u062a\u0645\u0627\u0645 \u0645\u0641\u062a \u0627\u0648\u0631 \u0627\u0648\u067e\u0646 \u0633\u0648\u0631\u0633: github.com\/Osomudeya\/List-Of-DevOps-Projects\u06d4<\/p>\n<p>\u0645\u0632\u06cc\u062f \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c Build Your Own DevOps Lab \u0645\u06cc\u06ba \u0686\u06be \u0645\u06a9\u0645\u0644 \u0627\u0628\u0648\u0627\u0628 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba \u062c\u0633 \u0645\u06cc\u06ba Terraform\u060c Ansible\u060c \u0645\u0627\u0646\u06cc\u0679\u0631\u0646\u06af\u060c CI\/CD\u060c \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0645\u0635\u0646\u0648\u0639\u06cc 3-VM \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0645\u0627\u062d\u0648\u0644 \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062c\u0628 \u0645\u06cc\u06ba \u0646\u06d2 \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 DevOps \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u06cc \u062a\u0648 \u0645\u062c\u06be\u06d2 AWS \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0627\u0626\u0646 \u0627\u067e \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u06cc\u0627 \u06af\u06cc\u0627\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 \u06a9\u06cc\u0627\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 EC2 \u0645\u062b\u0627\u0644 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u060c \u0627\u0633 \u067e\u0631 \u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06d2 \u062a\u06a9 \u06a9\u0627\u0645 \u06a9\u06cc\u0627\u060c \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633\u06d2 \u0628\u0646\u062f \u06a9\u0631\u0646\u0627 \u0628\u06be\u0648\u0644 \u06af\u06cc\u0627\u06d4 \u0627\u06cc\u06a9 \u06c1\u0641\u062a\u06c1 \u0628\u0639\u062f \u0645\u062c\u06be\u06d2 \u0627\u06cc\u06a9 \u0645\u0634\u06cc\u0646 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":22439,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=22438"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22438\/revisions"}],"predecessor-version":[{"id":22440,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22438\/revisions\/22440"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/22439"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=22438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=22438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=22438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}