使用原子主机(Atomic Host)、Ansible 和 Cockpit 部署容器

    xiaoxiao2024-05-25  117

    请注意,我们不能在原子主机上使用 dnf 命令。原子主机并没有设计为通用操作系统,而是更适合容器和其他用途。但在原子主机上设置应用程序和服务仍然非常容易。这篇文章向您展示了如何自动化和简化这个过程。

    设置组件

    开始之前,请确保你的系统上安装了 Ansible。

    sudo dnf -y install ansible

    首先,我们需要在原子主机上运行 cockpit 容器。在你的机器上从 https://github.com/trishnaguha/fedora-cloud-ansible 下载它的源代码。

    $ git clone https://github.com/trishnaguha/fedora-cloud-ansible.git

    现在切换到 cockpit 的目录,并如下编辑 inventory 文件:

    $ cd fedora-cloud-ansible$ cd cockpit$ vim inventory

    完成如下修改:

    使用你的原子主机的 IP 替换掉 IP_ADDRESS_OF_HOST。用您的 SSH 私钥文件的路径替换 ansible_ssh_private_key_file ='PRIVATE_KEY_FILE' 行中的PRIVATE_KEY_FILE。

    然后保存并退出 inventory 文件编辑。

    接下来,编辑 ansible 配置文件:

    $ vim ansible.cfg

    替换 remote_user=User 中 User 为你的原子主机上的远程用户名。然后保存并退出文件编辑。

    结合起来

    现在是运行 Ansible 的 PlayBook 的时候了。此命令开始运行原子主机上的 Cockpit 容器:

    $ ansible-playbook cockpit.yml

    Cockpit 现在运行在原子主机上了。使用浏览器去访问你的实例的公网 IP 的 9090 端口——这是 Cockpit 的默认端口。举个例子,如果该实例的 IP 地址是 192.168.1.4,就去访问 192.168.1.4:9090,你将会看到如下的 Web 界面:

    管理你的容器

    使用原子主机的登录信息或以 root 用户身份登录。然后访问 Cockpit 管理器上的 Containers 部分来查看原子主机上运行的容器。在下面的示例中,您会看到我还设置了其他容器,如 httpd 和 redis:

    注意,该界面允许您直接在 Cockpit 管理器中使用 Run 和 Stop 按钮启动和停止容器。您还可以使用 Cockpit 管理器管理您的原子主机。转到 Tools -> Terminals,在这里里你可以使用原子主机的终端:

    如果您打算在原子主机上部署容器化的应用程序,则可以简单地为其编写一个 PlayBook。然后,您可以使用ansible-playbook 命令进行部署,并使用 Cockpit 来管理容器。

    欢迎你对这个仓库进行分支或添加容器的 PlayBook。

    原文发布时间为:2016-10-14

    本文来自云栖社区合作伙伴“Linux中国”

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)