使用原子主机(Atomic Host)、Ansible 和 Cockpit 部署容器
我在红帽[1]工作的期间,每天在 Fedora Atomic host[2] 上使用 Docker[3] 容器。 来自原子项目[4]的原子主机是一个轻量级容器操作系统,可以以 Docker 格式运行 Linux 容器。它专门为提高效率而定制,使其成为用于云环境的 Docker 运行时系统的理想选择。
幸运的是,我发现一个很好的方式来管理在主机上运行的容器:Cockpit[5]。 它是一个具有漂亮的 Web 界面的 GNU/Linux 服务器远程管理工具。它可以帮我管理在主机上运行的服务器和容器。你可以在从之前发布在这里的这篇概述[6]中了解 Cockpit 的更多信息。不过,我也希望在主机上可以自动运行容器,我可以使用 Ansible[7] 来完成这个工作。
请注意,我们不能在原子主机上使用 dnf 命令。原子主机并没有设计为通用操作系统,而是更适合容器和其他用途。但在原子主机上设置应用程序和服务仍然非常容易。这篇文章向您展示了如何自动化和简化这个过程。
设置组件
开始之前,请确保你的系统上安装了 Ansible。
sudo dnf -y install ansible
首先,我们需要在原子主机上运行 cockpit 容器。在你的机器上从https://github.com/trishnaguha/fedora-cloud-ansible 下载它的源代码。
$ gitclone 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[8]:
注意,该界面允许您直接在 Cockpit 管理器中使用 Run 和 Stop 按钮启动和停止容器。您还可以使用 Cockpit 管理器管理您的原子主机。转到 Tools -> Terminals,在这里里你可以使用原子主机的终端:
如果您打算在原子主机上部署容器化的应用程序,则可以简单地为其编写一个 PlayBook。然后,您可以使用
ansible-playbook
命令进行部署,并使用 Cockpit 来管理容器。欢迎你对这个仓库[9]进行分支或添加容器的 PlayBook。
[1]: https://www.redhat.com/
[2]: https://getfedora.org/en/cloud/download/atomic.html
[3]: https://www.docker.com/
[4]: http://www.projectatomic.io/
[5]: http://cockpit-project.org/
[6]: https://fedoramagazine.org/cockpit-overview/
[7]: https://www.ansible.com/
[8]: https://github.com/trishnaguha/fedora-cloud-ansible/tree/master/redis
[9]: https://github.com/trishnaguha/fedora-cloud-ansible
[10]: https://fedoramagazine.org/author/trishnag/
[11]: https://github.com/LCTT/TranslateProject
推荐文章
滑动查看更多
输入文章 ID 或长按二维码直达
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。