Rumah >hujung hadapan web >tutorial js >Penggunaan Automatik himpunan Meteor.js menggunakan Terraform
Hei kawan! Teknologi boleh menjadi rumit, tetapi anda mempunyai ini. Anggap ini sebagai sembang teknologi sambil minum kopi...atau kegemaran peribadi saya, chaay (teh).
Mari kita mendalami cara mengautomasikan penggunaan projek Meteor.js anda pada AWS. Pada penghujung ini, anda akan berasa seperti ninja penyebaran awan. sedia? Jom!
Sebelum menyingsing lengan baju, mari kumpulkan barang-barang kami. Ini senarai semaknya:
Kelayakan AWS: Pastikan anda mempunyai AWS CLI dikonfigurasikan dan sedia untuk dilancarkan.
Terraform: Muat turun dan pasang Terraform jika anda belum melakukannya.
Pasangan Kunci SSH: Hasilkan pasangan kunci SSH. Simpan kunci peribadi berguna untuk menyambung ke tika anda kemudian.
Nama Domain: Ada domain? Hebat! Pastikan anda boleh mengemas kini rekod Anya.
Himpunan Meteor: Sediakan berkas projek Meteor.js anda menggunakan arahan ini:
meteor build --server-only --directory ~/path/to/Dockerfile
Dapatkan semuanya? Hebat! Mari mula membina.
Inilah perjalanan yang akan kami lalui:
Cukup mudah, bukan? Mari kita pecahkan langkah demi langkah.
Mulakan dengan mengatur projek Terraform anda. Buat struktur direktori seperti ini:
project-directory/ ├── main.tf ├── variables.tf ├── outputs.tf ├── run.sh
Dalam pembolehubah.tf, tentukan semua pembolehubah yang kami perlukan. Ini menjadikan persediaan fleksibel:
variable "server_name" { description = "Server created by Terraform" type = string default = "AutomatedDeployment" } variable "key_pair_name" { description = "Key pair name" type = string default = "tf-key-pair" } variable "domain_name" { description = "Your domain name" type = string default = "xyz.domain.com" }
Di sinilah keajaiban berlaku. Fail ini menyediakan segala-galanya: contoh EC2, kumpulan keselamatan dan langkah peruntukan.
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.16" } } required_version = ">= 1.2.0" } provider "aws" { region = "ca-central-1" } resource "aws_security_group" "tf-security-group" { name = var.server_name description = "Security group for ${var.server_name}" ingress { from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } ingress { from_port = 80 to_port = 80 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } ingress { from_port = 443 to_port = 443 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } } resource "aws_instance" "tf-created-instance" { ami = "ami-0083d3f8b2a6c7a81" instance_type = "t2.micro" key_name = var.key_pair_name tags = { Name = var.server_name } }
Tentukan apa yang Terraform harus keluarkan selepas dijalankan:
output "public_ip" { value = aws_instance.tf-created-instance.public_ip description = "The public IP address of the instance" }
Dalam run.sh, tulis skrip untuk mengautomasikan perintah Terraform dan mengendalikan penyebaran DNS:
#!/bin/bash set -e DOMAIN="your.domain.com" terraform apply -auto-approve echo "Waiting for DNS propagation..." OLD_IP=$(dig +short $DOMAIN) while true; do sleep 10 NEW_IP=$(dig +short $DOMAIN) [ "$NEW_IP" != "$OLD_IP" ] && break echo "DNS records not updated yet. Retrying..." done terraform apply -auto-approve
Berikut ialah contoh Fail Docker untuk membungkus apl Meteor.js anda:
meteor build --server-only --directory ~/path/to/Dockerfile
project-directory/ ├── main.tf ├── variables.tf ├── outputs.tf ├── run.sh
variable "server_name" { description = "Server created by Terraform" type = string default = "AutomatedDeployment" } variable "key_pair_name" { description = "Key pair name" type = string default = "tf-key-pair" } variable "domain_name" { description = "Your domain name" type = string default = "xyz.domain.com" }
Kemas Kini DNS:
Kemas kini rekod A domain anda untuk menunjuk ke IP awam tika EC2.
Sahkan:
Setelah penyebaran DNS selesai, sahkan penggunaan anda dengan melawati domain dalam penyemak imbas.
Dan begitulah! Penyerahan apl Meteor.js automatik sepenuhnya pada AWS menggunakan Terraform dan Docker. Ingat, setiap cabaran hanyalah satu lagi peluang untuk belajar. Jika anda terkena batu, teguk chaay dan selesaikan masalah seperti pakar teknologi anda. Raikan kejayaan penggunaan anda dan siarkan di mana-mana sahaja!?
Atas ialah kandungan terperinci Penggunaan Automatik himpunan Meteor.js menggunakan Terraform. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!