Ansible TowerからWindowsへのアクセスをhaproxyでルーティングする


以前、以下のSSH多段接続方法について書きましたがWindowsも踏み台の先にある場合がある環境もあると思います。

そこで、ここでは haproxy を使ったルーティング方法について書いてみます。

環境

項目 バージョン 備考
Ansible Tower 3.5.1
RHEL 7.6
haproxy 1.5.18
CentOS 7.6 haproxyホスト
Windows 2016

検証環境

このような環境を作りました。
Ansible Toewrはhaproxyの5986ポートへアクセスしてhaproxyはホスト名でアクセス先を振り分けます。

前提

既にWindows側にはWinRMの証明書が埋め込まれておりHTTPS接続が有効化されているものとします。

準備

haproxy

インストール

haproxyをインストールします。

設定変更

haproxyの設定を変更します。

ここでは、以下の設定をしました。
host ヘッダーで接続先対象のルーティングを定義しています。
後、server.pem は証明書と秘密鍵が一つのファイルにまとめたものになっています。

haproxy起動

haproxyを起動します。

Windows

Basic認証の有効化

Windows側では basic認証 を有効化します。
Powershellを起動して以下のコマンドを実行します。

Baisctrue になっていることを確認します。

Ansible Tower

hosts設定

Ansible Tower側で名前解決が出来る必要があるため、ここでは /etc/hosts に追記します。

インベントリー

インベントリーは以下のように設定しました。

Playbook

Playbookは以下で作成したものを流用します。(ホスト名を表示するだけのもの)

テンプレート

実行

実行してみます。

それぞれのホストへアクセスして情報を取得しホスト名の表示ができることが確認できました 🙂

最後に

どうしても間に踏み台を入れた運用をする場合は、このようなやり方も検討するといいかもしれません 🙂
今回は手作業で作りましたが、haproxyのコンフィグも自動生成するような運用にすると運用・管理も負荷軽減になることが期待できますね。

それでは、みんなでハッピーオートメーション!

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください