Tài liệu Terraform Cloud che đậy điều này, và nó không bị cấm, nhưng nó cũng không được khuyến khích chính xác. Có 2 phương pháp được đề cập trong các tài liệu đó, sử dụng cục bộ-exec
nhà cung cấp (việc sử dụng được mô tả là "phương sách cuối cùng" và có khả năng gây ra sự cố) hoặc sử dụng mô hình con. Các tài liệu cũng đề cập rằng chỉ nên sử dụng "Các tệp nhị phân độc lập". rất may aws-iam-authenticator
thực sự có sẵn dưới dạng nhị phân độc lập tĩnh cho nhiều hệ thống. Thật không may, tài liệu, ngoài việc đề cập đến các mô hình con, không bao gồm các bước cần thiết để thực hiện công việc này.
Hy vọng rằng Hashicorp sẽ cung cấp một cách ít hack hơn và được hỗ trợ nhiều hơn để tùy chỉnh các môi trường này trong tương lai, nhưng cho đến lúc đó...
Trước tiên, chúng tôi cần một tệp nhị phân tương thích và mặc dù chúng tôi không biết chính xác Hệ điều hành/Hình ảnh nào đang được chạy bởi các phiên bản Đám mây Terraform, nhưng chúng tôi biết từ tài liệu rằng nó tương thích với Linux x86_64. Do đó, kể từ khi aws-iam-authenticator
có sẵn dưới dạng tệp nhị phân tĩnh độc lập cho Linux x86_64, điều chúng tôi cần làm là đưa tệp nhị phân đó vào môi trường, sau đó cung cấp tệp nhị phân đó cho cá thể nói chung (vì chúng tôi không kiểm soát cách gọi cụ thể nó).
Terraform Cloud cho phép bạn thao tác các biến môi trường, chúng ta có thể đạt được điều này bằng cách thao tác $PATH
biến khi chúng ta có nhị phân trên máy chủ. Cách đơn giản nhất để làm điều này là chỉ cần thêm tệp nhị phân vào cấu hình bên trong một thư mục, tuy nhiên, nếu bạn muốn sử dụng cách này cho nhiều cấu hình mà không phải quản lý tệp nhị phân riêng trong từng cấu hình (hãy tưởng tượng phải cập nhật tất cả chúng một cách riêng biệt), Tôi khuyên bạn nên làm điều này như một mô-đun phụ trong kho git của bạn.
Đây là một ví dụ về một repo công khai chứa nhị phân, bạn sẽ thêm phần này vào repo của mình dưới dạng mô hình con như sau:
mô hình con git thêm https://github.com/comerford/tc-tools.git
Sau đó, bạn có thể cam kết/đẩy như bình thường, đảm bảo rằng cài đặt kiểm soát phiên bản cho không gian làm việc của bạn được đặt thành sao chép các mô hình con như bên dưới:
Cuối cùng, để đảm bảo rằng dù nhị phân được gọi như thế nào thì nó vẫn hoạt động, bạn cần thực hiện các thay đổi đối với CON ĐƯỜNG
biến môi trường để nó nhìn thấy tệp nhị phân mới của bạn, nhưng cũng không phá vỡ bất kỳ thứ gì. Đây là ENV
biến phù hợp với tôi với mô hình con ở trên:
Để cung cấp chuỗi đó ở định dạng dễ sử dụng hơn:
"~/tc-tools:/home/terraform/tc-tools:./tc-tools:/usr/bin:/usr/local/bin:/bin:$PATH"
Nó đang phỏng đoán các đường dẫn có khả năng xảy ra và tôi không chắc chắn 100% đường dẫn nào hoạt động vì tôi không muốn gây ra các lần chạy bị hỏng vì lợi ích của một vài ký tự.
Mặc dù điều này là đặc biệt cho aws-iam-authenticator
nhị phân, nó sẽ hoạt động như một phương pháp chung cho bất kỳ tệp nhị phân tĩnh Linux x86_64 nào mà bạn cần.