Pengurusan Negeri Terraform

Pengurusan Negeri Terraform



Infrastruktur sebagai Kod ialah prosedur mengurus dan menyediakan infrastruktur IT melalui kod yang membantu mengatasi kerumitan peruntukan berskala besar dan mengurus sumber IT secara manual dan berulang kali. Terraform oleh HashiCorp ialah alat IaC sumber terbuka yang menggunakan sistem pengurusan keadaan untuk menjejaki perubahan dan mengurus fail keadaan. Sistem pengurusan negerinya ialah salah satu ciri utamanya dan membantu menjejaki perubahan infrastruktur dengan berkesan. Artikel ini menyelami cara pengurusan negeri Terraform berfungsi dan cara menggunakannya dengan berkesan.

Negeri Terraform

Keadaan semasa infrastruktur kami, yang merangkumi maklumat tentang sumber yang kami tentukan dalam kod kami, direkodkan sebagai keadaan Terraform. Terraform menggunakan keadaan ini untuk menentukan perubahan yang diperlukan untuk membawa infrastruktur kami ke keadaan yang diingini apabila perintah seperti Terraform 'digunakan' dilaksanakan. Selepas melaksanakan perubahan (buat, ubah suai dan padam), Terraform mengemas kini fail keadaan dengan keadaan baharu infrastruktur anda.

Untuk memahami konsep dengan jelas, mari kita ambil contoh:







sumber 'fail_tempatan' 'John' {

nama fail = '/home/John.txt'

kandungan = 'Saya suka haiwan peliharaan'

}

Di sini, kami mencipta fail Terraform yang dipanggil 'main.tf'. Di dalamnya terdapat sumber jenis fail_lokal bernama 'John' dengan dua atribut: nama fail dan kandungan.



Jenis sumber local_file digunakan untuk membuat fail pada sistem fail tempatan mesin tempat Terraform sedang berjalan. Dalam kes ini, fail dibuat dengan nama 'John.txt' dalam direktori '/home', dan kandungan fail ialah 'Saya suka haiwan peliharaan'.



Sekarang, mari kita laksanakan aliran Terraform - Terraform init, rancang dan gunakan. Apabila kami melaksanakan perintah 'apply' Terraform dalam projek kami buat kali pertama, Terraform secara automatik mencipta fail keadaan yang dipanggil 'terraform.tfstate' dalam direktori akar projek Terraform kami. Ia termasuk semua maklumat tentang keadaan semasa infrastruktur kami dalam format JSON.





Berikut ialah fail keadaan untuk sumber yang kami buat:



Sekarang, katakan kita mahu mengalih keluar sumber semasa dan mencipta satu lagi sumber jenis random_pet bernama 'my-pet' dengan atribut - awalan, panjang dan pemisah.

sumber 'random_pet' 'haiwan peliharaan saya' {

awalan = 'Encik'

panjang = '1'

pemisah = '.'

}

Di sini, kami mengalih keluar sumber local_file dan menambah sumber random_pet. Keadaan yang kami kehendaki ialah hanya mempunyai sumber random_pet. Mari laksanakan Terraform init, rancang dan gunakan arahan.

Seperti yang ditunjukkan dalam ilustrasi sebelumnya, apabila kita melaksanakan perintah 'pelan' Terraform, ia menunjukkan tindakan yang diambil oleh Terraform untuk sampai ke keadaan yang diingini. Apabila kami menjalankan perintah 'apply' Terraform, sumber 'my-pet' dicipta dan sumber 'John' dialih keluar. Selain itu, fail keadaan dikemas kini dengan memusnahkan metadata sumber local_file dan menambah metadata sumber random_pet.

Berikut ialah kandungan fail keadaan yang dikemas kini:

Bagaimana Terraform the Manage State Works?

Menggunakan bahagian belakang, Terraform mengurus negeri. Bahagian belakang ialah perkhidmatan jauh atau sistem fail tempatan yang digunakan Terraform untuk menyimpan dan mendapatkan semula data keadaan. Bergantung pada keperluan kami, kami boleh memilih bahagian belakang yang sesuai.

