---
title: "About the <code class=\"cmdname\"><strong>manage-profile</strong></code> tool"
description: The manage-profile tool is provided with the server to work with server profiles. It includes subcommands for creating, applying, and replacing server profiles, all of which significantly reduce the effort required by an administrator to configure a server appropriately.
component: pingdirectory
version: 11.0
page_id: pingdirectory:pingdirectory_server_administration_guide:pd_ds_manage_profile_tool
canonical_url: https://docs.pingidentity.com/pingdirectory/11.0/pingdirectory_server_administration_guide/pd_ds_manage_profile_tool.html
revdate: July 5, 2024
page_aliases: ["pd_ds_manage_profile_generate_profile.adoc", "pd_ds_manage_profile_setup.adoc", "pd_ds_manage_profile_replace_profile.adoc", "pingdirectoryproxy_server_administration_guide:pd_proxy_manage_profile_tool.adoc", "pingdirectoryproxy_server_administration_guide:pd_proxy_manage_profile_gen_profile.adoc", "pingdirectoryproxy_server_administration_guide:pd_proxy_manage_profile_setup.adoc", "pingdirectoryproxy_server_administration_guide:pd_proxy_manage_profile_replace_profile.adoc", "pingdatasync_server_administration_guide:pd_sync_manage_profile_tool.adoc"]
section_ids:
  manage-profile-generate-profile: manage-profile generate-profile
  manage-profile-setup: manage-profile setup
  manage-profile-replace-profile: manage-profile replace-profile
---

# About the `manage-profile` tool

The `manage-profile` tool is provided with the server to work with server profiles. It includes subcommands for creating, applying, and replacing server profiles, all of which significantly reduce the effort required by an administrator to configure a server appropriately.

The following sections describe these subcommands in more detail. For more information about the `manage-profile` tool, run `manage-profile --help`. For more information about each individual subcommand and its options, run `manage-profile <subcommand> --help`.

## `manage-profile generate-profile`

To create a server profile from a configured server, use the `generate-profile` subcommand. The generated profile contains the following information, which provides a base for completing a profile:

* Command-line arguments that were used to set up the server

* `dsconfig` commands necessary to configure the server

* Installed server SDK extensions

* Files that are added to the server root

To produce a complete profile, some parts of the generated profile might require modifications, such as adding password files that `setup-arguments.txt` uses. The `--instanceName` and `--localHostName` arguments in `setup-arguments.txt` are made variables by `generate-profile`, and must be provided values when other `manage-profile` subcommands use the generated profile.

|   |                                                                                                       |
| - | ----------------------------------------------------------------------------------------------------- |
|   | For the PingDirectory server, LDIF files must also be added manually to the generated server profile. |

The `--excludeSetupArguments` option generates a server profile without a setup-arguments.txt file. This is useful when generating server profiles for use with Docker images.

## `manage-profile setup`

To apply a server profile to an unconfigured server, use the `setup` subcommand, which replaces the normal setup tool when using a server profile. Run `manage-profile setup` to do the following:

1. Copy the `server-root/pre-setup` files to the server root.

2. For the PingDirectory server only, apply changes for any batch files contained in the `pre-setup-dsconfig` directory.

3. Run the setup tool.

4. Copy the `server-root/post-setup` files to the server root.

5. Install any Server SDK extensions.

6. Apply changes for any `dsconfig` batch files.

7. For the PingDirectory server only, import any LDIF files contained in the `ldif` directory structure.

8. Start the server.

`manage-profile setup` creates a copy of the profile in a temporary directory specified by the `--tempProfileDirectory` option. The tool leaves the server running upon completion unless you use the `--doNotStart` option.

## `manage-profile replace-profile`

Run the `replace-profile` subcommand on a server that was originally set up with a server profile to replace its configuration with a new profile. The tool applies a specified server profile to an existing server while preserving its data, topology configuration, and replication configuration.

|   |                                                                                                   |
| - | ------------------------------------------------------------------------------------------------- |
|   | For the PingDirectory server, new LDIF files from the replacement server profile aren't imported. |

While `manage-profile replace-profile` is running, the existing server is stopped and moved to a temporary directory that the `--tempServerDirectory` argument can specify. A fresh, new server is subsequently installed and set up with the new profile. The final server is left running if it was running before the command was started, and remains stopped if it was stopped.

Run `manage-profile replace-profile` from a second uncompressed server install package on the same host as the existing server, similar to the `update` tool. Use the `--serverRoot` argument to specify the root of the existing server that will have its profile replaced.

If files have been added or modified in the server root since the most recent `manage-profile setup` or `manage-profile replace-profile` was run, they're included in the final server with the replaced profile. Otherwise, files specifically added from the `server-root` directory of the previous server profile are absent from the final server with the replaced profile. If errors occur during the subcommand, such as the new profile having an invalid `setup-arguments.txt` file, the existing server returns to its original state from before `manage-profile replace-profile` was run.

The `--skipValidation` option skips the validation step when running on an offline server

|   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| - | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | When you run the `manage-profile replace-profile` tool with an SDK extension included in the new profile, the tool invokes the `setup` command.The `manage-profile replace-profile` tool can update the server version when needed, but will fail if you attempt to downgrade the server to an earlier version. It can also directly apply configuration changes when there are no other changes in the new profile. This is a shorter process when making small changes to `dsconfig`. |
