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/terracognita
Anda 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 install
Ada 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 configuration
Jika Anda pengguna macOS dan menggunakan Homebrew, Anda dapat menginstal melalui perintah brew:
brew install terracognita
Kegunaan 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_count
Anda 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 -h
Contoh:
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.tf
Versi 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.