
Impor infrastruktur Cloud Anda saat ini ke konfigurasi Infrastruktur Sebagai Kode Terraform (HCL) atau/dan ke Status Terraform.
Di Cycloid, Infrastruktur Sebagai Kode sudah menjadi DNA perusahaan sejak awal. Untuk membantu pelanggan baru kami mengadopsi praktik terbaik ini, kami memutuskan untuk membangun Terracognita untuk mengubah infrastruktur yang ada di Infrastruktur Cloud menjadi kode Terraform secara otomatis, dengan mengandalkan penyedia Terraform yang dibangun oleh komunitas. Kami fokus pada AWS, GCP, Azure, dan Vmware.
Kami memutuskan untuk menggunakan alat ini secara Open Source karena kami yakin alat ini akan membantu orang untuk mengadopsi IaC dengan cara yang mudah. Cycloid menyediakan alat ini untuk memungkinkan orang mengimpor infrastruktur mereka ke saluran pipa Cycloid, memungkinkan mereka membuat diagram infrastruktur dan mengelola semua siklus hidup infra/aplikasi dari satu antarmuka.
Jika Anda tertarik untuk berkontribusi pada Terracognita atau sekadar ingin tahu tentang apa yang akan terjadi selanjutnya, lihat peta jalan publik. Untuk ikhtisar tingkat tinggi, lihat Apa itu Terracognita? posting blog atau tonton video ini.
Terracognita saat ini mengimpor penyedia cloud AWS, GCP, AzureRM, dan VMware vSphere sebagai sumber daya/status Terraform (v1.1.9). Silakan lihat versi berikut sebagai berikut:
Penyedia:
Kunjungi halaman rilis untuk memilih sistem, arsitektur, dan versi yang Anda perlukan. Untuk menarik rilis terbaru:
curl -L https://github.com/cycloidio/terracognita/releases/latest/download/terracognita-linux-amd64.tar.gz -o terracognita-linux-amd64.tar.gz
tar -xf terracognita-linux-amd64.tar.gz
chmod u+x terracognita-linux-amd64
sudo mv terracognita-linux-amd64 /usr/local/bin/terracognitaAnda dapat membangun dan menginstal dengan sumber terbaru, Anda akan menikmati fitur baru dan perbaikan bug. Ini menggunakan Modul Go, jadi diperlukan GO 1.17+.
git clone https://github.com/cycloidio/terracognita
cd terracognita
make installAda dua entri di AUR: terracognita-git (menargetkan git commit terbaru) dan terracognita (menargetkan rilis stabil terbaru).
yay -Ss terracognita
aur/terracognita 1:0.3.0-1 (+0 0.00%)
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
aur/terracognita-git 1:v0.3.0.r27.gdfc5a99-1 (+0 0.00%)
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configurationJika Anda pengguna macOS dan menggunakan Homebrew, Anda dapat menginstal melalui perintah brew:
brew install terracognitaKegunaan utama Terracognita adalah:
terracognita [TERRAFORM_PROVIDER] [--flags] Anda mengganti TERRAFORM_PROVIDER dengan Penyedia yang ingin Anda gunakan (misalnya aws ) lalu menambahkan tanda lain yang diperlukan. Setiap Penyedia memiliki tanda yang berbeda dan tanda wajib yang berbeda.
Yang lebih umum adalah --hcl atau --module dan --tfstate yang menunjukkan file keluaran untuk HCL (atau modul) dan TFState yang akan dihasilkan.
Anda juga dapat --include atau --exclude beberapa sumber daya dengan menggunakan nama Terraform yang dimilikinya seperti aws_instance .
Untuk opsi lainnya, Anda selalu dapat menggunakan terracognita --help dan terracognita [TERRAFORM_PROVIDER] --help untuk dokumentasi spesifik Penyedia.
Kami juga telah make help yang memberikan beberapa bantuan dalam menggunakan basis kode Terracognita yang sebenarnya
Terracognita dapat membuat Modul Terraform secara langsung saat mengimpor. Untuk mengaktifkan fitur ini Anda harus menggunakan --module {module/path/name} dan kemudian pada jalur spesifik tersebut adalah tempat modul akan dibuat. Jalur harus berupa direktori atau jalur yang tidak ada (akan dibuat), konten jalur akan dihapus (setelah konfirmasi pengguna) sehingga kita dapat melakukan impor bersih.
Struktur keluarannya akan terlihat seperti (memiliki --module test ) di mana setiap file mengumpulkan sumber daya dari "kategori" yang sama:
test/
├── module-test
│ ├── autoscaling.tf
│ ├── cloud_front.tf
│ ├── cloud_watch.tf
│ ├── ec2.tf
│ ├── elastic_load_balancing_v2_alb_nlb.tf
│ ├── iam.tf
│ ├── rds.tf
│ ├── route53_resolver.tf
│ ├── route53.tf
│ ├── s3.tf
│ ├── ses.tf
│ └── variables.tf
└── module.tf
Secara default semua atribut akan diubah untuk variabel, variabel tersebut kemudian akan berada di module-{name}/variables.tf dan diekspos di module.tf seperti:
module "test" {
# aws_instance_front_instance_type = "t2.small"
[ ... ]
source = " module-test "
} Jika Anda ingin mengubah perilaku ini, karena untuk infrastruktur besar ini akan membuat banyak variabel, Anda dapat menggunakan --module-variables path/to/file dan file tersebut akan memiliki daftar atribut yang sebenarnya ingin Anda gunakan sebagai variabel, bisa dalam JSON atau YAML:
{
"aws_instance" : [
" instance_type " ,
" cpu_threads_per_core " ,
" cpu_core_count "
]
} aws_instance :
- instance_type
- cpu_threads_per_core
- cpu_core_countAnda dapat menggunakan langsung gambar yang dibuat, atau Anda dapat membuatnya sendiri. Untuk membangun image Docker Anda, jalankan saja:
make dbuild Dan tergantung pada gambar yang ingin Anda gunakan ( cycloid/terracognita atau terracognita build lokal Anda):
docker run cycloid/terracognita -hContoh:
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export AWS_DEFAULT_REGION=xx-yyyy-0
docker run
-v " ${PWD} " /outputs:/app/outputs
cycloid/terracognita aws
--hcl app/outputs/resources.tfVersi lokal dapat digunakan dengan cara yang sama seperti buruh pelabuhan. Anda hanya perlu membangunnya secara lokal.
Pada folder yang sama dengan yang Anda impor, Anda dapat menjalankan perintah terraform init & plan:
terraform init
terraform plan -var access_key= $AWS_ACCESS_KEY_ID -var secret_key= $AWS_SECRET_ACCESS_KEY -var region= $AWS_DEFAULT_REGION Silakan lihat file LISENSI MIT.
Semua perubahan penting pada proyek ini akan didokumentasikan dalam file ini.
Formatnya didasarkan pada Keep a Changelog, dan proyek ini menganut Versi Semantik.
Cycloid adalah rekayasa platform berkelanjutan yang memungkinkan siapa pun berinteraksi dengan alat, otomatisasi, dan cloud tanpa harus menjadi ahli dan menghormati praktik terbaik. Di dalam portal layanan mandiri, Anda menemukan beberapa modul seputar Tata Kelola, penerapan, operasi, Finops, dan GreenOps. InfraImport di dalam Cycloid adalah representasi visual dari Terracognita.
Saat ini, kami memiliki tiga alat sumber terbuka:
...dan fungsionalitas masing-masing juga tertanam dalam platform kami, yang dapat Anda ketahui lebih lanjut di sini.