前回は、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」コマンドでコンテナの再起動をすることで設定が反映されます。
まずは、コンテナを停止させます。
次に、コンテナの起動を行います。
[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版)は終了となります。
コメント