LocalStack 扩展:LocalStack Terraform 初始化
项目描述
在LocalStack初始化钩子中使用Terraform文件
LocalStack扩展,用于在初始化钩子中使用Terraform文件。
[!WARNING] 此扩展是实验性的,可能会更改。
[!NOTE] 该扩展专为简单的自包含Terraform文件设计,不适用于复杂的项目或模块。如果您有较大的项目,则建议在主机上运行它们。
使用方法
- 使用
EXTENSION_AUTO_INSTALL="localstack-extension-terraform-init"
启动LocalStack - 将
main.tf
文件挂载到/etc/localstack/init/ready.d
当LocalStack启动时,它将安装扩展,扩展程序反过来将安装terraform
和tflocal
到容器中。如果初始化阶段目录之一包含main.tf
,则扩展程序将在该目录上运行tflocal init
和tflocal apply
。
[注意] 如果您将整个文件夹挂载到
/etc/localstack/init/ready.d
,则 Terraform 状态文件将在您的宿主目录中创建。这些文件由容器内的容器用户创建,因此您可能需要sudo
来从您的宿主中删除这些文件。如果您只挂载main.tf
文件,而不是整个目录,则每次在tflocal init
期间,localstack 都必须下载 AWS Terraform 提供程序。
示例
示例 main.tf
resource "aws_s3_bucket" "example" {
bucket = "my-tf-test-bucket"
tags = {
Name = "My bucket"
Environment = "Dev"
}
}
使用挂载的 main.tf
启动 LocalStack Pro
localstack start \
-e EXTENSION_AUTO_INSTALL="localstack-extension-terraform-init" \
-v ./main.tf:/etc/localstack/init/ready.d/main.tf
或者,如果您使用 docker-compose 文件
services:
localstack:
container_name: "localstack-main"
image: localstack/localstack-pro # required for Pro
ports:
- "127.0.0.1:4566:4566" # LocalStack Gateway
environment:
# Activate LocalStack Pro: https://docs.localstack.cloud/getting-started/auth-token/
- LOCALSTACK_AUTH_TOKEN=${LOCALSTACK_AUTH_TOKEN:?}
- EXTENSION_AUTO_LOAD=localstack-extension-terraform-init"
volumes:
# you could also place your main.tf in `./ready.d` and set "./ready.d:/etc/localstack/init/ready.d"
- "./main.tf:/etc/localstack/init/ready.d/main.tf"
- "./volume:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
在新的终端窗口中,您可以等待 localstack 完成,然后打印创建的 s3 存储桶。
localstack wait && awslocal s3 ls
日志应显示类似以下内容
2024-06-26T20:36:19.946 INFO --- [ady_monitor)] l.extension : Applying terraform project from file /etc/localstack/init/ready.d/main.tf
2024-06-26T20:36:19.946 DEBUG --- [ady_monitor)] localstack.utils.run : Executing command: ['tflocal', '-chdir=/etc/localstack/init/ready.d', 'init', '-input=false']
2024-06-26T20:36:26.864 DEBUG --- [ady_monitor)] localstack.utils.run : Executing command: ['tflocal', '-chdir=/etc/localstack/init/ready.d', 'apply', '-auto-approve']
安装本地开发版本
要将扩展安装到开发者模式的 localstack 中,您需要 Python 3.10,并在扩展项目下创建一个虚拟环境。
在新生成的项目中,只需运行
make install
然后,为了启用 LocalStack 中的扩展,运行
localstack extensions dev enable .
然后,您可以通过设置 EXTENSION_DEV_MODE=1
来启动 LocalStack,以加载所有启用的扩展
EXTENSION_DEV_MODE=1 localstack start
从 GitHub 仓库安装
要分发您的扩展,只需将其上传到您的 GitHub 账户。然后,您可以通过以下方式安装
localstack extensions install "git+https://github.com/localstack/localstack-extensions/#egg=localstack-extension-terraform-init&subdirectory=terraform-init"
项目详情
localstack_extension_terraform_init-0.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a783c2df5526cce4776869d14a58b49c124cc439cec62db8ab9fe0e8017de958 |
|
MD5 | 3d8b3f20d7fb62bf22dd6a896adc98d3 |
|
BLAKE2b-256 | 1175e2d32cd3c560eaa6d2f7f0685406c44a633ca34caa71ae34f5b9b084250c |
localstack_extension_terraform_init-0.2.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ffbb87ab3d2ae38e57dbcb21a981b8df9f89d3039ec35da6adc7d9f934225003 |
|
MD5 | d2bed44c87819ba98e31a3fbe1ce4322 |
|
BLAKE2b-256 | 0aacb27dea982adfc402e36566385fb51d0fb1e855e61716d99b49570dca1284 |