...
Make sure target environment is ready.
Keep target FlexDeploy down for this process.
Export Import Database & Copy Artifacts, Plugins, and
...
InfluxDB data
Info |
---|
FlexDeploy uses Database tables to track all activities & configurations, and Artifact Repository folder to store build artifacts. So you must copy both items to target for successful clone. |
Export data from Production FlexDeploy database.
You should export FD,FF and FD_ADMIN.
Take backup of artifact repository folder using tar/zip commands on Production FlexDeploy server. (Optional if you won’t be deploying any old artifacts, they are not needed) For example,
cd /flexdeploy/artifacts
tar -czvf /app/backup/flexdeploy_artifacts_prod.tar.gz *
Take backup of plugins folder using tar/zip commands on Production FlexDeploy server. Plugins folder is under server working directory. You can determine working folder by looking at flexagon.fd.application.root system property on server command line. For example,
cd /flexdeploy/application/plugins
tar -czvf /app/backup/flexdeploy_plugins.tar.gz *
Take backup of vsm folder (InfluxDB)
cd /flexdeploy/application/vsm
tar -czvf /app/backup/flexdeploy_vsm_prod.tar.gz *
Make sure Test FlexDeploy is now stopped for import process.
Import data in to target FlexDeploy database. Make sure to run this on Test environment only.
Run the following sql command for the appropriate database that will generate many drop table, view and procedure statements as output. Once this sql is complete, copy all of the output and execute that against the test database. This method will drop all of the data but maintain table spaces, quotas and passwords for the given schemas. This will also maintain the same password that is stored in the context.xml file.
Oracle DB: Drop tables, views and procedures without dropping user
Code Block language sql select 'drop table ' || owner ||'.' || table_name || ' cascade constraints PURGE;' from dba_tables where owner in ('FD','FD_ADMIN','FF') union all select 'drop view ' || owner || '.' || view_name || ';' from dba_views where owner in ('FD','FD_ADMIN','FF') union all select 'drop procedure ' || owner || '.' || object_name || ';' from dba_objects where owner in ('FD','FD_ADMIN','FF') and object_type = 'PROCEDURE';
...
Make sure there are no errors in import process. If there are errors, make corrections appropriately and restart import process.
At this point, the Test FlexDeploy database should be copy of Production database.
Copy artifacts zip file to Test FlexDeploy server and extract it in the artifact repository folder. You can determine Artifact Repository folder by looking at flexagon.fd.repository.root system property on server command line. Make sure to run this on Test environment only.
cd /flexdeploy/artifacts
tar -czvf /app/backup/flexdeploy_artifacts_test.tar.gz *
rm -rf *
tar -xzvf /app/backup/flexdeploy_artifacts_prod.tar.gz
Now FlexDeploy artifact repository is also copied.
Copy plugins tar/zip file to Test FlexDeploy server and extract it in the plugins directory under working directory. You can determine working folder by looking at flexagon.fd.application.root system property on server command line.
cd /flexdeploy/application/plugins
rm -rf ./*
tar -xzvf /app/backup/flexdeploy_plugins.tar.gz
Now FlexDeploy plugins are also copied.
Copy Influx DB
To sync your influx db between prod and test, follow these steps:
In TEST (Target)
cd /flexdeploy/application/vsm
tar -czvf /app/backup/flexdeploy_vsm_test.tar.gz *
rm -rf ./*
tar -xzvf /app/backup/flexdeploy_vsm_prod.tar.gz
Now FlexDeploy InfluxDB data is also copied.
Update Target Database as Necessary
...