Katello/Foremanによる運用管理 (Part1)

こんにちは。SIOS OSS/セキュリティ エバンジェリストの面です。

今回から数回に分けて、パッチマネージメントと運用に用いることが出来る、OSSのライフサイクルソフトウェアであるKatelloの使い方を見ていきます。


Katelloとは

KatelloとはOS上のソフトウェアライフサイクルを管理する、OSSのシステム管理ツールになります。端的に言うと、Red Hat Satellite 6.0の元になっているOSSのツールです。

Red Hat Satellite 6.0との関係ですが、Red Hat Satellite 6.0は

  • Foreman: プロビジョニングと構成管理

  • Pulp: プロビジョニングと構成管理

  • Candlepin: プロビジョニングと構成管理

  • Katello

を組み合わせて構成されています。

KatelloとForemanの関係ですが、ここにも書かれている通り、Katelloは実際にはForemanを中核にしており(プラグインのような感じです)、KatelloではForemanの機能に加えてパッケージ管理が出来るようになっています。Katelloのインストール時には、Foremanインストールのコマンドを使用して、Foremanとその他の必要なものをインストールすることになります。また、既存のForemanにKatelloの機能を付け加えることも出来ます

(※)このKatelloでは、CentOS等のディストリビューションのパッケージ管理が出来る様になっています。Debianのパッケージ管理もサポートしていますが、実際には設定は中々難しいようです。

以下、Katelloの簡単な説明とインストールの方法を紹介しますが、KatelloはForemanを中核にしているため、Foremanの説明と被る箇所も有ります(リンク先も、Foremanの文書になっているケースが多々あります)。そのため、用語説明などの際にはKatello/Foremanと併記します。


Katello/ForemanとSmartProxy

Katello/Foremanの基本的なアーキテクチャは、ここにある通りです。

このリンク先のドキュメントにもある通り、Katello/Foremanでは「Smart Proxy」を用いて、様々な機能を提供するサブシステムと連結します。「Smart Proxy」は、Restfull APIを提供するもので、以下のようなサブシステム用のAPIが提供されています。

  • DHCP

  • DNS

  • TFTP

  • Puppet

  • Puppet CA

  • BMC

  • openSCAP


Katelloの必須HWスペック

Katelloサーバをインストールするための必須HW条件は以下になります。

  • CPU: 2CPU以上

  • Memory: 8GB以上

  • HDD: 大きければ大きいほど良いです。

    • /var/lib/pulp以下に管理するOSの更新パッケージが格納されます。一つのOSにつき、30GB以上が必要です。

    • /var/spool/squid以下がテンポラリディレクトリとして使用されます。/var/lib/pulp以下と同じサイズ(一つのOSにつき、30GB以上)を用意しておいたほうが良いです。

    • /var/lib/mongodbは4GB以上必要になります。目安として、/var/lib/pulpの40%程度が最小限になります。

    • /ファイルシステムは20GB以上が必要になります。

  • 許可する必要があるポートの一覧

    • 80/TCP – HTTPがプロビジョニングのために必要になります。

    • 443/TCP – HTTPSが、WebアクセスとAPI間通信のために必要になります。

    • 5647/TCP – qdrouterd がクライアントとcapsule実行のために必要になります。

    • 9090/TCP – HTTPSが、smart proxyの通信のために必要になります。


Katello環境の構築

それでは実際にKatelloをインストールしてみましょう。Katelloは2017年1月時点での最新バージョン(3.2)を使用します。インストールドキュメントがkatelloのサイト(現在はForemanのサイトに統合されています)に詳細含めて載っていますので、基本はこのインストールドキュメントに従って行っていきます。

0. 構成

基本構成は図のようにします。今回は、VMWareのゲストとして環境を構築しています。

図1

  • OS: CentOS 7 (最新バージョンにupdate)

  • ホスト名:katello.localdomain

  • IP: 172.16.148.120 (固定)

  • HW: CPU x2、Memory: 9GB

  • Katello: v3.2 (latest)

  • HDD: 多ければ多いほど(更新パッケージをダウンロードするため)

HWの所で気をつけなくてはいけないところとして、Katelloのインストーラ中で「CPUは2個以上、Memoryは8GB以上」でないとインストーラが終了してしまう所です。

また、今回は通常のKatelloによる各端末の情報取得に加えて、パッケージ更新情報の管理と、SCAPによるセキュリティ構成情報の取得を行うことにします。

1. OSのインストール

  1. CentOS7(latest)をインストールします。今回は、固定IPアドレスでホスト名は「katello.localdomain」としておきます。また、パッケージは「最小限」を選択しています。

  2. OSをインストール後に”yum -y update”で最新の状態にしておきます。

  3. /etc/hostsファイルを編集し

    [root@katello ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    172.16.148.120  katello.localdomain     katello
    

    のように登録しておきます。


まとめ

今回はKatelloの簡単な説明と、インストール準備までの話を紹介しました。次回は、引き続きKatelloのインストールを行っていきます。


タイトルとURLをコピーしました