AnsibleAWXのデータベース(PostgreSQL)への接続手順(pgAdmin版)


この記事はプロモーションを含みます。

前回は、TeraTermでAWXのPostgreSQLへ接続する手順を書きましたが、
今回は、「pgAdmin」で接続する方法をご紹介したいと思います。

環境

接続元のWindows端末から、VirtualBoxを使用して構築したCentOS7上のPostgreSQLに接続します。

  • 接続元
    • OS:Windows
    • アプリ:pgAdmin4 v5.7
  • 接続先
    • OS:CentOS7(VirtualBoxで接続元となるWindowsの上に構築)
    • データベース:PostgreSQL(AnsibleAWXインストールと同時にインストールされるもの)
    • OSS:
      • Ansible AWX 15.0.1
      • Docker 20.10.8
      • docker-compose 1.18.0

ファイアウォールの穴あけ

デフォルトの状態ではファイアウォールにより他端末からの接続がブロックされているため、接続出来るように設定を行います。

以下のコマンドを実行し、ファイアウォールにサービスを登録します。
「success」と表示されることを確認します。

[root@localhost ~]# firewall-cmd --add-service=postgresql --zone=public --permanent
success

次に、以下のコマンドを実行して正しく登録されているかの確認を行います。
「postgresql」が含まれていれば問題ありません。

[root@localhost ~]# firewall-cmd --zone=public --list-services --permanent
dhcpv6-client postgresql ssh

最後に設定を反映させるため、ファイアウォールの再起動を行います。

[root@localhost ~]# systemctl restart firewalld

以上で、ファイアウォールの穴あけ作業は完了となります。

pg_hba.confの変更

ここでは、認証を許可するIPアドレスの範囲を設定します。
今回は、全てのIPアドレスを許可する設定にします。
*セキュリティ上、よろしくないので、業務で使用する際は必要な範囲のみ許可するようにして下さい。

まずは、以下のコマンドで「pg_hba.conf」のバックアップを取得します。

[root@localhost ~]# cd /var/lib/awx/pgdocker/10/data/
[root@localhost data]# cp -pv pg_hba.conf pg_hba.conf.mst
`pg_hba.conf' -> `pg_hba.conf.mst'

次に「pg_hba.conf」 の修正を行います。
以下のように、「host all all 0.0.0.0/0 trust」を追記して下さい。

[root@localhost data]# vi pg_hba.conf
~~省略~~
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
~~省略~~
↓ 既存の行は変更せず、追記すること
~~省略~~
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               trust
# IPv6 local connections:
~~省略~~

以上で、pg_hba.confの変更作業は完了です。

docker-compose.ymlの変更

ここでは、外部からの接続をDockerコンテナ(今回はPostgreSQLがインストールされているコンテナ)に渡すため、ポートフォワーディングの設定を行います。

まずは、以下のコマンドで「docker-compose.yml」のバックアップを取得します。

[root@localhost data]# cd /var/lib/awx/awxcompose/
[root@localhost awxcompose]# cp -pv docker-compose.yml docker-compose.yml.mst
`docker-compose.yml' -> `docker-compose.yml.mst'

次に「docker-compose.yml」 の修正を行います。
ここでは、ポートは「5432」を指定しています。
これは、AWXインストール時に設定したもので、別のポートを設定してAWXをインストールした方は適宜変更して下さい。

[root@localhost awxcompose]# vi docker-compose.yml
~~省略~~
  postgres:
    image: postgres:10
    container_name: awx_postgres
    restart: unless-stopped
    volumes:
~~省略~~
↓ 既存の行は変更せず、追記すること
~~省略~~
  postgres:
    image: postgres:10
    container_name: awx_postgres
    ports:
      - "5432:5432"
    restart: unless-stopped
    volumes:
~~省略~~

以上で、docker-compose.ymlの変更作業は完了です。

設定の反映

ここでは、「pg_hba.confの変更」と「docker-compose.ymlの変更」で変更した設定の反映を行います。
「docker-compose」コマンドでコンテナの再起動をすることで設定が反映されます。

まずは、コンテナを停止させます。

2022/3/3 修正前

コンテナの停止方法ですが、こちらを実行するとコンテナ内に配置したファイルなどが削除されてしまうため、下記の方法で停止させることを推奨します。

[root@localhost awxcompose]# docker-compose down
Stopping awx_task     ... done
Stopping awx_web      ... done
Stopping awx_redis    ... done
Stopping awx_postgres ... done
Removing awx_task     ... done
Removing awx_web      ... done
Removing awx_redis    ... done
Removing awx_postgres ... done
Removing network awxcompose_default
2022/3/3 修正後
[root@localhost ~]# cd /var/lib/awx/awxcompose/
[root@localhost awxcompose]# docker-compose stop
Stopping awx_task     ... done
Stopping awx_web      ... done
Stopping awx_redis    ... done
Stopping awx_postgres ... done

次に、コンテナの起動を行います。

[root@localhost awxcompose]# docker-compose up -d
Creating awx_postgres ... done
Creating awx_web ... done
Creating awx_task ... done
Creating awx_redis ...
Creating awx_web ...
Creating awx_task ...

正しく起動されたかの確認を行います。
合わせて、設定が反映されていることも確認します。
下記のように、「awx_postgres」コンテナの「PORTS」の値が「0.0.0.0:5432->5432/tcp, :::5432->5432/tcp」となっていれば設定が反映されています。

[root@localhost awxcompose]# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED         STATUS         PORTS                                       NAMES
e1617c621326   ansible/awx:15.0.1   "/usr/bin/tini -- /u…"   2 minutes ago   Up 2 minutes   8052/tcp                                    awx_task
7e3ff25fdc07   ansible/awx:15.0.1   "/usr/bin/tini -- /b…"   2 minutes ago   Up 2 minutes   0.0.0.0:80->8052/tcp, :::80->8052/tcp       awx_web
1cb86a23e1bb   postgres:10          "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   awx_postgres
a3540e4fe926   redis                "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   6379/tcp                                    awx_redis

以上で、設定の反映作業は完了となります。

接続確認(pgAdminで接続)

ここでは、「pgAdmin」からデータベースに接続してみます。
pgAdminを起動し、新しいサーバを作成します。
接続設定は以下になります。(AWXインストール時に下記の設定を変更している場合は変更した値を入力して下さい)
設定の入力後は「保存」ボタンをクリックします。
「保存」ボタンのクリックで自動的にデータベースに接続されます。

・ホスト名/アドレス:AWXがインストールされているサーバ
・ポート番号:5432
・管理用データベース:awx
・ユーザ名:awx
・パスワード:awxpass

私の環境では、以下のように設定しました。

下記画像の赤枠のように表示されれば、正しく接続されています。

以上で、AnsibleAWXのデータベース(PostgreSQL)への接続手順(pgAdmin版)は終了となります。

コメント

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