首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于在Azure上部署群集的工具集

用于在Azure上部署群集的工具集
EN

Stack Overflow用户
提问于 2015-05-08 12:33:19
回答 1查看 350关注 0票数 1

我正在使用packer.io将单个VM部署到Azure。我项目的下一步是将VM集群部署到Azure。在我看来,光靠Packer是不够的(如果我错了,请纠正我)来编排集群的部署。所以,我需要一些其他的东西来协调部署。因为它是一个集群,所以其中的每台机器都需要知道其他每台机器的IP地址(我的应用程序是一个分布式数据库)。我在看terraform.io,但是它的文档中没有任何关于Azure的例子。有没有什么资源可以入门呢?我需要的是terraform吗?你还有其他推荐的工具吗?另一个复杂问题是,我正在尝试为我的客户自动部署演示虚拟机。我目前的工作流程是,使用packer创建一个VM,安装我的数据库,创建必要的用户帐户,将某些临时目录上传到VM。然后我拍一张快照来获取我的图像。稍后,我的客户将此镜像从VMDepot部署(到他们的Azure帐户)。同样,到目前为止,这只是一个单机集群。稍后,这将需要一组至少有四台机器。有没有更好的工作流程来实现这一点?

谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

发布于 2015-07-19 16:29:22

Terraform有an Azure provider,尽管我认为在您提出最初的问题时它还没有开发出来。

Terraform允许创建同一资源的多个“副本”,这对于创建集群很有用。但是,将所有主机的IP地址一起传递到这些实例中可能很棘手,因为配置步骤必须等到所有实例都完成。这种排序的常见解决方法是使用未记录的null_resource在主机上运行独立的配置步骤。例如:

代码语言:javascript
复制
resource "azure_instance" "web" {
    name = "terraform-test"
    hosted_service_name = "${azure_hosted_service.example.name}"
    image = "Ubuntu Server 14.04 LTS"
    size = "Basic_A1"
    storage_service_name = "yourstorage"
    location = "West US"
    username = "terraform"
    password = "Pass!admin123"

    # Tell Terraform to create 3 identical instances.
    count = 3

    endpoint {
        name = "SSH"
        protocol = "tcp"
        public_port = 22
        private_port = 22
    }
}

resource "null_resource" "provision" {
    count = 3

    connection {
        host = "${lookup(azura_instance.web.*.ip_address, count.index)}"
        user = "terraform"
        password = "Pass!admin123"
    }

    provisioner "remote-exec" {
        inline = [
            "/usr/local/bin/configure-cluster ${join(" ", azura_instance.web.*.ip_address)}",
        ]
    }
}

空资源的三个副本都依赖于这三个azure_instance资源,因此在所有实例都准备就绪之前,不会创建和提供空资源。一旦实例都准备就绪,每个空资源就被配置为连接到其相应的实例(通过索引),然后在其实例上运行一个假想的configure-cluster命令,传入完整的集群IP地址集作为参数。

请注意,置备程序仅在资源的初始创建时运行。对资源的更新不会重新运行置备程序。由于空资源实际上并不代表真正的基础设施资源,因此可以通过“污染”它来轻松地重新运行配置步骤,以便Terraform在下一个apply上重新创建它

代码语言:javascript
复制
terraform taint null_resource.provision
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30115810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档