在我的工作过程中 红色的帽子我和 码头工人 容器上 Fedora 原子主机 每天。 原子主机来自 原子计划 是一个轻量级的容器操作系统,可以运行 Docker 格式的 Linux 容器。 它已针对效率进行了修改,使其最适合用作云环境的 Docker 运行时系统。
幸运的是,我找到了一种管理在主机上运行的容器的好方法: 座舱. Cockpit 是一个用于 GNU/Linux 服务器的远程管理器,具有漂亮的 Web UI。 它让我可以管理在主机上运行的服务器和容器。 您可以在此之前发布的这篇概述文章中阅读有关 Cockpit 的更多信息。 但是,我还想在主机上自动运行容器,我已经使用了 Ansible.
请注意,我们不能在 Atomic Host 上使用 dnf 命令。 主机不是作为通用操作系统设计的,而是更适合容器和其他用途。 但是在 Atomic Host 上设置应用程序和服务仍然非常容易。 这篇文章向您展示了如何自动化和简化这个过程。
设置组件
在开始之前,请确保您的系统上安装了 Ansible。
sudo dnf -y install ansible
首先,我们需要在 Atomic 主机上运行 cockpit 容器。 复制源代码 https://github.com/trishnaguha/fedora-cloud-ansible 在你的机器上。
$ git clone https://github.com/trishnaguha/fedora-cloud-ansible.git
现在将您的目录更改为 cockpit 并编辑其库存文件,如下所示:
$ cd fedora-cloud-ansible $ cd cockpit $ vim inventory
进行以下更改:
- 将 IP_ADDRESS_OF_HOST 替换为您的 Atomic 主机的 IP 地址。
- 将 ansible_ssh_private_key_file=’PRIVATE_KEY_FILE’ 行中的 PRIVATE_KEY_FILE 替换为您的 SSH 私钥文件。
现在保存并退出库存文件。
接下来,编辑 ansible 配置文件:
$ vim ansible.cfg
将 remote_user=User 行中的 User 替换为 Atomic 主机上的远程用户。 然后保存并退出文件。
把它们放在一起
现在是运行剧本的时候了。 此命令开始在 Atomic 主机上运行 Cockpit 容器:
$ ansible-playbook cockpit.yml
Cockpit 现在在 Atomic 主机上运行。 使用您的 Web 浏览器在端口 9090 上访问您的实例的公共 IP。这是 Cockpit 的默认端口。 例如,如果实例的 IP 地址是 192.168.1.4,则浏览到 192.168.1.4:9090。 您现在将在 Web 浏览器上看到 Cockpit 的 Web 界面:
管理您的容器
使用您的 Atomic 主机的凭据或以 root 身份登录。 然后访问 Cockpit 管理器上的 Containers 部分,查看在您的 Atomic 主机上运行的容器。 在里面 example 下面,你会看到我还设置了其他类似 httpd 和 雷迪斯:
请注意,该界面允许您使用 Run 和 Stop 按钮直接在 Cockpit 管理器中启动和停止容器。 您还可以使用 Cockpit 管理器管理您的 Atomic 主机。 转到工具 -> 终端。 在那里您可以使用 Atomic 主机的终端:
如果您打算在 Atomic 主机上部署您的容器化应用程序,您可以简单地为它编写一个剧本。 然后,您可以使用 ansible-playbook 命令进行部署,并使用 Cockpit 管理容器。
随意为存储库中的容器分叉或添加剧本 https://github.com/trishnaguha/fedora-cloud-ansible.