Welcome to the home of the Perforce Helix Installer project.
Perforce Helix is a unified platform for collaborative development, version management, and protection of intellectual property. It consists of an integrated ecosystem of proven, enterprise-grade systems for versioning, collaboration and code review, continuous integration and delivery, and other aspects of a DevOps pipeline.
This Helix Installer is capable of quickly transforming a vanilla Linux machine -- virtual, bare metal, Docker container, etc. -- into a near-enterprise-grade deployment of several Helix Core Server components typically be present in a true enterprise installation.
Note that this software SHOULD NEVER EXIST on a Production Perforce server. The is intended to quickly tear down and rebuild a fresh Perforce server (e.g. for operating test suites). It should not exist on a machine containing real Perforce data.
It may be useful for doing an initial installation, e.g. to a cloud hosted environment. After the initial install, the
reset_sdp.sh script should be removed.
This software is community supported. Evolution can also be driven by engaging Perforce Consulting. Please DO NOT contact Perforce Support for the Helix Installer, as it is not an officially supported product offering.
The installation uses the Server Deployment Package (SDP).
By default, the Helix Installer installs a specific version of the SDP, using a simple tar file from the downloads folder of the SDP project. This version is coded in a Helix Installer script, which is updated and release from time to time following successful integration testing with the given SDP version.
The Helix Installer can also clone the SDP project's
dev branch to get the latest software available in the given branch. This is done using Helix native DVCS features (e.g.
p4 clone) to clone the SDP mainline from the workshop, optionally overlaying the latest with a specified shelved changelist (see SDP Dev Branch Testing below). As a general rule, it is best to stick with the default 'main' branch unless Perforce Consulting recommends using the dev branch for some specific (generally temporary) reason.
The installation is suitable for:
reset_sdp.sh script is the only script that should be downloaded. It downloads everything it needs, including other scripts and files from this Helix Installer package, executables from the Perforce FTP site, and the SDP from The Workshop (acquired using Helix native DVCS features ala
Once creating a fresh vanilla server machine for a supported platform, do this as the root user:
mkdir -p /hxdepots/reset cd /hxdepots/reset curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh chmod +x reset_sdp.sh
Read the documentation the manual page generated with
And then, the big moment. Make it happen:
./reset_sdp.sh -fast 2>&1 | tee reset_sdp.log
A similar procedure works for Mac OSX, except that the standard Mac interface is used manually for creating the
perforce user account.
A configured installation can be done, allowing more options to be changed using a generated
settings.cfg file. Do like so:
su - mkdir -p /hxdepots/reset cd /hxdepots/reset curl -k -s -O https://swarm.workshop.perforce.com/download/guest/perforce_software/helix-installer/main/src/reset_sdp.sh chmod +x reset_sdp.sh
Generate a default config file:
./reset_sdp.sh -C > settings.cfg
Read the documentation the manual page generated with
Edit the generated
settings.cfg file, changing the values as desired. And then run using that generated file:
./reset_sdp.sh -c settings.cfg -fast 2>&1 | tee log.reset_sdp
Note: If you want to attempt local build and installation of Python/P4Python and Perl/P4Perl into
/p4/common/perl areas, either drop the
-fast flag, or run those separate installations afterward - see the description of the
-fast flag in the doc for details on adding either or both of those afterward.
The Configured Installation method described above can be used to bootstrap a production installation. If used for this purpose, and if separate storage mounts are to be used for optimal and/or and at-scale installations, these mounts would be configured (e.g. cloud formed, or terraformed) first:
/hxdepots- Used for versioned files and checkpoints, etc.
/hxmetadata- Used for live and offline databases, etc.
/hxlogs- Used for script and application logs, active journal, etc.
See the Volume Layout and Hardware section of the SDP Guide for Unix for more information.
The Helix Installer can be used to test SDP changes shelved to the SDP dev branch in The Workshop. The following example illustrates testing a change in shelved changelist 23123:
su - mkdir -p /hxdepots/reset cd /hxdepots/reset curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh chmod +x reset_sdp.sh ./reset_sdp.sh -b dev,@23123 2>&1 | tee reset_sdp.CL23123.log
After the first test, an iterative test cycle may follow on the same shelved changelist. For each test iteration, the shelved changelist is first updated in the workspace from which the change was originally shelved, e.g. with a command like
p4 shelve -f -c 23123.
Then a new test can be done by calling
reset_sdp.sh with the same arguments. The script will re-install the SDP cleanly, and then re-apply the updated shelved changelist.
See the Helix Installer Release Notes.
The 2019.4 release is expected to add support for:
Helix Installer 2019.3 is available today. It installs the following Helix Components, all fully configured an integrated:
The Helix Installer 2019.4 version handles all aspects of installation. It does the following:
Following installation, it also does the following to be more convenient for demos, and also give a more production-like feel:
p4dand other binaries directly from the Perforce FTP server).
The Helix Installer Test Suite uses Vagrant, a command-line virtualization interface and Virtual Box virtualization technology. The test suite can be used for standalone demonstrations of the Helix Installer or the SDP.
Helix Installer 2019.4 Platform Support notes:
|Amazon Linux 2||M|
|CentOS/RHEL 6.5+||A||Supported. May work on earlier CentOS/RHEL 6 versions, but not tested.|
|CentOS/RHEL 7.6+||A||Supported. May work on earlier CentOS/RHEL 7 versions, but not tested.|
|CentOS/RHEL 8||U||Not yet tested.|
|SuSE 12||L||Known to work at least once, no ongoing testing at present.|
|Ubuntu 16.04 LTS Release (Xenial)||A||Only Ubuntu LTS releases will be supported.|
|Ubuntu 18.04 LTS Release (Bionic)||L||The default shell in bionic causes the Helix Installer to fail.|
|OSX 10.14 Mojave||L||Limited support for Mac OSX/Darwin. Does not create 'perforce' OS user, other limitations.|
As of August 2019, this project is functional and active, and has been actively used since April 2015. It has been actively maintained to keep pace with SDP changes up to and including the SDP 2019.1 release.
The Component Based Development (CBD) system, another project in The Workshop, uses this Helix Installer as part of its automated test suite. In conjunction with Vagrant and Virtual Box, which build a vanilla VM from the ground up, the CBD Test Suite uses the Helix Installer to deploy a Perforce server, complete with Sample Depot test data set, plus Python and P4Python needed to test the CBD scripts.
A slightly modified Helix Installer is a key component of the Battle School Workshop. The Battle School Workshop Lab Engine quickly tears down and spins up a fresh, enterprise-style Helix installation -- and then breaks it in order to simulate real-world problems that students learn to identify and fix. The Battle School version of the Helix Installer (not available for public consumption) adds a simulated global topology with replicas and edge servers.
Please [contact Perforce Consulting Services] (mailto:firstname.lastname@example.org) for more information.
|#22||26030||tom_tyler||Documentation enhancements, including adding sample generated settings.cfg file.|
|#21||25998||tom_tyler||More README.md tweaks prior to release.|
|#20||25997||tom_tyler||Updated Version, ReleaseNotes.md, and README.md for release.|
Adjusted test suite to test only Ubuntu 16.04 Long Term Support (LTS)
|#18||25821||tom_tyler||Updated Version and Release Notes for release.|
Dropping Ununtu 18 from test suite. Defauilt shell is 'sh' rather than 'bash',
and our Package repository doesn't yet support Ubuntu 18. Support may be re-added
Refactored test suite details into a separate file.
Added a missing 'chmod +x' step.
Removed exported HTML format, opting to rely soley on Markdown
|#15||25288||tom_tyler||Fixed typo in 'vagrant' command for test suite.|
|#14||25283||tom_tyler||Updated for release.|
|#13||25249||tom_tyler||Updated for v3.x.|
Updated Road Map.
Added Support comments to more clearly indicate the Helix Installer is community supported.
Added notes on Test Suite and testing with Vagrant.
|#11||23873||tom_tyler||Added openssl-devel to list of needed packages.|
|#10||23869||tom_tyler||Added zlib-devel to list of needed packages.|
|#9||23866||tom_tyler||Updated roadmap and fixed a typo.|
|#8||23865||tom_tyler||Added rsync to list of packages needed.|
|#7||23864||tom_tyler||Added rsync to list of packages needed.|
|#6||23609||tom_tyler||Routine merge-down from main.|
Updated README page and release notes.
Updated Version for release.
|#4||23011||tom_tyler||Routine merge down to dev from main.|
|#3||21827||tom_tyler||Helix Installer, Routine merge down to dev from main.|
|#2||19315||tom_tyler||Routine Merge Down to dev from main for helix-installer.|
|#1||19232||tom_tyler||Populate -b perforce_software-helix-installer-dev.|
|#1||19230||tom_tyler||Populate -o //guest/tom_tyler/helix-installer/... //guest/perforce_software/helix-installer/....|
|#5||16848||tom_tyler||Fixed a typo.|
|#4||16672||tom_tyler||Added clear step-by-step usage instructions.|
|#3||16669||tom_tyler||Updated README.md file for Helix Installer Project.|
|#2||16410||tom_tyler||Updated supported versions.|
Moved Helix Installer to new Workshop Standard
for personal projects.
|#1||12335||tom_tyler||Copied README.me up to main.|
|#1||12333||tom_tyler||Bootstrapped doc file.|