{"id":14754,"date":"2024-02-17T13:57:41","date_gmt":"2024-02-17T10:27:41","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=14754"},"modified":"2024-02-17T13:57:41","modified_gmt":"2024-02-17T10:27:41","slug":"how-to-run-terraform-on-digitalocean","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-run-terraform-on-digitalocean\/","title":{"rendered":"Wie man Terraform auf DigitalOcean ausf\u00fchrt"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n<p>Terraform \u0627\u0628\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0633\u0627\u0632\u0645\u0627\u0646 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a DigitalOcean Droplets\u060c Load Balancers\u060c \u0648 \u062d\u062a\u06cc \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc DNS\u060c \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0637\u06cc\u0641 \u06af\u0633\u062a\u0631\u062f\u0647\u200c\u0627\u06cc \u0627\u0632 \u062e\u062f\u0645\u0627\u062a \u0627\u0631\u0627\u0626\u0647\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0633\u0627\u06cc\u0631 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. Terraform \u0627\u0632 \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u062f\u0633\u06a9\u062a\u0627\u067e \u0634\u0645\u0627 \u06cc\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f.<\/p>\n<p>Terraform \u0628\u0627 \u062e\u0648\u0627\u0646\u062f\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0647 \u0627\u062c\u0632\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u06cc\u0627 \u0645\u0631\u06a9\u0632 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0631\u0627 \u062a\u0634\u06a9\u06cc\u0644 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f\u060c \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631 \u0627\u0633\u0627\u0633 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627\u06cc\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a \u0645\u0637\u0644\u0648\u0628 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f. \u0633\u067e\u0633 \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0637\u0631\u062d \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u06cc \u062f\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u062e \u0645\u06cc \u062f\u0647\u062f\u060c Terraform \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0645\u0648\u062c\u0648\u062f \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u06cc\u062f \u062a\u0648\u0635\u06cc\u0641 \u0634\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c Terraform \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u06cc \u062f\u0631 DigitalOcean \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u062f\u0648 \u0633\u0631\u0648\u0631 Nginx \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u06cc\u06a9 DigitalOcean Load Balancer \u0628\u0627 \u0628\u0627\u0631 \u0645\u062a\u0639\u0627\u062f\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0633\u067e\u0633\u060c \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0648\u0631\u0648\u062f\u06cc DNS \u062f\u0631 DigitalOcean \u06a9\u0647 \u0628\u0647 Load Balancer \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u062f\u0647 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 DigitalOcean \u06a9\u0647 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/h5>\n<ul>\n<li>\u06cc\u06a9 \u062d\u0633\u0627\u0628 DigitalOcean<\/li>\n<li>\u06cc\u06a9 \u0631\u0645\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u062e\u0635\u06cc DigitalOcean \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06a9\u0646\u062a\u0631\u0644 \u067e\u0646\u0644 DigitalOcean \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u06cc\u06a9 \u06a9\u0644\u06cc\u062f SSH \u0628\u062f\u0648\u0646 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0647 \u062d\u0633\u0627\u0628 DigitalOcean \u0634\u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>\u062f\u0627\u0645\u0646\u0647 \u0634\u062e\u0635\u06cc \u0628\u0647 \u0633\u0631\u0648\u0631 \u06a9\u0647 \u0628\u0647 \u0646\u0627\u0645 DigitalOcean \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-1-%d9%86%d8%b5%d8%a8-terraform\">\u0645\u0631\u062d\u0644\u0647 1 &#8211; \u0646\u0635\u0628 Terraform<\/h2>\n<p>Terraform \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0631\u0648\u06cc \u062f\u0633\u06a9\u062a\u0627\u067e \u06cc\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0622\u0646\u060c \u0622\u0646 \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 PATH \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u06cc\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0647\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0633\u062a\u0647 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0635\u0641\u062d\u0647 \u0631\u0633\u0645\u06cc \u062f\u0627\u0646\u0644\u0648\u062f\u0647\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0627\u0632 macOS \u06cc\u0627 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f Terraform \u0631\u0627 \u0628\u0627 \u06a9\u0631\u0644 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 macOS\u060c \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0644\u0648\u062f Terraform \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u0627\u0635\u0644\u06cc \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>curl -o ~\/terraform.zip https:\/\/releases.hashicorp.com\/terraform\/1.7.2\/terraform_1.7.2_darwin_amd64.zip<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>curl -o ~\/terraform.zip https:\/\/releases.hashicorp.com\/terraform\/1.7.2\/terraform_1.7.2_linux_amd64.zip<\/code><\/pre>\n<\/div>\n<p>\u067e\u0648\u0634\u0647 ~\/opt\/terraform \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mkdir -p ~\/opt\/terraform<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633 Terraform \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 unzip \u0628\u0647 ~\/opt\/terraform \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f unzip \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 apt \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo apt install unzip<\/code><\/pre>\n<\/div>\n<p>\u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0628\u0627\u06cc\u06af\u0627\u0646\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u0634\u062f\u0647 \u062f\u0631 \u067e\u0648\u0634\u0647 ~\/opt\/terraform \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>unzip ~\/terraform.zip -d ~\/opt\/terraform<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c ~\/opt\/terraform \u0631\u0627 \u0628\u0647 \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u06cc\u0637\u06cc PATH \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0633\u062a\u0648\u0631 terraform \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u06a9\u0627\u0645\u0644 \u0641\u0627\u06cc\u0644 \u0627\u062c\u0631\u0627\u06cc\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633\u060c \u0628\u0627\u06cc\u062f PATH \u0631\u0627 \u062f\u0631 bashrc. \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0628\u0627 \u0628\u0627\u0632 \u0634\u062f\u0646 \u067e\u0648\u0633\u062a\u0647 \u062c\u062f\u06cc\u062f \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano ~\/.bashrc<\/code><\/pre>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u0633\u06cc\u0631 Terraform \u0628\u0647 PATH\u060c \u062e\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0627\u0646\u062a\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>export PATH=$PATH:~\/opt\/terraform<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u062a\u0645\u0627\u0645 \u062c\u0644\u0633\u0627\u062a \u067e\u0648\u0633\u062a\u0647 \u062c\u062f\u06cc\u062f \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0633\u062a\u0648\u0631 terraform \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u0646\u062f. \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc PATH \u062c\u062f\u06cc\u062f \u062f\u0631 \u062c\u0644\u0633\u0647 \u0641\u0639\u0644\u06cc \u062e\u0648\u062f\u060c \u0627\u06af\u0631 \u0627\u0632 Bash \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>. ~\/.bashrc<\/code><\/pre>\n<\/div>\n<p>\u0627\u06af\u0631 \u0627\u0632 Bash \u062f\u0631 macOS \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0622\u0646 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>. .bash_profile<\/code><\/pre>\n<\/div>\n<p>\u0627\u06af\u0631 \u0627\u0632 ZSH \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>. .zshrc<\/code><\/pre>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0627\u06cc\u0646\u06a9\u0647 Terraform \u0631\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u062f\u0633\u062a\u0648\u0631 terraform \u0631\u0627 \u0628\u062f\u0648\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>OutputUsage: terraform [global options] &lt;subcommand&gt; [args]\r\nThe available commands for execution are listed below.\r\nThe primary workflow commands are given first, followed by\r\nless common or more advanced commands.\r\nMain commands:\r\ninit Prepare your working directory for other commands\r\nvalidate Check whether the configuration is valid\r\nplan Show changes required by the current configuration\r\napply Create or update infrastructure\r\ndestroy Destroy previously-created infrastructure\r\nAll other commands:\r\nconsole Try Terraform expressions at an interactive command prompt\r\nfmt Reformat your configuration in the standard style\r\nforce-unlock Release a stuck lock on the current workspace\r\nget Install or upgrade remote Terraform modules\r\ngraph Generate a Graphviz graph of the steps in an operation\r\nimport Associate existing infrastructure with a Terraform resource\r\nlogin Obtain and save credentials for a remote host\r\nlogout Remove locally-stored credentials for a remote host\r\noutput Show output values from your root module\r\nproviders Show the providers required for this configuration\r\nrefresh Update the state to match remote systems\r\nshow Show the current state or a saved plan\r\nstate Advanced state management\r\ntaint Mark a resource instance as not fully functional\r\ntest Experimental support for module integration testing\r\nuntaint Remove the 'tainted' state from a resource instance\r\nversion Show the current Terraform version\r\nworkspace Workspace management\r\nGlobal options (use these before the subcommand, if any):\r\n-chdir=DIR Switch to a different working directory before executing the\r\ngiven subcommand.\r\n-help Show this help output, or the help for a specified subcommand.\r\n-version An alias for the \"version\" subcommand.<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646\u0647\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 Terraform \u0645\u06cc \u067e\u0630\u06cc\u0631\u062f. \u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0634\u0645\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u062e\u062a\u0635\u0631\u06cc \u0645\u06cc \u062f\u0647\u062f \u0648 \u062f\u0631 \u0637\u0648\u0644 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062f\u0631 \u0645\u0648\u0631\u062f \u0622\u0646\u0647\u0627 \u0628\u06cc\u0634\u062a\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 Terraform \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0628\u0627 \u0645\u0646\u0627\u0628\u0639 DigitalOcean \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-2-%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c-terraform-%d8%a8%d8%b1%d8%a7%db%8c-digitalocean\">\u0645\u0631\u062d\u0644\u0647 2 &#8211; \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform \u0628\u0631\u0627\u06cc DigitalOcean<\/h2>\n<p>Terraform \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062e\u062f\u0645\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u06cc \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0647\u0631 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0645\u0634\u062e\u0635\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0628\u0647 API \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u062e\u062f\u0645\u0627\u062a \u0645\u0631\u0628\u0648\u0637\u0647 \u062e\u0648\u062f \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 DigitalOcean \u0628\u0647 Terraform \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0628\u0627 DigitalOcean API \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u062a\u0627 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0645\u0646\u0627\u0628\u0639 \u0645\u062e\u062a\u0644\u0641 DigitalOcean \u0627\u0632 \u062c\u0645\u0644\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<ul>\n<li>digitalocean_droplet: Droplets (\u0633\u0631\u0648\u0631\u0647\u0627)<\/li>\n<li>digitalocean_loadbalancer: \u0645\u062a\u0639\u0627\u062f\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0628\u0627\u0631<\/li>\n<li>digitalocean_domain: \u0648\u0631\u0648\u062f\u06cc \u0647\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 DNS<\/li>\n<li>digitalocean_record: \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc DNS<\/li>\n<\/ul>\n<p>Terraform \u0627\u0632 \u0631\u0645\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u062e\u0635\u06cc DigitalOcean \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 DigitalOcean API \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0627\u0628\u0639 \u062f\u0631 \u062d\u0633\u0627\u0628 \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0644\u06cc\u062f \u0631\u0627 \u0628\u0627 \u062f\u06cc\u06af\u0631\u0627\u0646 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0646\u06af\u0630\u0627\u0631\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u062e\u0627\u0631\u062c \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0648 \u0646\u0633\u062e\u0647 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f. \u0631\u0645\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u062e\u0635\u06cc DigitalOcean \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0632\u06cc\u0631 \u0628\u0647 \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u06cc\u0637\u06cc \u0628\u0647 \u0646\u0627\u0645 DO_PAT \u0635\u0627\u062f\u0631 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>export DO_PAT=\"your_personal_access_token\"<\/code><\/pre>\n<\/div>\n<p>\u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0634\u0645\u0627 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mkdir ~\/loadbalance<\/code><\/pre>\n<\/div>\n<p>\u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062a\u0627\u0632\u0647 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0628\u0631\u0648\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cd ~\/loadbalance<\/code><\/pre>\n<\/div>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0647\u0627\u06cc Terraform \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u0645\u062a\u0646\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0627 \u067e\u0633\u0648\u0646\u062f \u0641\u0627\u06cc\u0644 .tf \u062e\u062a\u0645 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0646\u0633\u0627\u0646 \u0642\u0627\u0628\u0644 \u062e\u0648\u0627\u0646\u062f\u0646 \u0647\u0633\u062a\u0646\u062f \u0648 \u0627\u0632 \u0646\u0638\u0631\u0627\u062a \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f. (Terraform \u0627\u0632 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0627 \u0641\u0631\u0645\u062a JSON \u0646\u06cc\u0632 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0622\u0646\u0647\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u0648\u0634\u0634 \u062f\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f.) Terraform \u0647\u0645\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0627\u0639\u0644\u0627\u0646\u06cc \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0645\u0646\u0627\u0628\u0639 \u0648 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0627\u0647\u0645\u06cc\u062a\u06cc \u0646\u062f\u0627\u0631\u062f. \u06a9\u0644 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0627\u062d\u062f \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0627\u0645\u0627 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0648\u0636\u0648\u062d \u0628\u0627\u06cc\u062f \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u0648\u0639 \u0645\u0646\u0628\u0639 \u062c\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0627 Terraform \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0627\u06cc \u0631\u0627 \u06a9\u0647 \u0642\u0631\u0627\u0631 \u0627\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 DigitalOcean \u0628\u0627 Terraform\u060c \u0628\u0627\u06cc\u062f \u0628\u0647 Terraform \u062f\u0631 \u0645\u0648\u0631\u062f \u0622\u0646 \u0628\u06af\u0648\u06cc\u06cc\u062f \u0648 \u0627\u0641\u0632\u0648\u0646\u0647 \u0631\u0627 \u0628\u0627 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0627\u0639\u062a\u0628\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f. \u0641\u0627\u06cc\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 provider.tf \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano provider.tf<\/code><\/pre>\n<\/div>\n<p>\u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 Terraform \u0628\u06af\u0648\u06cc\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 DigitalOcean \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 Terraform \u0628\u06af\u0648\u06cc\u06cc\u062f \u06a9\u062c\u0627 \u0622\u0646 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform {\r\nrequired_providers {\r\ndigitalocean = {\r\nsource = \"digitalocean\/digitalocean\"\r\nversion = \"~&gt; 2.0\"\r\n}\r\n}\r\n}<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633\u060c \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0628\u0642\u06cc\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u062f \u0628\u0647 \u0622\u0646\u0647\u0627 \u0627\u0631\u062c\u0627\u0639 \u062f\u0647\u06cc\u062f:<\/p>\n<ul>\n<li><code>do_token<\/code>: \u0631\u0645\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u062e\u0635\u06cc DigitalOcean \u0634\u0645\u0627.<\/li>\n<li><code>pvt_key<\/code>: \u0645\u06a9\u0627\u0646 \u06a9\u0644\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 Terraform \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 Droplets \u062c\u062f\u06cc\u062f \u0648 \u0646\u0635\u0628 Nginx \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>\u0634\u0645\u0627 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u0622\u0646 \u0628\u0647 Terraform \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0646\u0647 \u0628\u0627 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u0633\u062e\u062a \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627. \u0627\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0642\u0627\u0628\u0644 \u062d\u0645\u0644 \u062a\u0631 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u060c \u0627\u06cc\u0646 \u062e\u0637\u0648\u0637 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>...\r\nvariable \"do_token\" {}\r\nvariable \"pvt_key\" {}<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633\u060c \u0627\u06cc\u0646 \u062e\u0637\u0648\u0637 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 DigitalOcean \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0639\u062a\u0628\u0627\u0631 \u062d\u0633\u0627\u0628 DigitalOcean \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u062e\u062a\u0635\u0627\u0635 <code>do_token<\/code> \u0628\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 <code>Token<\/code> \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>...\r\nprovider \"digitalocean\" {\r\ntoken = var.do_token\r\n}<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0647 Terraform \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0644\u06cc\u062f SSH \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u0647\u0631 \u0642\u0637\u0631\u0647 \u062c\u062f\u06cc\u062f\u06cc \u06a9\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u062f. \u0648\u0642\u062a\u06cc \u06a9\u0644\u06cc\u062f SSH \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 DigitalOcean \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0646\u0627\u0645\u06cc \u0628\u0647 \u0622\u0646 \u062f\u0627\u062f\u06cc\u062f. Terraform \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0646\u0627\u0645 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0644\u06cc\u062f \u0639\u0645\u0648\u0645\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u062e\u0637\u0648\u0637 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u0627\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u062d\u0633\u0627\u0628 DigitalOcean \u062e\u0648\u062f \u0627\u0631\u0627\u0626\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 <code>terraform<\/code> \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>...\r\ndata \"digitalocean_ssh_key\" \"terraform\" {\r\nname = \"terraform\"\r\n}<\/code><\/pre>\n<\/div>\n<p>\u0641\u0627\u06cc\u0644 <code>provider.tf<\/code> \u062a\u06a9\u0645\u06cc\u0644 \u0634\u062f\u0647 \u0634\u0645\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform {\r\nrequired_providers {\r\ndigitalocean = {\r\nsource = \"digitalocean\/digitalocean\"\r\nversion = \"~&gt; 2.0\"\r\n}\r\n}\r\n}\r\nvariable \"do_token\" {}\r\nvariable \"pvt_key\" {}\r\nprovider \"digitalocean\" {\r\ntoken = var.do_token\r\n}\r\ndata \"digitalocean_ssh_key\" \"terraform\" {\r\nname = \"terraform\"\r\n}<\/code><\/pre>\n<\/div>\n<p>\u0645\u0642\u062f\u0627\u0631 \u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 Terraform\u00a0 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform init<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0645\u0627 \u0631\u0627 \u062e\u0648\u0627\u0646\u062f\u0647 \u0648 \u0627\u0641\u0632\u0648\u0646\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u06a9\u0647 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>OutputInitializing the backend...\r\nInitializing provider plugins...\r\n- Finding digitalocean\/digitalocean versions matching \"~&gt; 2.0\"...\r\n- Installing digitalocean\/digitalocean v2.34.1...\r\n- Installed digitalocean\/digitalocean v2.34.1 (signed by a HashiCorp partner, key ID F82037E524B9C0E8)\r\nPartner and community providers are signed by their developers.\r\nIf you'd like to know more about provider signing, you can read about it here:\r\nhttps:\/\/www.terraform.io\/docs\/cli\/plugins\/signing.html\r\nTerraform has created a lock file .terraform.lock.hcl to record the provider\r\nselections it made above. Include this file in your version control repository\r\nso that Terraform can guarantee to make the same selections by default when\r\nyou run \"terraform init\" in the future.\r\nTerraform has been successfully initialized!\r\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\r\nany changes that are required for your infrastructure. All Terraform commands\r\nshould now work.\r\nIf you ever set or change modules or backend configuration for Terraform,\r\nrerun this command to reinitialize your working directory. If you forget, other\r\ncommands will detect it and remind you to do so if necessary.<\/code><\/pre>\n<\/div>\n<p>\u0627\u06af\u0631 \u06af\u06cc\u0631 \u06a9\u0631\u062f\u06cc\u062f \u0648 Terraform \u0622\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0627\u0631 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062d\u0630\u0641 \u0641\u0627\u06cc\u0644 <code>terraform.tfstate<\/code> \u0648 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0631\u062f\u0646 \u062f\u0633\u062a\u06cc \u0645\u0646\u0627\u0628\u0639 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 (\u0645\u062b\u0644\u0627\u064b \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06a9\u0646\u062a\u0631\u0644 \u067e\u0646\u0644) \u062f\u0648\u0628\u0627\u0631\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>Terraform \u0627\u06a9\u0646\u0648\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062d\u0633\u0627\u0628 DigitalOcean \u0634\u0645\u0627 \u0645\u062a\u0635\u0644 \u0634\u0648\u062f. \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0642\u0637\u0631\u0647 \u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0633\u0631\u0648\u0631 Nginx \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-3-%d8%aa%d8%b9%d8%b1%db%8c%d9%81-%d8%a7%d9%88%d9%84%db%8c%d9%86-%d8%b3%d8%b1%d9%88%d8%b1-nginx\">\u0645\u0631\u062d\u0644\u0647 3 &#8211; \u062a\u0639\u0631\u06cc\u0641 \u0627\u0648\u0644\u06cc\u0646 \u0633\u0631\u0648\u0631 Nginx<\/h2>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f DigitalOcean Droplet \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u067e\u0633 \u0627\u0632 \u0686\u0631\u062e\u0634 \u0622\u0646\u060c \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0631\u0627 \u0631\u0648\u06cc Droplet \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u06cc\u06a9 Ubuntu 20.04 \u0631\u0627 \u062a\u0647\u06cc\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0646\u0635\u0628 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 <code>www-1.tf<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Droplet \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano www-1.tf<\/code><\/pre>\n<\/div>\n<p>\u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0645\u0646\u0628\u0639 Droplet \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>resource \"digitalocean_droplet\" \"www-1\" {\r\nimage = \"ubuntu-20-04-x64\"\r\nname = \"www-1\"\r\nregion = \"nyc3\"\r\nsize = \"s-1vcpu-1gb\"\r\nssh_keys = [\r\ndata.digitalocean_ssh_key.terraform.id\r\n]<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0642\u0628\u0644\u06cc\u060c \u062e\u0637 \u0627\u0648\u0644 \u06cc\u06a9 \u0645\u0646\u0628\u0639 digitalocean_droplet \u0628\u0647 \u0646\u0627\u0645 www-1 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0642\u06cc\u0647 \u062e\u0637\u0648\u0637 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc Droplet \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u0645\u0631\u06a9\u0632 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f \u0648 Slug \u06a9\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u0642\u0637\u0631\u0647\u200c\u0627\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0634\u0645\u0627 \u0627\u0632 s-1vcpu-1gb \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06cc\u06a9 Droplet \u0628\u0627 \u06cc\u06a9 CPU \u0648 1GB RAM \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. (\u0627\u0632 \u0627\u06cc\u0646 \u0646\u0645\u0648\u062f\u0627\u0631 \u0633\u0627\u06cc\u0632 \u0627\u0633\u0644\u0627\u06af \u062f\u06cc\u062f\u0646 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0633\u0644\u0627\u06af \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f.)<\/p>\n<p>\u0628\u062e\u0634 <code>ssh_keys<\/code> \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0639\u0645\u0648\u0645\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0647 Droplet \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0634\u0645\u0627 \u06a9\u0644\u06cc\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 <code>provider.tf<\/code> \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u06cc\u062f. \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0646\u0627\u0645 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0627 \u0646\u0627\u0645\u06cc \u06a9\u0647 \u062f\u0631 <code>provider.tf<\/code> \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 Terraform \u0631\u0627 \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 DigitalOcean API \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u06cc \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f Droplet \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0622\u062f\u0631\u0633 \u0647\u0627\u06cc IP \u0639\u0645\u0648\u0645\u06cc \u0648 \u062e\u0635\u0648\u0635\u06cc \u0622\u0646. \u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0633\u0637 \u0645\u0646\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631 \u062f\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0646\u0645\u06cc\u200c\u062f\u0627\u0646\u06cc\u062f \u06a9\u062f\u0627\u0645 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u0645\u0646\u0628\u0639 Droplet \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u06cc\u0627 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0647\u0633\u062a\u0646\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0628\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0631\u0633\u0645\u06cc Terraform \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f: <a href=\"http:\/\/www.terraform.io\/docs\/providers\/do\/r\/droplet\">DigitalOcean Droplet Specification<\/a><\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06cc\u06a9 \u0627\u062a\u0635\u0627\u0644 \u06a9\u0647 Terraform \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0632 \u0637\u0631\u06cc\u0642 SSH \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u060c \u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0627\u0646\u062a\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>...\r\nconnection {\r\nhost = self.ipv4_address\r\nuser = \"root\"\r\ntype = \"ssh\"\r\nprivate_key = file(var.pvt_key)\r\ntimeout = \"2m\"\r\n}<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062e\u0637\u0648\u0637 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 Terraform \u0628\u0627\u06cc\u062f \u0628\u0647 \u0633\u0631\u0648\u0631 \u0645\u062a\u0635\u0644 \u0634\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 Terraform \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 SSH \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Nginx \u0645\u062a\u0635\u0644 \u0634\u0648\u062f. \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0644\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc <code>var.pvt_key<\/code> \u062a\u0648\u062c\u0647 \u06a9\u0646\u06cc\u062f\u2014\u0648\u0642\u062a\u06cc Terraform \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0645\u0642\u062f\u0627\u0631 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 Remote-exec \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Nginx \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>...\r\nprovisioner \"remote-exec\" {\r\ninline = [\r\n\"export PATH=$PATH:\/usr\/bin\",\r\n# install nginx\r\n\"sudo apt update\",\r\n\"sudo apt install -y nginx\"\r\n]\r\n}\r\n}<\/code><\/pre>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0622\u0631\u0627\u06cc\u0647 \u062f\u0631\u0648\u0646 \u062e\u0637\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u06cc\u0634\u0647 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Nginx \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0641\u0627\u06cc\u0644 \u062a\u06a9\u0645\u06cc\u0644 \u0634\u062f\u0647 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>resource \"digitalocean_droplet\" \"www-1\" {\r\nimage = \"ubuntu-20-04-x64\"\r\nname = \"www-1\"\r\nregion = \"nyc3\"\r\nsize = \"s-1vcpu-1gb\"\r\nssh_keys = [\r\ndata.digitalocean_ssh_key.terraform.id\r\n]\r\nconnection {\r\nhost = self.ipv4_address\r\nuser = \"root\"\r\ntype = \"ssh\"\r\nprivate_key = file(var.pvt_key)\r\ntimeout = \"2m\"\r\n}\r\nprovisioner \"remote-exec\" {\r\ninline = [\r\n\"export PATH=$PATH:\/usr\/bin\",\r\n# install nginx\r\n\"sudo apt update\",\r\n\"sudo apt install -y nginx\"\r\n]\r\n}\r\n}<\/code><\/pre>\n<\/div>\n<p>\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f. \u0634\u0645\u0627 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0648 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0622\u0646 \u0647\u0633\u062a\u06cc\u062f\u060c \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-4-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-terraform-%d8%a8%d8%b1%d8%a7%db%8c-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d8%b3%d8%b1%d9%88%d8%b1-nginx\">\u0645\u0631\u062d\u0644\u0647 4 &#8211; \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0633\u0631\u0648\u0631 Nginx<\/h2>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0641\u0639\u0644\u06cc Terraform \u0634\u0645\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u0631 Nginx \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06a9\u0646\u0648\u0646 Droplet \u0631\u0627 \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u0633\u062a\u0642\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<p>\u062f\u0633\u062a\u0648\u0631 <code>terraform plan<\/code> \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c \u06cc\u0627 \u0627\u06cc\u0646\u06a9\u0647 Terraform \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u06cc \u06a9\u0647 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u06cc\u062f \u062a\u0644\u0627\u0634 \u0645\u06cc \u06a9\u0646\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f. \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc DigitalOcean Access Token \u0648 \u0645\u0633\u06cc\u0631 \u06a9\u0644\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc \u062e\u0648\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f\u060c \u0632\u06cc\u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0645\u0627 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 Droplet \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Nginx \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0644\u0646 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform plan \\\r\n-var \"do_token=${DO_PAT}\" \\\r\n-var \"pvt_key=$HOME\/.ssh\/id_rsa\"<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0627\u06cc\u0646 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>OutputTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\r\n+ create\r\nTerraform will perform the following actions:\r\n# digitalocean_droplet.www-1 will be created\r\n+ resource \"digitalocean_droplet\" \"www-1\" {\r\n+ backups = false\r\n+ created_at = (known after apply)\r\n+ disk = (known after apply)\r\n+ graceful_shutdown = false\r\n+ id = (known after apply)\r\n+ image = \"ubuntu-20-04-x64\"\r\n+ ipv4_address = (known after apply)\r\n+ ipv4_address_private = (known after apply)\r\n+ ipv6 = false\r\n+ ipv6_address = (known after apply)\r\n+ locked = (known after apply)\r\n+ memory = (known after apply)\r\n+ monitoring = false\r\n+ name = \"www-1\"\r\n+ price_hourly = (known after apply)\r\n+ price_monthly = (known after apply)\r\n+ private_networking = (known after apply)\r\n+ region = \"nyc3\"\r\n+ resize_disk = true\r\n+ size = \"s-1vcpu-1gb\"\r\n+ ssh_keys = [\r\n+ \"...\",\r\n]\r\n+ status = (known after apply)\r\n+ urn = (known after apply)\r\n+ vcpus = (known after apply)\r\n+ volume_ids = (known after apply)\r\n+ vpc_uuid = (known after apply)\r\n}\r\nPlan: 1 to add, 0 to change, 0 to destroy.\r\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nNote: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run \"terraform apply\" now.<\/code><\/pre>\n<\/div>\n<p>\u062e\u0637 + \u0645\u0646\u0628\u0639 &#8220;digitalocean_droplet&#8221; &#8220;www-1&#8221; \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 Terraform \u06cc\u06a9 \u0645\u0646\u0628\u0639 Droplet \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 www-1 \u0631\u0627 \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u067e\u06cc \u0622\u0646 \u0627\u0633\u062a \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u062a\u0641\u0627\u0642 \u0628\u06cc\u0641\u062a\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 terraform application \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0639\u0644\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform apply \\\r\n-var \"do_token=${DO_PAT}\" \\\r\n-var \"pvt_key=$HOME\/.ssh\/id_rsa\"<\/code><\/pre>\n<\/div>\n<p>\u0634\u0645\u0627 \u0647\u0645\u0627\u0646 \u062e\u0631\u0648\u062c\u06cc \u0642\u0628\u0644\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 Terraform \u0627\u0632 \u0634\u0645\u0627 \u0645\u06cc \u067e\u0631\u0633\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Output...\r\nPlan: 1 to add, 0 to change, 0 to destroy.\r\nDo you want to perform these actions?\r\nTerraform will perform the actions described above.\r\nOnly 'yes' will be accepted to approve.\r\nEnter a value: yes<\/code><\/pre>\n<\/div>\n<p>\u0628\u0644\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647 \u0648 ENTER \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f. Terraform Droplet \u0634\u0645\u0627 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Outputdigitalocean_droplet.www-1: Creating...<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0645\u062f\u062a\u06cc\u060c Terraform \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u06a9\u0647 Nginx \u0631\u0627 \u0628\u0627 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 remote-exec \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0633\u067e\u0633 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u06a9\u0645\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Output\r\ndigitalocean_droplet.www-1: Provisioning with 'remote-exec'...\r\n....\r\ndigitalocean_droplet.www-1: Creation complete after 1m54s [id=your_www-1_droplet_id]\r\nApply complete! Resources: 1 added, 0 changed, 0 destroyed.\r\n...<\/code><\/pre>\n<\/div>\n<p>Terraform \u06cc\u06a9 Droplet \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 www-1 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 Nginx \u0631\u0627 \u0631\u0648\u06cc \u0622\u0646 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0627\u06af\u0631 \u0627\u0632 \u0622\u062f\u0631\u0633 IP \u0639\u0645\u0648\u0645\u06cc Droplet \u062c\u062f\u06cc\u062f \u062e\u0648\u062f \u0628\u0627\u0632\u062f\u06cc\u062f \u06a9\u0646\u06cc\u062f\u060c \u0635\u0641\u062d\u0647 \u062e\u0648\u0634 \u0622\u0645\u062f\u06af\u0648\u06cc\u06cc Nginx \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f. IP \u0639\u0645\u0648\u0645\u06cc \u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f Droplet \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u0645\u0627 \u0647\u0645\u06cc\u0634\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u0648\u0636\u0639\u06cc\u062a \u0641\u0639\u0644\u06cc Terraform \u0622\u0646 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f. Terraform \u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u06cc\u06a9 \u0637\u0631\u062d \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u06cc\u0627 \u0648\u0636\u0639\u06cc\u062a \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u06a9\u0646\u062f\u060c \u067e\u0631\u0648\u0646\u062f\u0647 \u062d\u0627\u0644\u062a terraform.tfstate \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0648\u0636\u0639\u06cc\u062a \u0641\u0639\u0644\u06cc \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform show terraform.tfstate<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0646\u0634\u0627\u0646\u06cc IP \u0639\u0645\u0648\u0645\u06cc Droplet \u0634\u0645\u0627 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Outputresource \"digitalocean_droplet\" \"www-1\" {\r\nbackups = false\r\ncreated_at = \"...\"\r\ndisk = 25\r\nid = \"your_www-1_droplet_id\"\r\nimage = \"ubuntu-20-04-x64\"\r\nipv4_address = \"your_www-1_server_ip\"\r\nipv4_address_private = \"10.128.0.2\"\r\n...<\/code><\/pre>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0627\u06cc\u0646\u06a9\u0647 \u0633\u0631\u0648\u0631 Nginx \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a\u060c \u0628\u0647 http:\/\/your_www-1_server_ip \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c Droplet \u0631\u0627 \u06a9\u0647 \u062f\u0631 Terraform \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0645\u0633\u062a\u0642\u0631 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f. \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0645\u0648\u0631\u062f \u062f\u0648\u0645 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-5-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d8%af%d9%88%d9%85%db%8c%d9%86-%d8%b3%d8%b1%d9%88%d8%b1-nginx\">\u0645\u0631\u062d\u0644\u0647 5 &#8211; \u0627\u06cc\u062c\u0627\u062f \u062f\u0648\u0645\u06cc\u0646 \u0633\u0631\u0648\u0631 Nginx<\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 Nginx \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u06a9\u067e\u06cc \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0631\u0648\u0631 \u0645\u0648\u062c\u0648\u062f \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u0646\u0627\u0645 \u0648 \u0646\u0627\u0645 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0645\u0646\u0628\u0639 Droplet\u060c \u0628\u0647 \u0633\u0631\u0639\u062a \u06cc\u06a9 \u062b\u0627\u0646\u06cc\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 <code>sed<\/code> \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0641\u0627\u06cc\u0644 <code>www-1.tf<\/code>\u060c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u062a\u0645\u0627\u0645 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc <code>www-1<\/code> \u0628\u0627 <code>www-2<\/code> \u0648 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 <code>www-2.tf<\/code> \u0633\u0631\u06cc\u0639\u062a\u0631 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062f\u0633\u062a\u0648\u0631 <code>sed<\/code> \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sed 's\/www-1\/www-2\/g' www-1.tf &gt; www-2.tf<\/code><\/pre>\n<\/div>\n<p>\u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 Using sed \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631\u0628\u0627\u0631\u0647 <code>sed<\/code> \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u06a9\u0633\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u06cc \u06a9\u0647 Terraform \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f\u060c \u0645\u062c\u062f\u062f\u0627\u064b \u0628\u0631\u0646\u0627\u0645\u0647 terraform \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform plan \\\r\n-var \"do_token=${DO_PAT}\" \\\r\n-var \"pvt_key=$HOME\/.ssh\/id_rsa\"<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 Terraform \u0633\u0631\u0648\u0631 \u062f\u0648\u0645 www-2 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>OutputTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\r\n+ create\r\nTerraform will perform the following actions:\r\n# digitalocean_droplet.www-2 will be created\r\n+ resource \"digitalocean_droplet\" \"www-2\" {\r\n+ backups = false\r\n+ created_at = (known after apply)\r\n+ disk = (known after apply)\r\n+ id = (known after apply)\r\n+ image = \"ubuntu-20-04-x64\"\r\n+ ipv4_address = (known after apply)\r\n+ ipv4_address_private = (known after apply)\r\n+ ipv6 = false\r\n+ ipv6_address = (known after apply)\r\n+ locked = (known after apply)\r\n+ memory = (known after apply)\r\n+ monitoring = false\r\n+ name = \"www-2\"\r\n+ price_hourly = (known after apply)\r\n+ price_monthly = (known after apply)\r\n+ private_networking = true\r\n+ region = \"nyc3\"\r\n+ resize_disk = true\r\n+ size = \"s-1vcpu-1gb\"\r\n+ ssh_keys = [\r\n+ \"...\",\r\n]\r\n+ status = (known after apply)\r\n+ urn = (known after apply)\r\n+ vcpus = (known after apply)\r\n+ volume_ids = (known after apply)\r\n+ vpc_uuid = (known after apply)\r\n}\r\nPlan: 1 to add, 0 to change, 0 to destroy.\r\n...<\/code><\/pre>\n<\/div>\n<p>\u062f\u0648\u0628\u0627\u0631\u0647 terraform application \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0642\u0637\u0631\u0647 \u062f\u0648\u0645 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform apply \\\r\n-var \"do_token=${DO_PAT}\" \\\r\n-var \"pvt_key=$HOME\/.ssh\/id_rsa\"<\/code><\/pre>\n<\/div>\n<p>\u0645\u0627\u0646\u0646\u062f \u0642\u0628\u0644\u060c Terraform \u0627\u0632 \u0634\u0645\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f \u062a\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f. \u062f\u0648\u0628\u0627\u0631\u0647 \u0637\u0631\u062d \u0631\u0627 \u0645\u0631\u0648\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647\u060c \u0628\u0644\u0647 \u0631\u0627 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0645\u062f\u062a\u06cc\u060c Terraform \u0633\u0631\u0648\u0631 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Outputdigitalocean_droplet.www-2: Creation complete after 1m47s [id=your_www-2_droplet_id]\r\n...\r\nApply complete! Resources: 1 added, 0 changed, 0 destroyed.<\/code><\/pre>\n<\/div>\n<p>Terraform \u0633\u0631\u0648\u0631 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0633\u0631\u0648\u0631 \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u062f\u0627\u062f. \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc Nginx \u0627\u0636\u0627\u0641\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0631\u0627 \u062a\u06a9\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062f\u0648 Droplet \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 Nginx \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u0645\u062a\u0639\u0627\u062f\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0642\u0633\u06cc\u0645 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0628\u06cc\u0646 \u0622\u0646\u0647\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0645\u0633\u062a\u0642\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-6-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d8%aa%d8%b9%d8%a7%d8%af%d9%84-%d8%a8%d8%a7%d8%b1\">\u0645\u0631\u062d\u0644\u0647 6 &#8211; \u0627\u06cc\u062c\u0627\u062f \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631<\/h2>\n<p>\u0634\u0645\u0627 \u0627\u0632 DigitalOcean Load Balancer\u060c \u06a9\u0647 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0631\u0633\u0645\u06cc Terraform \u0627\u0632 \u0622\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0631\u0627\u06cc \u0647\u062f\u0627\u06cc\u062a \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0628\u06cc\u0646 \u062f\u0648 \u0633\u0631\u0648\u0631 \u0648\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Terraform \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 <code>loadbalancer.tf<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano loadbalancer.tf<\/code><\/pre>\n<\/div>\n<p>\u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 Load Balancer \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>resource \"digitalocean_loadbalancer\" \"www-lb\" {\r\nname = \"www-lb\"\r\nregion = \"nyc3\"\r\nforwarding_rule {\r\nentry_port = 80\r\nentry_protocol = \"http\"\r\ntarget_port = 80\r\ntarget_protocol = \"http\"\r\n}\r\nhealthcheck {\r\nport = 22\r\nprotocol = \"tcp\"\r\n}\r\ndroplet_ids = [digitalocean_droplet.www-1.id, digitalocean_droplet.www-2.id ]\r\n}<\/code><\/pre>\n<\/div>\n<p>\u062a\u0639\u0631\u06cc\u0641 Load Balancer \u0646\u0627\u0645 \u0622\u0646\u060c \u0645\u0631\u06a9\u0632 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a\u060c \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0622\u0646 \u06af\u0648\u0634 \u062f\u0647\u062f \u062a\u0627 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0627 \u0645\u062a\u0639\u0627\u062f\u0644 \u06a9\u0646\u062f\u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0633\u0644\u0627\u0645\u062a \u0648 \u0634\u0646\u0627\u0633\u0647\u200c\u0647\u0627\u06cc \u0642\u0637\u0631\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062a\u0639\u0627\u062f\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc Terraform \u0648\u0627\u06a9\u0634\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0633\u067e\u0633\u060c \u06cc\u06a9 \u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 Load Balancer \u0648\u0627\u0642\u0639\u0627\u064b \u067e\u0633 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>check \"health_check\" {\r\ndata \"http\" \"lb_check\" {\r\nurl = \"http:\/\/${digitalocean_loadbalancer.www-lb.ip}\"\r\n}\r\nassert {\r\ncondition = data.http.lb_check.status_code == 200\r\nerror_message = \"${data.http.lb_check.url} returned an unhealthy status code\"\r\n}\r\n}<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0622\u062f\u0631\u0633 IP Load Balancer \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u06a9\u062f \u0628\u0631\u06af\u0634\u062a\u06cc 200 \u0627\u0633\u062a\u060c \u06a9\u0647 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u0633\u0627\u0644\u0645 \u0628\u0648\u062f\u0646 \u0648 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0628\u0648\u062f\u0646 \u0642\u0637\u0631\u0627\u062a \u0627\u0633\u062a. \u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u062e\u0637\u0627 \u06cc\u0627 \u06a9\u062f \u0628\u0631\u06af\u0634\u062a\u06cc \u0645\u062a\u0641\u0627\u0648\u062a\u060c \u067e\u0633 \u0627\u0632 \u0645\u0631\u0627\u062d\u0644 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u062e\u0637\u0627\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.\u0648\u0642\u062a\u06cc \u06a9\u0627\u0631\u062a\u0627\u0646 \u062a\u0645\u0627\u0645 \u0634\u062f\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<p>\u062f\u0648\u0628\u0627\u0631\u0647 \u062f\u0633\u062a\u0648\u0631 <code>terraform plan<\/code> \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627\u06cc\u06cc \u062c\u062f\u06cc\u062f \u0631\u0627 \u0645\u0631\u0648\u0631 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform plan \\\r\n-var \"do_token=${DO_PAT}\" \\\r\n-var \"pvt_key=$HOME\/.ssh\/id_rsa\"<\/code><\/pre>\n<\/div>\n<p>\u0686\u0646\u062f\u06cc\u0646 \u062e\u0637 \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u062e\u0637\u0648\u0637 \u0632\u06cc\u0631:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Output...\r\nTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\r\n+ create\r\n&lt;= read (data resources)\r\nTerraform will perform the following actions:\r\n# data.http.lb_check will be read during apply\r\n# (config refers to values not yet known)\r\n&lt;= data \"http\" \"lb_check\" {\r\n+ body = (known after apply)\r\n+ id = (known after apply)\r\n+ response_body = (known after apply)\r\n+ response_body_base64 = (known after apply)\r\n+ response_headers = (known after apply)\r\n+ status_code = (known after apply)\r\n+ url = (known after apply)\r\n}\r\n# digitalocean_loadbalancer.www-lb will be created\r\n+ resource \"digitalocean_loadbalancer\" \"www-lb\" {\r\n+ algorithm = \"round_robin\"\r\n+ disable_lets_encrypt_dns_records = false\r\n+ droplet_ids = [\r\n+ ...,\r\n+ ...,\r\n]\r\n+ enable_backend_keepalive = false\r\n+ enable_proxy_protocol = false\r\n+ http_idle_timeout_seconds = (known after apply)\r\n+ id = (known after apply)\r\n+ ip = (known after apply)\r\n+ name = \"www-lb\"\r\n+ project_id = (known after apply)\r\n+ redirect_http_to_https = false\r\n+ region = \"nyc3\"\r\n+ size_unit = (known after apply)\r\n+ status = (known after apply)\r\n+ urn = (known after apply)\r\n+ vpc_uuid = (known after apply)\r\n+ forwarding_rule {\r\n+ certificate_id = (known after apply)\r\n+ certificate_name = (known after apply)\r\n+ entry_port = 80\r\n+ entry_protocol = \"http\"\r\n+ target_port = 80\r\n+ target_protocol = \"http\"\r\n+ tls_passthrough = false\r\n}\r\n+ healthcheck {\r\n+ check_interval_seconds = 10\r\n+ healthy_threshold = 5\r\n+ port = 22\r\n+ protocol = \"tcp\"\r\n+ response_timeout_seconds = 5\r\n+ unhealthy_threshold = 3\r\n}\r\n}\r\nPlan: 1 to add, 0 to change, 0 to destroy.\r\n\u2502 Warning: Check block assertion known after apply\r\n\u2502 on loadbalancer.tf line 27, in check \"health_check\":\r\n\u2502 27: condition = data.http.lb_check.status_code == 200\r\n\u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\u2502 \u2502 data.http.lb_check.status_code is a number\r\n\u2502\r\n\u2502 The condition could not be evaluated at this time, a result will be known when this plan is applied.\r\n\u2575\r\n...<\/code><\/pre>\n<\/div>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0642\u0637\u0631\u0647\u200c\u0647\u0627\u06cc <code>www-1<\/code> \u0648 <code>www-2<\/code> \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u0646\u062f\u060c Terraform Load Balancer www-lb \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u067e\u0633 \u0627\u0632 \u062a\u0647\u06cc\u0647 \u0622\u0646 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u060c \u0628\u0627\u06cc\u062f \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u0645\u062c\u062f\u062f\u0627\u064b \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc http \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 health_check \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform init -upgrade<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633\u060c terraform application \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a Load Balancer \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform apply \\\r\n-var \"do_token=${DO_PAT}\" \\\r\n-var \"pvt_key=$HOME\/.ssh\/id_rsa\"<\/code><\/pre>\n<\/div>\n<p>\u0628\u0627\u0631 \u062f\u06cc\u06af\u0631\u060c Terraform \u0627\u0632 \u0634\u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u062f \u06a9\u0647 \u0637\u0631\u062d \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647\u060c \u0637\u0631\u062d \u0631\u0627 \u0628\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0628\u0644\u0647 \u062a\u0627\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u06a9\u0647 \u062d\u0627\u0648\u06cc \u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0631 \u06a9\u0648\u062a\u0627\u0647 \u0634\u062f\u0647 \u0627\u0646\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Output...\r\ndigitalocean_loadbalancer.www-lb: Creating...\r\n...\r\ndigitalocean_loadbalancer.www-lb: Creation complete after 1m18s [id=your_load_balancer_id]\r\ndata.http.lb_check: Reading...\r\ndata.http.lb_check: Read complete after 0s [id=http:\/\/lb-ip]\r\nApply complete! Resources: 1 added, 0 changed, 0 destroyed.\r\n...<\/code><\/pre>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 lb_check \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f.<\/p>\n<p>\u0627\u0632 <code>terraform show terraform.tfstate<\/code> \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0622\u062f\u0631\u0633 IP Load Balancer \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform show terraform.tfstate<\/code><\/pre>\n<\/div>\n<p>IP \u0631\u0627 \u062f\u0631 \u0632\u06cc\u0631 \u0648\u0631\u0648\u062f\u06cc www-lb \u067e\u06cc\u062f\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>Output...\r\n# digitalocean_loadbalancer.www-lb:\r\nresource \"digitalocean_loadbalancer\" \"www-lb\" {\r\nalgorithm = \"round_robin\"\r\ndisable_lets_encrypt_dns_records = false\r\ndroplet_ids = [\r\nyour_www-1_droplet_id,\r\nyour_www-2_droplet_id,\r\n]\r\nenable_backend_keepalive = false\r\nenable_proxy_protocol = false\r\nid = \"your_load_balancer_id\"\r\nip = \"your_load_balancer_ip\"\r\nname = \"www-lb\"\r\n...<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0628\u0647 http:\/\/your_load_balancer_ip \u0628\u0631\u0648\u06cc\u062f \u0648 \u0635\u0641\u062d\u0647 \u062e\u0648\u0634 \u0622\u0645\u062f\u06af\u0648\u06cc\u06cc Nginx \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u0632\u06cc\u0631\u0627 Load Balancer \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0627 \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u062f\u0648 \u0633\u0631\u0648\u0631 Nginx \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u0622\u0645\u0648\u0632\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 DNS \u0631\u0627 \u0628\u0631\u0627\u06cc \u062d\u0633\u0627\u0628 DigitalOcean \u062e\u0648\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-7-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d8%af%d8%a7%d9%85%d9%86%d9%87-%d9%87%d8%a7-%d9%88-%d8%b3%d9%88%d8%a7%d8%a8%d9%82-dns\">\u0645\u0631\u062d\u0644\u0647 7 &#8211; \u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u0645\u0646\u0647 \u0647\u0627 \u0648 \u0633\u0648\u0627\u0628\u0642 DNS<\/h2>\n<p>\u0639\u0644\u0627\u0648\u0647 \u0628\u0631 Droplets \u0648 Load Balancer\u060c Terraform \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0627\u0645\u0646\u0647 DNS \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0627\u0645\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062b\u0628\u062a \u06a9\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 Load Balancer \u062e\u0648\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u0622\u0646 \u0631\u0627\u0628\u0637\u0647 \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f.<\/p>\n<p>\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641 DNS \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano domain_root.tf<\/code><\/pre>\n<\/div>\n<p>\u0645\u0646\u0628\u0639 \u062f\u0627\u0645\u0646\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 your_domain \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>resource \"digitalocean_domain\" \"default\" {\r\nname = \"your_domain\"\r\nip_address = digitalocean_loadbalancer.www-lb.ip\r\n}<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f CNAME \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 <code>www.your_domain<\/code> \u0631\u0627 \u0628\u0647 <code>your_domain<\/code> \u0646\u0634\u0627\u0646 \u062f\u0647\u062f. \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0631\u06a9\u0648\u0631\u062f CNAME \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano domain_cname.tf<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062e\u0637\u0648\u0637 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>resource \"digitalocean_record\" \"CNAME-www\" {\r\ndomain = digitalocean_domain.default.name\r\ntype = \"CNAME\"\r\nname = \"www\"\r\nvalue = \"@\"\r\n}<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc DNS\u060c \u0628\u0631\u0646\u0627\u0645\u0647 <code>terraform<\/code> \u0648 \u0633\u067e\u0633 <code>terraform application<\/code> \u0631\u0627 \u0645\u0627\u0646\u0646\u062f \u0633\u0627\u06cc\u0631 \u0645\u0646\u0627\u0628\u0639 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0647 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f \u0648 \u0635\u0641\u062d\u0647 \u062e\u0648\u0634 \u0622\u0645\u062f\u06af\u0648\u06cc\u06cc Nginx \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u0632\u06cc\u0631\u0627 \u062f\u0627\u0645\u0646\u0647 \u0628\u0647 Load Balancer \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0627 \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u062f\u0648 \u0633\u0631\u0648\u0631 Nginx \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-8-%d8%b2%db%8c%d8%b1%d8%b3%d8%a7%d8%ae%d8%aa-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a7%d8%b2-%d8%a8%db%8c%d9%86-%d8%a8%d8%a8%d8%b1%db%8c%d8%af\">\u0645\u0631\u062d\u0644\u0647 8 &#8211; \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0628\u0631\u06cc\u062f<\/h2>\n<p>\u0627\u06af\u0631\u0686\u0647 Terraform \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0631\u0627 \u0646\u06cc\u0632 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0628\u0631\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u062f\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u06a9\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u0645\u0633\u062a\u0642\u0631 \u0648 \u0646\u0627\u0628\u0648\u062f \u0645\u06cc \u0634\u0648\u0646\u062f \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>terraform plan -destroy<\/code> \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0631\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062a\u062e\u0631\u06cc\u0628 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform plan -destroy -out=terraform.tfplan \\\r\n-var \"do_token=${DO_PAT}\" \\\r\n-var \"pvt_key=$HOME\/.ssh\/id_rsa\"<\/code><\/pre>\n<\/div>\n<p>Terraform \u0637\u0631\u062d\u06cc \u0631\u0627 \u0628\u0627 \u0645\u0646\u0627\u0628\u0639\u06cc \u06a9\u0647 \u0628\u0627 \u0631\u0646\u06af \u0642\u0631\u0645\u0632 \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0646\u062f\u060c \u0648 \u0628\u0627 \u0639\u0644\u0627\u0645\u062a \u0645\u0646\u0641\u06cc \u067e\u06cc\u0634\u0648\u0646\u062f\u060c \u062e\u0631\u0648\u062c\u06cc \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0645\u0646\u0627\u0628\u0639 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0634\u0645\u0627 \u0631\u0627 \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0633\u067e\u0633 \u0627\u0632 <code>terraform application<\/code> \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0637\u0631\u062d \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>terraform apply terraform.tfplan<\/code><\/pre>\n<\/div>\n<p>Terraform \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0637\u0631\u062d \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u0647 \u062a\u062e\u0631\u06cc\u0628 \u0645\u0646\u0627\u0628\u0639 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">\u0646\u062a\u06cc\u062c\u0647<\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0634\u0645\u0627 \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0648\u0628 \u0645\u062a\u0639\u0627\u062f\u0644 \u0628\u0627 \u0628\u0627\u0631 \u062f\u0631 DigitalOcean \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0628\u0627 \u062f\u0648 \u0633\u0631\u0648\u0631 \u0648\u0628 Nginx \u06a9\u0647 \u067e\u0634\u062a \u06cc\u06a9 DigitalOcean Load Balancer \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062f\u0627\u0646\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u0646\u0627\u0628\u0639 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0646\u0627\u0628\u0648\u062f \u06a9\u0646\u06cc\u062f\u060c \u0648\u0636\u0639\u06cc\u062a \u0641\u0639\u0644\u06cc \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0627\u06cc DNS \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0641\u0647\u0645\u06cc\u062f\u06cc\u062f Terraform \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0633\u0631\u0648\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u062b\u0627\u0644 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u062e\u0648\u0628\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0633\u0631\u0648\u0631\u0647\u0627 \u0631\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0642\u0628\u0644\u0627\u064b \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062a\u0623\u0645\u06cc\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0627 Terraform \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u0634 \u062a\u0623\u0645\u06cc\u0646 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0633\u0631\u0648\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u0622\u0646\u0647\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>Terraform \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06a9\u0627\u0631 \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u06a9\u0633\u0628 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062e\u0648\u062f\u060c \u0627\u0633\u0646\u0627\u062f \u0631\u0633\u0645\u06cc Terraform \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0627 Terraform \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647 \u062a\u0639\u062f\u0627\u062f\u06cc \u0627\u0632 \u0645\u0648\u0636\u0648\u0639\u0627\u062a Terraform \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u0632 \u0646\u0635\u0628 Terraform \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u062a\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647.<\/p>\n","protected":false},"excerpt":{"rendered":"Einf\u00fchrung: Terraform ist ein Werkzeug zum Erstellen und Verwalten von Infrastruktur auf organisierte Weise. Sie k\u00f6nnen es verwenden, um\u2026","protected":false},"author":1,"featured_media":14756,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,349,204],"tags":[401,402],"class_list":{"0":"post-14754","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-database","9":"category-servers","10":"tag-digitalocean","11":"tag-terraform"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-run-terraform-on-digitalocean\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 Terraform \u0627\u0628\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0633\u0627\u0632\u0645\u0627\u0646 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-run-terraform-on-digitalocean\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-17T10:27:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/02\/17135515\/TerraformBG.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean\",\"datePublished\":\"2024-02-17T10:27:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/\"},\"wordCount\":329,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/02\\\/17135515\\\/TerraformBG.jpg\",\"keywords\":[\"Digitalocean\",\"Terraform\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\",\"\u0633\u0631\u0648\u0631\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/\",\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/02\\\/17135515\\\/TerraformBG.jpg\",\"datePublished\":\"2024-02-17T10:27:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/02\\\/17135515\\\/TerraformBG.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/02\\\/17135515\\\/TerraformBG.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-run-terraform-on-digitalocean\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/de\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"So f\u00fchren Sie Terraform auf DigitalOcean aus \u2013 ITPiran-Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-run-terraform-on-digitalocean\/","og_locale":"de_DE","og_type":"article","og_title":"\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 Terraform \u0627\u0628\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0633\u0627\u0632\u0645\u0627\u0646 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-run-terraform-on-digitalocean\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-02-17T10:27:41+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/02\/17135515\/TerraformBG.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"admin","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean","datePublished":"2024-02-17T10:27:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/"},"wordCount":329,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/02\/17135515\/TerraformBG.jpg","keywords":["Digitalocean","Terraform"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647","\u0633\u0631\u0648\u0631"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/","name":"So f\u00fchren Sie Terraform auf DigitalOcean aus \u2013 ITPiran-Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/02\/17135515\/TerraformBG.jpg","datePublished":"2024-02-17T10:27:41+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/02\/17135515\/TerraformBG.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/02\/17135515\/TerraformBG.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-run-terraform-on-digitalocean\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc Terraform \u062f\u0631 DigitalOcean"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"Iranische Nachrichten und Artikel zum Thema nachhaltiger Handel","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Nachhaltiger iranischer Unternehmensblog","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"Administrator","url":"https:\/\/www.itpiran.net\/blog\/de\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/14754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/comments?post=14754"}],"version-history":[{"count":1,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/14754\/revisions"}],"predecessor-version":[{"id":14757,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/14754\/revisions\/14757"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media\/14756"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media?parent=14754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/categories?post=14754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/tags?post=14754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}