pembungkus dan terraform: alat yang berkuasa untuk penyebaran devOps yang cekap
Artikel ini membincangkan cara menggunakan alat sumber terbuka DevOps Packer dan Terraform untuk bekerjasama dalam membina dan menguruskan infrastruktur untuk mencapai penggunaan aplikasi yang cekap.
mata teras:
- Gabungan Packer dan Terraform: Packer digunakan untuk membuat imej mesin yang mengandungi perisian dan konfigurasi yang diperlukan, sementara Terraform menggunakan imej -imej ini untuk membina infrastruktur sebenar (seperti pelayan atau bekas).
- Amalan DevOps: Mengambil pembinaan aplikasi PHP sebagai contoh, artikel menunjukkan proses lengkap menggunakan Packer untuk membina imej dan menggunakan infrastruktur dengan Terraform, dengan berkesan mempermudah pengurusan kitaran pelepasan, kemas kini infrastruktur, dan meningkatkan ketersediaan sistem.
- Cabaran dan Kelebihan: Packer dan Terraform, walaupun kuat dan fleksibel, juga memerlukan pengetahuan teknikal tertentu untuk digunakan dengan berkesan, dan memerlukan pengurusan fail konfigurasi dan status yang teliti, yang boleh menjadi rumit dalam penggunaan yang besar. Walau bagaimanapun, mereka masih mempunyai kelebihan yang ketara dalam menjimatkan masa, mengurangkan kesilapan, dan meningkatkan kestabilan penempatan.
Packer PENGENALAN:
Packer adalah alat DevOps sumber terbuka yang dibangunkan oleh Hashicorp. Perisian ini bersesuaian dengan platform dan boleh membuat pelbagai imej selari. Pemasangan menggunakan homebrew sangat mudah:. Packer mencipta imej "siap sedia" yang mengandungi perisian tambahan yang diperlukan oleh sistem operasi dan aplikasi, sama seperti membuat pengedaran tersuai. Sebagai contoh, anda boleh membuat imej Debian dengan mudah yang mengandungi aplikasi PHP tersuai. brew install packer
Pengenalan kepada Terraform:
Penyebaran terdiri daripada dua tugas utama: pembungkusan aplikasi ke dalam persekitaran yang betul (membuat imej), dan membuat infrastruktur (pelayan) yang menjalankan aplikasi. Terraform juga dari Hashicorp, berdasarkan prinsip yang sama seperti Packer, yang membolehkan anda membina infrastruktur di Alibaba Cloud menggunakan hanya satu profil format TF tunggal, yang memudahkan kawalan versi dan mempunyai pemahaman yang jelas tentang bagaimana aplikasi asas berfungsi. Untuk pemasangan Terraform dan konfigurasi pembekal rasmi Alibaba Cloud, sila rujuk artikel lain yang berkaitan.
sasaran:
Tutorial ini akan mencipta dan menggunakan aplikasi PHP yang mudah di DevOps, yang meliputi segala -galanya daripada menjalankan perisian untuk menyokong infrastruktur.
Langkah:
Untuk memudahkan proses, kami akan membuat aplikasi berasaskan docker untuk mendapatkan data cuaca METAR dari lapangan terbang (menggunakan kod lapangan terbang ICAO dan mendapatkan data dari Perkhidmatan Cuaca Kebangsaan AS). Kami kemudian akan membuat imej menggunakan Ubuntu dan Packer dan menggunakan infrastruktur menggunakan imej dan terraform itu.
PHP Aplikasi:
Bina imej dengan Packer: 3
Dalam direktori yang sama, buat fail yang bernama Base-Setup, dengan kandungan berikut:
{ "variables": { "access_key": "{{env `ALICLOUD_ACCESS_KEY`}}", "region": "{{env `ALICLOUD_REGION`}}", "secret_key": "{{env `ALICLOUD_SECRET_KEY`}}" }, "builders": [ { "type": "alicloud-ecs", "access_key": "{{user `access_key`}}", "secret_key": "{{user `secret_key`}}", "region":"{{user `region`}}", "image_name": "metar_app", "source_image": "ubuntu_16_0402_64_20G_alibase_20180409.vhd", "ssh_username": "root", "instance_type": "ecs.t5-lc1m1.small", "internet_charge_type": "PayByTraffic", "io_optimized": "true" } ], "provisioners": [ { "type": "shell", "script": "base-setup" } ] }
Apabila anda menyediakan kedua -dua fail ini, jalankan
dan tunggu mereka selesai. Perhatikan bahawa untuk ini berkuatkuasa, anda perlu menetapkan tiga pembolehubah persekitaran dalam komputer anda:#!/usr/bin/env bash apt-get update && apt-get install -y apt-transport-https ca-certificates curl git-core software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" apt-get update && apt-get install -y docker-ce docker-compose curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose mkdir /var/docker git clone https://github.com/roura356a/metar.git /var/docker/metar,
, dan packer build metar-build.json
. Langkah ini mengambil sedikit masa kerana ia mewujudkan contoh ECS, memasang semua perisian di atasnya, kemudian menghentikan contoh, membuat gambarnya, dan akhirnya mencipta imej seluruh sistem. Selepas imej dibuat, Packer akan mengeluarkan ALICLOUD_REGION
. ALICLOUD_ACCESS_KEY
ALICLOUD_SECRET_KEY
==> Builds finished
menggunakan infrastruktur dengan terraform:
Sekarang, dalam folder yang sama, buat fail bernama main.tf, dengan kandungan berikut:
Dalam direktori yang sama, buat fail bernama pengguna data, dengan kandungan berikut:
provider "alicloud" {} data "alicloud_images" "search" { name_regex = "metar_app" } data "alicloud_instance_types" "search" { instance_type_family = "ecs.xn4" cpu_core_count = 1 memory_size = 1 } data "alicloud_security_groups" "search" {} data "alicloud_vswitches" "search" {} resource "alicloud_instance" "app" { instance_name = "metar_app" image_id = "${data.alicloud_images.search.images.0.image_id}" instance_type = "${data.alicloud_instance_types.search.instance_types.0.id}" vswitch_id = "${data.alicloud_vswitches.search.vswitches.0.id}" security_groups = [ "${data.alicloud_security_groups.search.groups.0.id}" ] internet_max_bandwidth_out = 100 password = "Test1234!" user_data = "${file("user-data")}" } output "ip" { value = "${alicloud_instance.app.public_ip}" }
Sekarang, struktur fail anda sepatutnya kelihatan seperti ini:
#!/usr/bin/env bash cd /var/docker/metar && docker-compose up -d
Run
, kemudian jalankan<code>metar_app/ ├── metar-build.json ├── base-setup ├── main.tf └── user-data</code>untuk memeriksa sama ada semuanya normal, dan akhirnya berjalan
untuk memulakan proses penempatan. terraform init
terraform plan
Selepas infrastruktur dibina, Terraform akan mengeluarkan alamat IP contoh ECS yang baru dibuat, contohnya: 111.111.111.111.111. terraform apply
ujian:
Jika semuanya berjalan lancar, anda boleh menyemak laporan cuaca terkini untuk Lapangan Terbang San Sebastian (terletak di utara Sepanyol dengan laluan masuk yang indah).
Ringkasan:
Anda hampir tidak mempunyai usaha untuk melengkapkan penyebaran penuh permohonan anda. Ini akan memudahkan kitaran pelepasan penyelenggaraan, kemas kini infrastruktur, dan meningkatkan ketersediaan sistem tanpa perlu memproses host dan arahan Linux secara langsung.
Soalan -soalan yang sering ditanya mengenai Packer dan Terraform:
- Apakah perbezaan utama antara Packer dan Terraform? Packer digunakan untuk mencipta imej mesin yang sama di pelbagai platform, sementara Terraform digunakan untuk membina, menukar dan mengawal versi infrastruktur dengan selamat dan cekap.
- Bagaimana Packer berfungsi bersempena dengan Terraform? Packer mencipta imej mesin, dan Terraform menggunakan imej -imej ini untuk membuat infrastruktur.
- Bilakah ia dikonfigurasikan dalam Packer, dan bilakah ia dikonfigurasi dalam Terraform? Konfigurasi dalam Packer biasanya digunakan untuk memasang dan mengkonfigurasi perisian dalam imej mesin (sebelum infrastruktur dibuat), sementara konfigurasi di Terraform biasanya digunakan untuk melaksanakan tugas selepas infrastruktur dibuat.
- Bolehkah anda menggunakan Packer tanpa Terraform? Ya.
- Bagaimana untuk menggunakan aplikasi menggunakan Packer dan Terraform? Pertama buat imej mesin menggunakan Packer, kemudian Terraform menggunakan imej itu untuk membuat infrastruktur, dan akhirnya menggunakan aplikasi ke pelayan atau bekas yang baru dibuat.
- Apakah faedah menggunakan Packer dan Terraform untuk penggunaan aplikasi? Automasi, menjimatkan masa, mengurangkan kesilapan, meningkatkan kebolehpercayaan dan kestabilan, menyokong pelbagai platform dan penyedia perkhidmatan.
- Apakah batasan dan cabaran menggunakan Packer dan Terraform? Beberapa pengetahuan teknikal diperlukan, fail konfigurasi dan fail status perlu diuruskan dengan berhati -hati, dan tidak semua platform atau penyedia menyokong semua ciri dan pilihan.
- Bagaimana untuk memulakan dengan Packer dan Terraform? Pasang alat dan buat fail konfigurasi.
- Bolehkah pembungkus dan terraform digunakan dengan alat DevOps lain? Ya.
- Apakah amalan terbaik untuk menggunakan Packer dan Terraform? Pastikan fail konfigurasi mudah dan modular, gunakan kawalan versi, menguji dan mengesahkan konfigurasi secara kerap, menggunakan konvensyen penamaan yang konsisten, konfigurasi dokumen dan tetapan infrastruktur.
Atas ialah kandungan terperinci Cara Menyebarkan Aplikasi Dengan Mudah Dengan Packer dan Terraform. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Tinggal maklumat mengenai trend teknologi terkini dengan surat berita pemaju teratas ini! Senarai ini menawarkan sesuatu untuk semua orang, dari peminat AI ke pemaju backend dan frontend yang berpengalaman. Pilih kegemaran anda dan menjimatkan masa mencari rel

Tutorial ini membimbing anda melalui membina saluran paip pemprosesan imej tanpa pelayan menggunakan perkhidmatan AWS. Kami akan membuat frontend next.js yang digunakan pada kluster ECS Fargate, berinteraksi dengan Gateway API, Fungsi Lambda, Bucket S3, dan DynamoDB. Th

Program perintis ini, kerjasama antara CNCF (Yayasan Pengkomputeran Native Cloud), pengkomputeran ampere, equinix metal, dan digerakkan, menyelaraskan ARM64 CI/CD untuk projek GitHub CNCF. Inisiatif ini menangani kebimbangan keselamatan dan prestasi lim


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa
