2.5 中継サーバの設定

中継サーバを用いることにより、クラウドとオンプレミスの利点を活かしたハイブリッドクラウドでのOps I運用が可能になります。本章では中継サーバの設定手順について説明します。
中継サーバ機能「アウトポスト」の設定をすることにより、自動化アプリケーション(AWX)のジョブをオンプレミス環境から実行できます。


(図)中継サーバのシステム構成 中継サーバのシステム構成 中継サーバのシステム構成

(1)中継サーバ機能「アウトポスト」の構成

アウトポストは以下の構成からなります。

(表)アウトポストの構成

構成 概要
コントロールプレーン
  • Ops I(クラウド)で動くアウトポストのコンポーネント
  • k3s※1とchisel※2のサーバコンポーネント
エージェント
  • 中継サーバ(オンプレミス)で動くアウトポストのコンポーネント
  • k3s※1とchisel※2のクライアントコンポーネント
ノード
  • エージェントが動くLinuxサーバ
ノードグループ
  • ノードのグループ
  • ノードグループを作成することで、自動的に対応するAWXのインスタンスグループが作成される。ノードグループに対しジョブを実行すると、ノードグループに属すいずれかのノードでジョブが実行される。
IPブロック
  • ジョブがアクセスできるIPアドレスの範囲。(CIDR形式で指定。)ノードグループにひもづけられ、AWXのジョブがアクセスできるIPアドレスの範囲を設定する。
  • IPブロックが一つもひもづいていないノードグループで実行されたジョブは、すべてのIPアドレスにアクセスできる。

Ops I(クラウド)と中継サーバ(オンプレミス)をつなげるために以下の機能を使用しています。

※1 k3s:コンテナ仮想化ツールの運用管理・自動化を行うOSS。Ops I(クラウド)と中継サーバ(オンプレミス)の間にクラスタを構築する。
※2 chisel:Webソケットを使用したTCPトンネル。クラウド側とオンプレミス側のk3sを接続する。


(図)アウトポストの構成
アウトポストの構成 アウトポストの構成

(2)アウトポスト設定の流れ

以下の手順①~⑦で設定をします。
①~④はOps I、⑤~⑦は中継サーバで設定を行います。

【Ops Iでの設定】

①ユーザーの設定とロールの付与

アウトポスト設定用のOps Iユーザーを作成し、Pre-Installedロールの「Outpost」を付与します。Pre-Installedロールの「Outpost」はPrimitiveロールの「outpost」が割り当てられています。非課金ユーザーとする場合は、primitiveロールの「free_user」も付与する必要があります。
アウトポスト設定はアウトポスト設定専用のユーザー(推奨)、もしくはPre-Installedロールの「Outpost」を付与した既存ユーザーで行います。
また、Ops Iのアウトポスト管理の参照およびRPMパッケージのダウンロードを行うにはPrimitiveロールの「automation_manager」または「automation_auditor」の付与が必要です。
ユーザー作成については「ユーザー管理」を、ロールの付与については「ロール管理」を参照してください。

②Ops Iトークンの作成

①で作成したユーザーのOps Iトークンを作成します。Ops Iトークンの発行は、システム管理/ユーザー管理画面で発行することができます。


(図)Ops Iトークン発行画面 Ops Iトークン発行画面 Ops Iトークン発行画面


(図)Ops Iトークン発行確認画面 Ops Iトークン発行確認画面 Ops Iトークン発行確認画面

③コントロールプレーン情報の確認

コントロールプレーン画面でコントロールプレーン情報(フィンガープリント、エージェントのトークン)のコピーボタンをクリックし、コントロールプレーン情報を取得します。コントロールプレーン情報の詳細は「コントロールプレーン管理」を参照してください。

④RPMパッケージのダウンロード

コントロールプレーン画面のエージェントのダウンロードからRPMパッケージ「Linux x86_64 RPM」をダウンロードします。 RPMパッケージを検証するための「Linux x86_64 RPM Signature」も同様にダウンロードすることができます。RPMパッケージのSignatureファイルの詳細は「RPMパッケージSignatureファイル」を参照してください。

(図)コントロールプレーン画面 (図)コントロールプレーン画面 (図)コントロールプレーン画面

コントロールプレーン画面については「コントロールプレーン管理」を参照してください。


【中継サーバでの設定】

⑤RPMパッケージのインストール

④でダウンロードしたRPMパッケージを中継サーバにインストールします。
ダウンロードしたRPMパッケージはrpmファイルです。事前にサーバに必要な前提条件を確認した上で、rpmコマンドでインストールしてください。前提条件の詳細は「RPMパッケージインストール前提条件」を、インストールされるRPMパッケージの内容は「RPMパッケージ内容」を参照してください。

<実行例>

# rpm -ivh opsi-outpost-RPMパッケージのバージョン.x86_64.rpm


⑥ユーザー設定ファイルの編集

ユーザー設定ファイルのテンプレートファイルはRPMパッケージをインストールすることにより、「/etc/opsi/outpost/outpost-config.env.template」に格納されます。テンプレートファイルをファイル名「/etc/opsi/outpost/outpost-config.env」としてコピーし、以下の設定項目を記載します。
インストールされるRPMパッケージの内容は「RPMパッケージ内容」を参照してください。

(表)ユーザー設定ファイルの設定項目

