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

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

[[173605]]

我在红帽工作的期间,每天在 Fedora Atomic host 上使用 Docker 容器。 来自原子项目Project Atomic的原子主机Atomic Host是一个轻量级容器操作系统,可以以 Docker 格式运行 Linux 容器。它专门为提高效率而定制,使其成为用于云环境的 Docker 运行时系统的理想选择。

幸运的是,我发现一个很好的方式来管理在主机上运行的容器:Cockpit。 它是一个具有漂亮的 Web 界面的 GNU/Linux 服务器远程管理工具。它可以帮我管理在主机上运行的服务器和容器。你可以在从之前发布在这里的这篇概述中了解 Cockpit 的更多信息。不过,我也希望在主机上可以自动运行容器,我可以使用 Ansible 来完成这个工作。

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

设置组件

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

  1. sudo dnf -y install ansible 

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

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

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

  1. $ cd fedora-cloud-ansible 
  2. $ cd cockpit 
  3. $ vim inventory 

完成如下修改:

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

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

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

  1. $ vim ansible.cfg 

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

结合起来

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

  1. $ ansible-playbook cockpit.yml 

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

管理你的容器

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

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

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

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

责任编辑:武晓燕 来源: Linux中国
相关推荐

2020-01-02 10:44:22

运维架构技术

2017-03-07 09:17:51

AtomicDocker远程

2023-12-01 08:54:50

Java原子类型

2019-07-01 09:33:58

DockerNginx操作系统

2015-10-23 17:29:24

AtomicOpenStack 应用部署

2019-10-12 10:24:06

CentOSRHELCockpit

2023-12-11 18:15:46

AnsibleMinikubeKubernetes

2021-05-17 12:54:04

AnsiblePodman开源

2021-12-27 10:13:51

Goatomic数据竞争

2017-06-09 14:22:31

AnsibleTiDB分布式数据库

2020-01-02 19:00:05

AnsibleGitHubGitLab

2019-07-08 08:59:41

Docker容器主机

2022-07-14 08:00:00

CockpitLinux工具

2023-10-04 00:38:30

C++原子

2019-03-04 10:45:57

Linux Cockp系统性能命令

2021-06-07 17:12:22

线程安全Atomic

2015-03-30 11:23:42

红帽Linux 7原子主机

2019-10-30 12:00:02

Ansible容器与云容器镜像

2015-06-19 14:20:56

2021-04-16 08:00:00

容器Docker工具
点赞
收藏

51CTO技术栈公众号