Skip to content

System Pulse Role Usage Guide

Requirements

None

Prerequisites

  1. Microsoft SQL must be installed on the multipurpose SQL server, and the System Pulse database must be created with the necessary permissions and configuration. This can be done using the Microsoft SQL role.
  2. The customer must provide a copy of the System Pulse MSI.
  3. The following variables must be defined. The variables should be all uppercase when defined as environment variables, but all lowercase when defined in host_vars or group_vars files or an ansible vault. Use a secure password generator to create strong passwords.
# REQUIRED — spadmin password for the SQL database connection string
# Can alternatively be set as the Ansible variable microsoft_sql_spadmin_password
export MICROSOFT_SQL_SPADMIN_PASSWORD='USE_PASSWORD_GENERATOR'

# REQUIRED — LDAP bind credentials for System Pulse
# Can alternatively be set as Ansible variables (see Ansible Variables tab)
export SYSTEM_PULSE_LDAP_BIND_USER='DOMAIN_USER'
export SYSTEM_PULSE_LDAP_BIND_PASSWORD='PASSWORD_OF_DOMAIN_USER'
# REQUIRED — SQL server hostname for the connectionStrings.config
system_pulse_sql_hostname: 'SQL_SERVER_HOSTNAME'

# REQUIRED — spadmin password for the SQL database connection string
# Can alternatively be set as the environment variable MICROSOFT_SQL_SPADMIN_PASSWORD
microsoft_sql_spadmin_password: 'USE_PASSWORD_GENERATOR'

# OPTIONAL — SQL user for the connectionStrings.config (default: spadmin)
system_pulse_sql_user: 'spadmin'

# REQUIRED — LDAP bind credentials for System Pulse
# Can alternatively be set as environment variables (see Environment Variables tab)
system_pulse_ldap_bind_user: 'DOMAIN_USER'
system_pulse_ldap_bind_password: 'PASSWORD_OF_DOMAIN_USER'

Tags

A tag must be specified when running this role. Running without --tags or with --tags all is not supported and will result in an error.

Tag Includes Description
install prerequisites, dependencies, install_system_pulse, configure_system_pulse Runs all tasks required to install and configure System Pulse.
prerequisites Runs only the prerequisites tasks (resolve install user/password, validate required variables).
dependencies Runs only the dependencies tasks (IIS features and configuration).
install_system_pulse Runs only the MSI installation tasks.
configure_system_pulse Runs only the configuration tasks (connection strings, LDAP membership, SMTP).

Usage

  1. Create a file in host_vars for each host System Pulse will be installed on if it doesn't already exist. The file should be named after the host's inventory name (e.g. host_vars/abcsp01.yml).
  2. A System Pulse MSI is required to install System Pulse. The playbook supports delivering it via HTTP(S) (e.g. storage account, S3 bucket, caddy file server, etc.) or by uploading it from the Ansible control node.
    • When uploading files from the Ansible control node, place the MSI in a "shared files" directory on the Ansible control node (usually a location on the container's persistent storage in /home/ansible/source/files) and set shared_files_directory in group_vars to the path of the directory. If the system_pulse_install_source_dir variable is defined in host_vars, it will override shared_files_directory for that host.
    • If the value of shared_files_directory or system_pulse_install_source_dir is a URL, the playbook will attempt to download the MSI from that location. If it's a local file path, the playbook will attempt to upload the MSI from the Ansible control node. system_pulse_install_source_file should be set to the name of the MSI file (e.g. Epic May 2026 System Pulse Fix Package 2.msi).
  3. Update each host's host_vars with the necessary variables using the sample variables below.
  4. Run the playbooks/deploy-system-pulse.yml playbook with the appropriate tag.
    ansible-playbook --limit=epic-sp-sapph.sapphire.dev playbooks/deploy-system-pulse.yml --tags install
    

Post-Install: Database Initialization Required

After installation, the System Pulse database must be initialized using the Configuration Editor before System Pulse will function. Log in to the server and run:

"C:\Program Files (x86)\Epic\System Pulse\ConfigurationEditor\SystemPulseConfigurationEditor.exe" -UPGRADE

Setting system_pulse_auto_launch_config_editor: true in host_vars will automatically schedule the Configuration Editor to launch on the next login for the user running the playbook.

Sample Variables

system_pulse_install_source_file: Epic May 2026 System Pulse Fix Package 2.msi
system_pulse_sql_hostname: epic-msql-sapph.sapphire.dev
system_pulse_ldap_bind_user: sapphire\svc-systempulse
system_pulse_ldap_bind_password: 'USE_PASSWORD_GENERATOR'