소개
이 문서에서는 Cisco IoT FND PostgreSQL OVA를 설치하고 VMware ESXi에서 FND 릴리스 5.0.0에서 이후 릴리스로 업그레이드하는 방법에 대해 설명합니다.
사전 요구 사항
VMware ESXi 7.x 이상
Cisco IoT FND(Field Network Director) PostgreSQL OVA(Open Virtual Appliance) 릴리스 5.0.0 이상
VM 요구 사항:
Memory : 24GB
vCPU: 4
디스크: 최소 450GB
사용되는 구성 요소
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
Cisco IoT FND PostgreSQL OVA 구축
다음은 VMware ESXi 버전 7.x 또는 8.0 버전을 실행하는 OVA(Open Virtual Appliance) 소프트웨어와 함께 Cisco IoT FND 릴리스 5.x.x 이상 릴리스를 설치하는 지침입니다.
1단계: Cisco Software Downloads(Cisco 소프트웨어 다운로드)에서 OVA 다운로드
Cisco 소프트웨어 페이지에서 OVA 파일 다운로드 - 여기를 클릭하십시오.
2단계: VMware vSphere Client에 로그인하여 ESXi 서버에 OVA를 구축합니다.



데이터 저장소를 선택한 후 프로비저닝 유형을 선택하고 자동으로 전원 켜기 옵션을 활성화합니다. 이렇게 하면 구축 프로세스가 완료되면 가상 머신의 전원이 켜집니다. Next(다음)를 클릭합니다.
참고
씩(thick) 프로비저닝
씬 프로비저닝
완료를 클릭하기 전에 선택 사항을 검토합니다.

3단계: 자격 증명을 사용하여 로그인
OVA 구축이 완료되고 Linux 시작 화면이 나타나면 다음 기본 자격 증명을 사용합니다.
SSH 액세스
-
사용자 이름: FNDUSER
-
암호: C!sco123
GUI 액세스

4단계: 네트워크 설정
네트워크 컨피그레이션 단계를 완료합니다.
-
고정 IP 주소를 할당하거나 DHCP 서버를 사용하여 IP 주소를 할당할 수 있는지 확인합니다.
-
호스트 VM에 유효하고 연결 가능한 DNS 서버를 구성합니다.
-
IP 컨피그레이션이 완료된 후 네트워크 서비스를 다시 시작합니다.



Cisco IoT FND를 Release 5.0에서 5.1로 업그레이드
1단계: 업그레이드 패키지 다운로드
Cisco Software Download(Cisco 소프트웨어 다운로드) 페이지에서 업그레이드 패키지 다운로드 - 여기를 클릭하십시오.
파일 이름: CISCO-IOTFND-VPI-K9-UPGRADE-SCRIPTS-5.1.0-155.zip
2단계: 업그레이드 전 확인 수행
업그레이드를 진행하기 전에 Cisco IoT FND 서비스의 상태 및 운영 상태를 확인하십시오.



3단계: 업그레이드 RPM을 /opt 디렉토리에 복사합니다.

