使用 Atomic Host、Ansible 和 Cockpit 部署容器


在工作 紅色的帽子, 我和 花名冊 進入容器 Fedora 原子主機 每天。原子主機 原子計劃 一個輕量級的容器操作系統,可以運行 Docker 格式的 Linux 容器。它經過修改以提高效率,最適合用作雲環境的 Docker 運行時系統。

幸運的是,我找到了一種管理主機上運行的容器的好方法。 座艙Cockpit 是 GNU/Linux 服務器的遠程管理器,具有漂亮的 Web UI。您可以管理在主機上運行的服務器和容器。有關駕駛艙的更多信息,請參閱這篇先前發布的概述文章。但是,我希望容器在主機上自動運行,所以我使用了 Ansible的.

請注意,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

進行以下更改:

  1. 將 IP_ADDRESS_OF_HOST 替換為原子主機的 IP 地址。
  2. 將 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。 Cockpit 的網絡界面出現在您的網絡瀏覽器中。

管理容器

使用您的 Atomic 主機憑據或以 root 身份登錄。然後在駕駛艙經理[コンテナー]訪問該部分以查看在 Atomic 主機上運行的容器。在下面的示例中,您可以看到我還進行了其他設置。 httpd 什麼時候 請再說一遍:

用於管理容器的駕駛艙面板

使用這個界面,[実行]按鈕和[停止]請注意,您可以使用按鈕直接在 Cockpit Manager 中啟動和停止容器。您還可以使用 Cockpit Manager 管理原子主機。轉到工具 – >終端。從那裡,您可以使用 Atomic Host 的終端。

駕駛艙終端面板

如果您計劃將容器化應用程序部署到 Atomic Host,只需為其創建一個 playbook。然後,您可以使用 ansible-playbook 命令來部署容器和 Cockpit 來管理它們。

運行 ansible-playbook 部署多個容器

隨意為存儲庫中的容器分叉或添加劇本 https://github.com/trishnaguha/fedora-cloud-ansible.