Terraform menyokong beberapa bahagian belakang terbina dalam termasuk tempatan, Amazon S3, HashiCorp Consul, Vault dan Azure Storage. Kami juga boleh membuat bahagian belakang tersuai jika tiada pilihan terbina dalam memenuhi keperluan.

Dalam contoh sebelumnya, fail keadaan telah disimpan dalam bahagian belakang tempatan. Tetapi menyimpannya dalam bahagian belakang jauh adalah amalan terbaik kerana ia memerlukan kerjasama dan meningkatkan keselamatan.

Kepentingan Pengurusan Negeri

Pengurusan negeri dalam alatan seperti Terraform adalah penting kerana perkara utama berikut:

Tentukan Keadaan Semasa Infrastruktur Anda

Fail keadaan menyediakan petikan tepat sumber sedia ada dan atribut semasanya. Data ini penting dalam memahami infrastruktur kami dan memastikan ia berada dalam keadaan yang dikehendaki.

Jejaki Perubahan pada Infrastruktur Dari Masa

Setiap kali kami menggunakan perubahan menggunakan Terraform, fail keadaan dikemas kini untuk menggambarkan keadaan baharu infrastruktur kami. Ini membolehkan kami menjejaki bagaimana infrastruktur kami telah berkembang dan menyediakan jejak audit bagi semua perubahan.

Automasi

Menentukan keadaan infrastruktur yang anda inginkan dalam kod membolehkan kami mengautomasikan penciptaan dan pengurusan infrastruktur kami. Pengurusan negeri menjamin bahawa infrastruktur kami kekal dikehendaki, walaupun perubahan dibuat dari semasa ke semasa.

Urus Ketergantungan

Dengan Terraform, kami boleh mentakrifkan perhubungan antara sumber dalam fail konfigurasi kami dan Terraform menggunakan fail keadaan untuk memastikan perhubungan tersebut dikekalkan. Ini memastikan bahawa perubahan kepada satu sumber tidak secara tidak sengaja menjejaskan sumber lain.

Pemulihan bencana

Jika kegagalan atau gangguan berlaku, kami boleh menggunakan fail keadaan untuk mencipta semula infrastruktur dalam keadaan yang diketahui. Ini boleh membantu untuk meminimumkan masa henti dan memastikan infrastruktur kami dipulihkan dengan cepat dan cekap.

Amalan Terbaik untuk Pengurusan Negeri yang Berkesan

Berikut ialah beberapa petua yang boleh kami ikuti untuk mengurus negeri dengan berkesan:

Gunakan Bahagian Belakang Jauh

Bahagian belakang jauh memberikan beberapa faedah berbanding hujung belakang tempatan. Ia membolehkan berbilang pengguna untuk bekerja pada infrastruktur yang sama dan mereka juga menawarkan keselamatan dan kebolehpercayaan yang lebih baik daripada bahagian belakang tempatan.

Dayakan Versi

Dengan membuat versi fail keadaan, kami boleh menjejaki perubahan dari semasa ke semasa dan kembali ke versi sebelumnya jika perlu. Selain itu, versi menyediakan jejak audit dan membantu memastikan bahawa perubahan didokumenkan dengan sewajarnya.

Gunakan Mekanisme Mengunci

Kami boleh menggunakan mekanisme penguncian yang membantu mengelakkan konflik apabila berbilang pengguna bekerja pada infrastruktur yang sama. Terraform menyokong beberapa alat pengunci termasuk DynamoDB, Consul dan S3.

Sandarkan Fail Negeri Anda

Kami boleh pulih daripada rasuah data jika kami membuat sandaran fail keadaan dengan kerap. Kami mesti menyimpan sandaran di lokasi yang selamat dan mengikuti sebarang keperluan pematuhan yang berkaitan.

Kesimpulan

Kami mempunyai pengenalan ringkas kepada IaC dan Terraform sambil memahami fail keadaan dan menguruskannya melalui contoh. Memahami cara Terraform berfungsi di negeri ini boleh membantu kami mengelakkan perangkap biasa dan memastikan infrastruktur kami kekal dikehendaki. Dengan mengikuti amalan terbaik untuk mengurus negeri, kami boleh menggunakan Terraform dengan yakin dan berkesan.