...
- Take backup of artifact repository folder using tar/zip commands on Production FlexDeploy server. 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 *
- 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.
- You must delete FD,FF,FD_ADMIN database users/schemas/databases from Test environment if they already exist before starting import process. If necessary take backup of Test FlexDeploy database prior to starting this process.
Run the following sql command 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.
Code Block language sql theme RDark title Drop tables, views and procedures without dropping user 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.
- You must delete FD,FF,FD_ADMIN database users/schemas/databases from Test environment if they already exist before starting import process. If necessary take backup of Test FlexDeploy database prior to starting this 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.
Update Target Database as Necessary
...
- Now make various updates to make sure to limit access to the FlexDeploy Test environment and limit what FlexDeploy Test can do against various endpoints. You can customize any of these steps as per your needs. Make sure to run this on Test environment only.
Disable external realm and users, so access to FlexDeploy is very limited. Update SQL as appropriate for your setup. For example,
Code Block language sql theme RDark title Inactivate Security Setup to restrict access update FD.FD_REALM set is_active='N'; update FD.FD_USER set is_active='N' where local_user='N'; -- update as appropriate commit;
Disable all endpoints, so Test FlexDeploy can not run any executions until Administrator explicitly enables some endpoints. Update base directory to not conflict in case when one of these Endpoints is enabled in Test FlexDeploy. For example,
Code Block language sql theme RDark title Update Endpoints for Test environment update FD.ENDPOINT set is_active='N' where connection_type='SSH'; update FD.ENDPOINT set base_directory = base_directory || 'fdtest'; commit;
If you have workflows that perform tags on Source Control Systems, make sure to update the workflows before running builds, so you do not conflict with tags created by Production FlexDeploy. You can do this by simply running this SQL also. Adjust according to your requirements.
Code Block language sql theme RDark title Update version syntax update FD.PROJECT_STREAM set version_syntax = version_syntax || ' + ".fdtest"'; commit;
Delete all Continuous Integration triggers.
Code Block language sql theme RDark title Delete CI Triggers delete from FD.PROJECT_TRIGGER_CONFIG; delete from FD.PROJECT_TRIGGER; commit;
Disable production environment. so Test FlexDeploy can not run any executions even for testing against Production environment. For example,
Code Block language sql theme RDark title Disable Production environment update FD.ENVIRONMENT set is_active='N' where environment_code='PROD'; -- update as appropriate commit;
- Now start Test FlexDeploy and validate it.
- You can make necessary adjustments to Realm, User, Groups to validate setup and perform tests as necessary. This is necessary as we disabled user and realms in previous steps.
- You can activate specific Endpoints that you want to be included in Test environment validations.
- Update System Settings as appropriate.
- Change FD_SERVER_BASE_URL.
- Change SMTP_FROM_ADDRESS. This will make sure that emails are coming from different address for Test FlexDeploy.