如何在使用LXD容器时自动化应用程序部署?

时间:2017-06-09 11:21:37

标签: lxc lxd

在LXD容器中应该如何编写/自动部署应用程序?

例如,在LXD容器中部署应用程序以使用bash脚本(部署应用程序)的最佳方法是什么?如何通过在主机上执行命令在容器内执行此bash脚本?

是否有任何工具/方法以与Docker配方类似的方式执行此操作?

2 个答案:

答案 0 :(得分:1)

就我而言,我使用Ansible:

  1. 构建LXD容器(例如,web,数据库,redis)。
  2. 连接到容器并部署所需的服务和代码。
  3. 您可以使用已部署的服务和/或代码构建自己的图像,并从此图像构建特定容器。

    我在LXD之前使用Ansible支持(Ansible 2.2)时这样做我更喜欢使用ssh而不是lxd连接,当我连接到容器来部署服务/代码时。他们带有一个配置文件,我已经设置了我的ssh公钥(通过密钥直接ssh连接...没有密码)

答案 1 :(得分:0)

在bitbucket devops_lxd_containers上查看我的开源项目,其中包括:

  • 用于构建lxd图像模板的脚本,包括Apache,tomcat,haproxy。
  • 用于演示自定义应用程序映像构建的脚本,例如Apache托管和键/值内容以及配置为路由器的haproxy。
  • 启动容器和映射端口的代码,以便大型网络可以访问它们
  • 将haproxy配置为第7层代理的代码,可基于uri前缀路由在盒子和容器之间路由http请求。基于以前部署和映射端口的位置。
  • 在更高级别上,它接受数据驱动器规范,并将部署由分布在许多主机上的许多容器组成的整个环境,并通过第7层代理将它们挂钩在一起,作为一个整体。
  • 广泛的文档显示how I accomplished each major step在自动化之前使用代码段。
  • 使用layer7功能优雅地释放旧连接,同时在新层接受新连接的代码,以支持零中断升级。

构建整个系统的前提是最好分层构建图像。我们构建一个更新的Ubuntu映像。通过它我们构建了一个强化的Ubuntu映像。通过它我们构建了一个基本的Apache映像。通过它,我们构建了一个特定于应用程序的映像,例如apacheKV示例。我们的目标是永不重建,并重复使用诸如basicJDK之类的通用功能作为所有JDK依赖映像的源,这样我们就可以避免在任何位置重复代码。我努力使映像或模板的创建与部署和端口映射完全分开。唯一的例外是,在我们不了解其他映像的映射方式之前,我无法完成第7层路由映像的创建。