تيراफورم
| أمر | وصف |
|---|
terraform version | أظهر إصدار Terraform |
terraform -help | عرض معلومات المساعدة |
terraform -help plan | اعرض المساعدة للأمر المحدد |
| أمر | وصف |
|---|
terraform init | تهيئة دليل العمل |
terraform plan | إنشاء خطة التنفيذ |
terraform apply | تطبيق التغييرات |
terraform destroy | تدمير البنية التحتية |
terraform validate | تحقق من صحة التكوين |
terraform fmt | تنسيق ملفات التكوين |
Installation & Setup
| أمر | وصف |
|---|
terraform plan -out=tfplan | احفظ الخطة في ملف |
terraform apply tfplan | تطبيق الخطة المحفوظة |
terraform plan -target=resource.name | خطة مورد محدد |
terraform plan -var="key=value" | التخطيط باستخدام المتغيرات |
terraform plan -var-file="vars.tfvars" | خطط مع ملف متغير |
Core Workflow
| أمر | وصف |
|---|
terraform state list | قائمة الموارد في الولاية |
terraform state show resource.name | عرض تفاصيل المورد |
terraform state mv old_name new_name | نقل المورد في الحالة |
terraform state rm resource.name | إزالة المورد من الحالة |
terraform state pull | تنزيل الحالة البعيدة |
terraform state push | رفع الحالة إلى المكان البعيد |
Basic Operations
| أمر | وصف |
|---|
terraform state backup | إنشاء نسخة احتياطية للحالة |
terraform force-unlock LOCK_ID | فتح الحالة بالقوة |
terraform refresh | قم بتحديث الحالة بالموارد الحقيقية |
Advanced Planning
| أمر | وصف |
|---|
terraform workspace list | قائمة مساحات العمل |
terraform workspace new dev | إنشاء مساحة عمل جديدة |
terraform workspace select dev | التبديل إلى مساحة العمل |
terraform workspace delete dev | حذف مساحة العمل |
terraform workspace show | إظهار مساحة العمل الحالية |
State Management
| أمر | وصف |
|---|
terraform import resource.name id | استيراد المورد الموجود |
terraform import aws_instance.example i-1234567890abcdef0 | استيراد مثيل AWS |
State Operations
| أمر | وصف |
|---|
terraform output | إظهار جميع المخرجات |
terraform output instance_ip | إظهار مخرجات محددة |
terraform output -json | أظهر المخرجات بتنسيق JSON |
### State Backup and Recovery
provider "aws" \\\\{
region = "us-west-2"
\\\\}
resource "aws_instance" "example" \\\\{
ami = "ami-0c55b159cbfafe1d0"
instance_type = "t2.micro"
tags = \\\\{
Name = "example-instance"
\\\\}
\\\\}
output "instance_ip" \\\\{
value = aws_instance.example.public_ip
\\\\}
```## مساحات العمل
## Workspaces
```hcl
variable "instance_type" \\\\{
description = "EC2 instance type"
type = string
default = "t2.micro"
\\\\}
variable "environment" \\\\{
description = "Environment name"
type = string
\\\\}
```## الاستيراد والإخراج
## Import and Output
```hcl
data "aws_ami" "ubuntu" \\\\{
most_recent = true
owners = ["099720109477"] # Canonical
filter \\\\{
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"]
\\\\}
\\\\}
```### استيراد الموارد
### Import Resources
```hcl
module "vpc" \\\\{
source = "terraform-aws-modules/vpc/aws"
name = "my-vpc"
cidr = "10.0.0.0/16"
azs = ["us-west-2a", "us-west-2b"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24"]
enable_nat_gateway = true
enable_vpn_gateway = true
\\\\}
```### المخرجات
### Outputs
```hcl
terraform \\\\{
backend "s3" \\\\{
bucket = "my-terraform-state"
key = "state/terraform.tfstate"
region = "us-west-2"
\\\\}
\\\\}
```## أمثلة التكوين
## Configuration Examples
```hcl
terraform \\\\{
backend "azurerm" \\\\{
resource_group_name = "tfstate"
storage_account_name = "tfstate"
container_name = "tfstate"
key = "prod.terraform.tfstate"
\\\\}
\\\\}
```### مثال أساسي لمثيل AWS EC2
### Basic AWS EC2 Instance
```hcl
terraform \\\\{
backend "gcs" \\\\{
bucket = "tf-state-bucket"
prefix = "terraform/state"
\\\\}
\\\\}
```### المتغيرات
### Variables
```hcl
provider "aws" \\\\{
region = "us-west-2"
profile = "default"
default_tags \\\\{
tags = \\\\{
Environment = "production"
Project = "my-project"
\\\\}
\\\\}
\\\\}
```### مصادر البيانات
### Data Sources
```hcl
provider "azurerm" \\\\{
features \\\\{\\\\}
subscription_id = "00000000-0000-0000-0000-000000000000"
tenant_id = "00000000-0000-0000-0000-000000000000"
\\\\}
```### الوحدات
### Modules
```hcl
provider "google" \\\\{
project = "my-project-id"
region = "us-central1"
zone = "us-central1-c"
\\\\}
```## تكوين الحالة البعيدة
## Remote State Configuration
```hcl
resource "aws_instance" "example" \\\\{
count = var.create_instance ? 1 : 0
ami = data.aws_ami.ubuntu.id
instance_type = var.instance_type
\\\\}
```**حماية الحالة**: استخدم الحالة البعيدة مع التشفير```hcl
resource "aws_instance" "example" \\\\{
for_each = toset(var.instance_names)
ami = data.aws_ami.ubuntu.id
instance_type = var.instance_type
tags = \\\\{
Name = each.key
\\\\}
\\\\}
```**إدارة الأسرار**: استخدم مخازن أسرار خارجية```hcl
resource "aws_security_group" "example" \\\\{
name = "example"
dynamic "ingress" \\\\{
for_each = var.ingress_rules
content \\\\{
from_port = ingress.value.from_port
to_port = ingress.value.to_port
protocol = ingress.value.protocol
cidr_blocks = ingress.value.cidr_blocks
\\\\}
\\\\}
\\\\}
```**التحكم في الوصول**: طبق سياسات IAM المناسبة
| أمر | وصف |
|---------|-------------|
| `terraform validate` | تحقق من بناء الجملة |
| `terraform validate -json` | التحقق باستخدام مخرجات JSON |**مراجعة الكود**: راجع جميع التغييرات في البنية التحتية
| أمر | وصف |
|---------|-------------|
| `terraform plan -detailed-exitcode` | خطط مع أكواد خروج مفصلة |
| `terraform show` | إظهار الحالة الحالية |
| `terraform show -json` | عرض الحالة في JSON |**المسح الأمني**: استخدم أدوات مسح أمنية
### Performance Optimization
| أمر | وصف |
|---------|-------------|
| `tflint` | مراجع Terraform |
| `terraform-docs` | إنشاء توثيق |
| `checkov -f main.tf` | المسح الأمني |
| `tfsec .` | التحليل الأمني |**التوازي**: استخدم
| أمر | وصف |
|---------|-------------|
| `TF_LOG=DEBUG terraform plan` | تمكين التسجيل التفصيلي للتصحيح |
| `TF_LOG=TRACE terraform apply` | تمكين التسجيل التفصيلي |
| `TF_LOG_PATH=terraform.log terraform plan` | سجل في الملف |للنشر الكبير
| أمر | وصف |
|---------|-------------|
| `terraform refresh` | مزامنة الحالة مع الواقع |
| `terraform taint resource.name` | حدد المورد للترفيه |
| `terraform untaint resource.name` | إزالة التلوث من المورد |**الاستهداف**: استخدم ```
project/
├── main.tf # Main configuration
├── variables.tf # Variable definitions
├── outputs.tf # Output definitions
├── versions.tf # Provider versions
├── terraform.tfvars # Variable values
└── modules/
└── vpc/
├── main.tf
├── variables.tf
└── outputs.tf
```للموارد المحددة```hcl
terraform \\\\{
required_version = ">= 1.0"
required_providers \\\\{
aws = \\\\{
source = "hashicorp/aws"
version = "~> 5.0"
\\\\}
\\\\}
\\\\}
```**تقسيم الحالة**: قسّم الحالات الكبيرة إلى حالات أصغر```hcl
resource "aws_instance" "web_server" \\\\{
# Use descriptive names
ami = data.aws_ami.ubuntu.id
instance_type = var.instance_type
tags = \\\\{
Name = "$\\\\{var.project_name\\\\}-web-$\\\\{var.environment\\\\}"
Environment = var.environment
Project = var.project_name
\\\\}
\\\\}
```**تصميم الوحدات**: صمم وحدات قابلة لإعادة الاستخدام
Would you like me to clarify or expand on any part of the translation?`-parallelism` flag for large deployments
2. **Targeting**: Use `-target` for specific resources
3. **State Splitting**: Split large states into smaller ones
4. **Module Design**: Design reusable modules