IPアドレス管理表をエクセルで管理するのはめんどくさくさい。該当のIPアドレスが何に使われているのか、使用されているのか、いないのか確認するのもめんどくさいと感じるエンジニアは多いはずです。
こんなローカルな管理やはやめてIPアドレス管理ツールはないかと調べていたところすごくオススメのツールを見つけ構築しました。
「phpipam」
IPアドレス管理もできるし、死活管理もできる。しかもどの用途で使われているかなど詳細な情報を入れることも可能です。
かなりオススメなツールなので構築手順を紹介します。
CentOSのバージョンは以下となります。
$ cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core)
「phpipam」でIPアドレス管理を簡素化。Dockerコンテナで簡単インストール
phpipamをインストールするために事前にインストールを実行するフォルダを作成します。
私はルート直下に以下のフォルダを作成しました。
$ mkdir /docker/phpipam $ cd /docker/phpipam/
次に作成したフォルダはいかに「docker-compose.yml」を作成します。
「docker-compose.yml」のコードは以下のサイトを参考にしています。
参考URL
phpipam/phpipam-www
以下コマンドでファイルを作成します。
$ vim docker-compose.yml
タイムゾーンは日本。アクセスポートは80で設定する様にします。
そのままコピペで貼り付けます。
version: '3' services: phpipam-web: image: phpipam/phpipam-www:latest ports: - "80:80" environment: - TZ=Asia/Tokyo - IPAM_DATABASE_HOST=phpipam-mariadb - IPAM_DATABASE_PASS=my_secret_phpipam_pass - IPAM_DATABASE_WEBHOST=% restart: unless-stopped volumes: - phpipam-logo:/phpipam/css/images/logo depends_on: - phpipam-mariadb phpipam-cron: image: phpipam/phpipam-cron:latest environment: - TZ=Asia/Tokyo - IPAM_DATABASE_HOST=phpipam-mariadb - IPAM_DATABASE_PASS=my_secret_phpipam_pass - SCAN_INTERVAL=1h restart: unless-stopped depends_on: - phpipam-mariadb phpipam-mariadb: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass restart: unless-stopped volumes: - phpipam-db-data:/var/lib/mysql volumes: phpipam-db-data: phpipam-logo:
firewallで「phpipam」へのアクセスを許可する
phpipamにアクセスするためのアクセスポートをfirewallで許可します。
今回は80番ポート(http)を指定しましたので以下で対象ポートを開放します。
事前確認では対象ポートが許可されていません
$ firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
httpサービスもしくはtcp80番ポートを許可する設定を実施します。
$ firewall-cmd --add-service=http --permanent success
or
$ firewall-cmd --add-port=80/tcp --zone=public --permanent success
設定を反映させるためにfirewallの再起動を実施します。
$ firewall-cmd --reload success
再起動後、サービスもしくはポートが以下出力結果で許可されていることを確認します。
$ firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: services: cockpit dhcpv6-client http ssh ports: 80/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
注意!「CentOS8」dockerコンテナで起動してもデータベースエラーが発生するので事前対応
CentOSでDockerコンテナ間の通信が必要となります。(今回はphpipamとデータベース間)
firewallで設定をしていない場合、以下の様なエラーが発生し、データベースへアクセスができません。
phpipamは起動しません。
Could not connect to database! SQLSTATE[HY000] [2002] Host is unreachable
そのため、コンテナ間通信をするためにNAPTを許可する設定を追加します。
$ firewall-cmd --add-masquerade --permanent success $ firewall-cmd --reload success
$ firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: services: cockpit dhcpv6-client http ssh ports: 80/tcp protocols: masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules:
「phpipam」起動
上記設定が完了したら、「docker-compose」コマンドで「phpipam」を起動します。
$ docker-compose up -d Pulling phpipam-mariadb (mariadb:latest)... latest: Pulling from library/mariadb 6a5697faee43: Pull complete ba13d3bc422b: Pull complete a254829d9e55: Pull complete 2ee2cadd29fc: Pull complete 6915a184049d: Pull complete 5ca6ffdb5f56: Pull complete 1537f7bbef8b: Pull complete 5790e54322d1: Pull complete ea98cb829471: Pull complete 9435498523fe: Pull complete 8f74422942d3: Pull complete 1a9f2d945b70: Pull complete Digest: sha256:a1988653a7aa0b76a2f2034754bb25ebdcd9030fadc5118f9f837a197a803720 Status: Downloaded newer image for mariadb:latest Pulling phpipam-cron (phpipam/phpipam-cron:latest)... latest: Pulling from phpipam/phpipam-cron 188c0c94c7c5: Pull complete e63f14530b46: Pull complete 2d235303011a: Pull complete e8f4458d8a19: Pull complete 4fcfd6b825e3: Pull complete Digest: sha256:eb9cae5054e5c43e12ceb231fda5b67e0e75eff9d3d7993381ed211635b4232f Status: Downloaded newer image for phpipam/phpipam-cron:latest Pulling phpipam-web (phpipam/phpipam-www:latest)... latest: Pulling from phpipam/phpipam-www 188c0c94c7c5: Already exists e63f14530b46: Already exists 2d235303011a: Already exists e8f4458d8a19: Already exists Digest: sha256:80bd20179f195f2b645449fae7c66864370b51ac59897d2c23faa4b5ed41955f Status: Downloaded newer image for phpipam/phpipam-www:latest Creating phpipam_phpipam-mariadb_1 ... done Creating phpipam_phpipam-cron_1 ... done Creating phpipam_phpipam-web_1 ... done
上記の様に正常に起動したら、「docker ps」コマンドで以下のコンテナが起動していることを確認します。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b566128154e0 phpipam/phpipam-www:latest "/sbin/tini -- /bin/…" 2 days ago Up 2 days 0.0.0.0:80->80/tcp phpipam_phpipam-web_1 5cfd6aaa53a1 phpipam/phpipam-cron:latest "/sbin/tini -- /bin/…" 2 days ago Up 2 days 80/tcp phpipam_phpipam-cron_1 a268385d8a04 mariadb:latest "docker-entrypoint.s…" 2 days ago Up 2 days 3306/tcp phpipam_phpipam-mariadb_1
最後にブラウザ(chrom)を開き「phpipam」をインストールしたアドレスへアクセスします。
http://
phpipamのトップページ(初期設定画面)が表示されたら完了です。
phpipamの初期設定は以下となります。
以上が「phpipam」のインストール手順となります。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す