項目 設定名 設定内容
Ops Iのドメイン名 OPSI_DOMAIN_NAME -
HTTP proxy URL(任意) HTTP_PROXY HTTPプロキシサーバのURL
エージェントが配置された環境がOps Iと通信するためにプロキシサーバを経由する必要がある場合は、そのプロキシサーバを指定する。
コントロールプレーンのフィンガープリント FINGERPRINT ③で入手したフィンガープリント
コントロールプレーンのエージェントトークン AGENT_TOKEN ③で入手したエージェントトークン
Ops I トークン OPSI_TOKEN ②で作成したOps Iトークン
ノード名 NODE_NAME 任意の名前を設定する。ただし、半角の小文字を使用し、アウトポスト内で同一の名前を設定しないこと。
設定した名前がOps Iのノード画面に表示される。
エージェントのTCPポート REGISTRATION_PORT
TUNNEL_PORT1
TUNNEL_PORT2
エージェントが、コントロールプレーンとの通信で使用するTCPポート。3つ指定する。
【デフォルト値】
REGISTRATION_PORT 21400
TUNNEL_PORT1:21401
TUNNEL_PORT2:21402
※ユーザー設定ファイルで使用されている設定名

ユーザー設定ファイルのテンプレートファイルの内容を以下に記載します。

<ユーザー設定ファイルのテンプレートファイル>

######################################################
# Ops I Outpost Agent Configuration
#
# This file is a template of the Outpost Agent configuration.
# You must copy this file to /etc/opsi/outpost/outpost-config.env and
# edit it to change the parameters as appropriate for your environment.
######################################################

# The domain name of your Ops I tenant.
OPSI_DOMAIN_NAME=your-tenant.ops-integration.com

# (Optional) A URL of HTTP proxy server the Outpost Agent will use for
# connecting to the Ops I tenant.
# This parameter will be encrypted and replaced with HTTP_PROXY_ENC
# when the Outpost Agent starts for the first time.
# Uncomment the next line to enable this parameter.
# HTTP_PROXY=http://username:password@proxy.example.com:8080

# The fingerprint of the Outpost Control Plane.
FINGERPRINT=your_outpost_control_planes_fingerprint

# The agent token of the Outpost Control Plane.
# This parameter will be encrypted and replaced with AGENT_TOKEN_ENC
# when the Outpost Agent starts for the first time.
AGENT_TOKEN=your_outpost_control_planes_agent_token

# An Ops I token the Outpost Agent will use for accessing the Ops I tenant.
# This parameter will be encrypted and replaced with OPSI_TOKEN_ENC
# when the Outpost Agent starts for the first time.
OPSI_TOKEN=your_opsi_token

# A name of the Outpost Node on which the Outpost Agent will run.
# The name must follow the convention of DNS domain name and
# all alphabet letters in it must be lowercase.
NODE_NAME=outpost-node

# TCP ports the Outpost Agent will open on the Outpost Node.
REGISTRATION_PORT=21400
TUNNEL_PORT1=21401
TUNNEL_PORT2=21402


⑦アウトポストエージェントの起動

アウトポストエージェントの起動は、コマンドスクリプトの実行により行います。コマンドスクリプトファイルはRPMパッケージをインストールすることにより「/opt/opsi/outpost/bin/」に格納されます。コマンドスクリプトの実行によりエージェントの起動、停止、状態監視、トラブルシュートの情報収集が可能です。コマンドスクリプトの詳細は「RPMのコマンドスクリプト」を参照してください。

コマンドスクリプトopsiopctl.sh startでエージェントを起動します。

<実行例>

# ./opsiopctl.sh start
Are you sure to proceed? (y/n)
y
Starting Outpost Agent.
Starting chisel.service.
Starting k3s.service.
Started Outpost Agent successfully


⑧中継サーバがノードとして登録され、アウトポスト管理画面から登録されたノードが見えるようになります。アウトポスト管理画面の詳細は「アウトポスト管理」を参照してください。

中継サーバを使用したジョブ実行の流れについては、「中継サーバ使用手順」を参照してください。

(3)ノードの削除

以下の手順①~⑥でノードの削除を行います。
①~⑤の作業は中継サーバ、⑥の作業はOps Iで行います。

①アウトポストの停止と初期化

# /opt/opsi/outpost/bin/opsiopctl.sh stop -f
# reboot

②RPMパッケージの削除

# rpm -e opsi-outpost-RPMパッケージのバージョン.x86_64

③Systemd関連ファイルの削除と反映

# rm -f /etc/systemd/system/k3s.service
# rm -f /etc/systemd/system/chisel.service
# systemctl daemon-reload

④不要ディレクトリの削除

# rm -rf /etc/rancher/k3s
# rm -rf /run/k3s
# rm -rf /run/flannel
# rm -rf /var/lib/rancher/k3s
# rm -rf /var/lib/kubelet
# rm -rf "/run/k3s"
# rm -rf "/var/lib/rancher/k3s"
# rm -rf "/var/lib/kubelet"
# rm -rf "/run/netns/cni-"
# rm -rf /var/lib/cni/
# rm -rf /etc/opsi
# rm -rf /opt/opsi
# rm -rf /var/opt/opsi
# rm -rf /etc/opt/opsi

⑤再起動

# reboot

⑥アウトポスト管理画面でのノード削除

①~⑤を実行すると、ノード一覧画面で該当のノードのステータスが「NotReady」となります。ステータスが「NotReady」であることを確認の上該当のノードを選択し、削除ボタンをクリックしてください。
アウトポスト管理画面でノードの削除を行うことで、同じ名前のノードを再登録することが可能になります。ノードの削除を行わずに同じ名前でノードの登録をしようとすると、「アウトポスト設定の流れ」の⑦を実施中にタイムアウトします。
ノード画面の詳細は「ノード管理」を参照してください。



節構成

2.5.1 RPMパッケージ