【问题标题】:What is the best way to spawn and setup test environments (Amazon EC2) with Jenkins使用 Jenkins 生成和设置测试环境 (Amazon EC2) 的最佳方法是什么
【发布时间】:2014-12-22 20:33:15
【问题描述】:

我正在尝试自动化测试环境创建过程。我使用 Jenkins 作为我的 CI 服务器,并希望能够在 AmazonEC2 上生成新的 VM 实例(基于预定义的模板)。我知道如果你想将 VM 用作 jenkins 构建从站,它有一个插件。但我想将 VM 用作将部署构建工件的即用型测试环境。所以问题是什么是最好的方法?我目前正在考虑使用 Chef 配置新的 VM 实例,但如何生成 VM 本身是一个谜。任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: jenkins amazon-ec2 continuous-integration amazon chef-infra


    【解决方案1】:

    听起来你想要Test-Kitchen 之类的东西。您可以使用 Chef 和 kitchen-ec2 启动机器,运行配方代码,然后在其上运行一些测试(通常是 serverspec 或 bats,但有很多测试驱动程序)。您可以从 Jenkins 主机本身运行 test-kitchen,因此 Jenkins 无需担心创建新实例。

    【讨论】:

      【解决方案2】:

      Ansible 对创建 Amazon EC2 实例等有很好的支持。有关详细信息,请参阅 this link。创建 EC2 实例后,您还可以使用 ansible 完全自动化您的应用程序部署。

      【讨论】:

        【解决方案3】:

        查看 Ansible 以实现部署自动化。我们所做的是让 Ansible 提供新的虚拟机,然后使用 chef/puppet 来配置管理实际的环境代码库。效果很好!

        这是一个示例剧本架构:

        ---
        - hosts: localhost
          connection: local
          gather_facts: True
          roles:
             - load_balancer
             - cloud_servers
        
        - hosts: infra
          gather_facts: True 
          roles: 
             - deploy
        
        - hosts: localhost
          connection: local
          gather_facts: True
          roles:
             - test
             - clean_up
        

        【讨论】:

          【解决方案4】:

          您可以使用 Vagrant 通过 Jenkins 上的 Vagrant 插件生成 VM。 https://wiki.jenkins-ci.org/display/JENKINS/Vagrant-plugin

          Vagrant 是一种虚拟化包装器(用于 wmare、virtualbox、lxc),它允许您为 VM 设置配置并在多个选项之间进行选择:

          • 供应商:Ansible、Chef...
          • 主机和访客之间的同步文件夹
          • 网络选项...

          https://docs.vagrantup.com/v2/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-21
            • 2023-03-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-20
            相关资源
            最近更新 更多