我应该在哪里保存CoreOS集群的服务文件,我应该如何加载它们?

我想在负载平衡器后面部署一个CouchDB服务器集群,并让这些服务完成这个神奇的etcd发现。 在完成CoreOS快速入门之后 ,我对如何真正使用我自己所学的东西感到茫然,我不知道哪个更深入的教程能让我走。

在演示中,我在正在运行的实例中编写了一个服务文件,然后使用fleetctl来启动它。 我想要做的是在我的项目中有版本控制下的服务文件,如Dockerfile。 如何让CoreOS群集使用外部服务文件进行初始化?

我正在使用Vagrant进行本地开发,但我会尽快部署到AWS。

我在aws上快速search了coreos,第一个链接是亚马逊的产品。 他们有非常好的文件如何做到这一点。 从高层次来说,你需要使用一个云configuration文件。 当你启动你的coreos(即,实例化ec2映像)时,你可以在user_data中传递一个文本文件。 该文本文件可以让你做几件事情,主要是写文件,然后定义单位。 单位是你的服务。 当您启动您的ec2实例时,cloud-config文件中的任何内容都将自动启动。

或者,您可以使用cloud_config中的'write_files'指令来创build每个单独的服务。 例如,我的云configuration有:

write_files: - path: /etc/systemd/system/skydns.service permissions: 0644 owner: core:core content: | [Unit] Description=SkyDNS service discovery After=flanneld.service docker.service etcd.service Requires=flanneld.service docker.service etcd.service [Service] Restart=always ExecStartPre=-/usr/bin/env docker kill skydns ExecStartPre=-/usr/bin/env docker rm skydns ExecStartPre=/usr/bin/env docker pull tacodata/skydns-coreos ExecStart=/usr/bin/env bash -c '/usr/bin/docker run --name skydns -p 53:53/udp test/skydns-nameservers 8.8.8.8:53 -domain local ExecStop=-/usr/bin/docker stop skydns [Install] WantedBy = multi-user.target 

系统初始化的东西有一些学习曲线。 我不知道云configuration文件是如何与stream浪环境搭配的。 很多平台使用云configuration,所以,这是一个很好的想法开始。

-G