4단계: Upgrade 명령 실행
예:
rpm -Uvh upgrade-ova—<릴리스>-<빌드 번호>.rpm
[root@iot-fnd opt]# rpm -Uvh upgrade-ova-5.1.0-155.rpm
warning: upgrade-ova-5.1.0-155.rpm: Header V4 RSA/SHA256 Signature, key ID a5a10227: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:upgrade-ova-5.1.0-155 ################################# [100%]
Deleting /var/lib/docker/volumes/fogd_data/_data/dist/appmgr/extensions/fnd/dependencies...
Deletion complete.
Started installer in background. Please check ~/rpm.log in few minutes for details.
[root@iot-fnd opt]#
Mon Jan 12 13:38:02 EST 2026 Background installer started
Mon Jan 12 13:38:02 EST 2026 Please wait until the 'RPM installation completed' message is logged
Mon Jan 12 13:38:02 EST 2026 Upgrading cgms-postgres-5.1.0-155.x86_64.rpm
Verifying... ########################################
Preparing... ########################################
Updating / installing...
cgms-postgres-5.1.0-155 ########################################
Cleaning up / removing...
cgms-postgres-5.0.0-117 ########################################
Mon Jan 12 13:38:22 EST 2026 Upgrading cgms-influx-5.1.0-155.x86_64.rpm
Verifying... ########################################
Preparing... ########################################
Updating / installing...
cgms-influx-5.1.0-155 ########################################
Cleaning up / removing...
cgms-influx-5.0.0-117 ########################################
Mon Jan 12 13:38:28 EST 2026 monit-5.33.0-1.el7 already installed on non-RHEL 9 system
Mon Jan 12 13:38:36 EST 2026 Stopping PostgreSQL services
Mon Jan 12 13:39:37 EST 2026 Upgrading Postgresql 16.7
Mon Jan 12 13:39:38 EST 2026 Using RHEL 8.x Installing PostgreSQL 16.7 libraries
warning: postgresql16-libs-16.7-1PGDG.rhel8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 08b40d20: NOKEY
Verifying... ########################################
Preparing... ########################################
Updating / installing...
postgresql16-libs-16.7-1PGDG.rhel8 ########################################
postgresql16-16.7-1PGDG.rhel8 ########################################
postgresql16-server-16.7-1PGDG.rhel8 ########################################
postgresql16-contrib-16.7-1PGDG.rhel8 ########################################
Mon Jan 12 13:39:42 EST 2026 Migrating DB data to Postgresql 16.7
Initializing database ... OK
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-16.service → /usr/lib/systemd/system/postgresql-16.service.
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
Checking database user is the install user ok
Checking database connection settings ok
Checking for prepared transactions ok
Checking for system-defined composite types in user tables ok
Checking for reg* data types in user tables ok
Checking for contrib/isn with bigint-passing mismatch ok
Checking for incompatible "aclitem" data type in user tables ok
Checking for user-defined encoding conversions ok
Checking for user-defined postfix operators ok
Checking for incompatible polymorphic functions ok
Creating dump of global objects ok
Creating dump of database schemas ok
Checking for presence of required libraries ok
Checking database user is the install user ok
Checking for prepared transactions ok
Checking for new cluster tablespace directories ok
If pg_upgrade fails after this point, you must re-initdb the
new cluster before continuing.
Performing Upgrade
------------------
Setting locale and encoding for new cluster ok
Analyzing all rows in the new cluster ok
Freezing all rows in the new cluster ok
Deleting files from new pg_xact ok
Copying old pg_xact to new server ok
Setting oldest XID for new cluster ok
Setting next transaction ID and epoch for new cluster ok
Deleting files from new pg_multixact/offsets ok
Copying old pg_multixact/offsets to new server ok
Deleting files from new pg_multixact/members ok
Copying old pg_multixact/members to new server ok
Setting next multixact ID and offset for new cluster ok
Resetting WAL archives ok
Setting frozenxid and minmxid counters in new cluster ok
Restoring global objects in the new cluster ok
Restoring database schemas in the new cluster ok
Copying user relation files ok
Setting next OID for new cluster ok
Sync data directory to disk ok
Creating script to delete old cluster ok
Checking for extension updates ok
Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade.
Once you start the new server, consider running:
/usr/pgsql-16/bin/vacuumdb --all --analyze-in-stages
Running this script will delete the old cluster's data files:
./delete_old_cluster.sh
Starting new PostgreSQL server...
waiting for server to start.... done
server started
Setting password encryption method to 'scram-sha-256'...
ALTER ROLE
ALTER ROLE
Stopping new PostgreSQL server...
waiting for server to shut down.... done
server stopped
Upgrade and password config completed.
Mon Jan 12 13:40:05 EST 2026 Data migration completed
Removed /etc/systemd/system/multi-user.target.wants/postgresql-12.service.
Reinitializing monit daemon
Mon Jan 12 13:40:53 EST 2026 Deleting postgres 12
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
postgresql12 x86_64 12.12-1PGDG.rhel8 @@commandline 8.6 M
postgresql12-contrib x86_64 12.12-1PGDG.rhel8 @@commandline 2.3 M
postgresql12-libs x86_64 12.12-1PGDG.rhel8 @@commandline 1.5 M
postgresql12-server x86_64 12.12-1PGDG.rhel8 @@commandline 21 M
Transaction Summary
================================================================================
Remove 4 Packages
Freed space: 33 M
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: postgresql12-contrib-12.12-1PGDG.rhel8.x86_64 1/1
Erasing : postgresql12-contrib-12.12-1PGDG.rhel8.x86_64 1/4
Running scriptlet: postgresql12-server-12.12-1PGDG.rhel8.x86_64 2/4
Erasing : postgresql12-server-12.12-1PGDG.rhel8.x86_64 2/4
Running scriptlet: postgresql12-server-12.12-1PGDG.rhel8.x86_64 2/4
Erasing : postgresql12-12.12-1PGDG.rhel8.x86_64 3/4
Running scriptlet: postgresql12-12.12-1PGDG.rhel8.x86_64 3/4
Erasing : postgresql12-libs-12.12-1PGDG.rhel8.x86_64 4/4
Running scriptlet: postgresql12-libs-12.12-1PGDG.rhel8.x86_64 4/4
Verifying : postgresql12-12.12-1PGDG.rhel8.x86_64 1/4
Verifying : postgresql12-contrib-12.12-1PGDG.rhel8.x86_64 2/4
Verifying : postgresql12-libs-12.12-1PGDG.rhel8.x86_64 3/4
Verifying : postgresql12-server-12.12-1PGDG.rhel8.x86_64 4/4
Installed products updated.
Removed:
postgresql12-12.12-1PGDG.rhel8.x86_64
postgresql12-contrib-12.12-1PGDG.rhel8.x86_64
postgresql12-libs-12.12-1PGDG.rhel8.x86_64
postgresql12-server-12.12-1PGDG.rhel8.x86_64
Complete!
Mon Jan 12 13:41:00 EST 2026 Using PostgreSQL version 16 for configuration path.
setting idle_in_transaction_session_timeout to 3h
set idle_in_transaction_session_timeout to 3h
Mon Jan 12 13:41:01 EST 2026 Already running influxdb 1.8.3
Mon Jan 12 13:41:04 EST 2026 Already running docker-ce 19.03.15
Mon Jan 12 13:41:04 EST 2026 Restarting services
Mon Jan 12 13:41:34 EST 2026 RPM installation completed
Cisco IoT FND on OVA upgrade is complete.