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 main
or 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:
The 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 p4 clone
).
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 -man
:
./reset_sdp.sh -man
And then, the big moment. Make it happen:
./reset_sdp.sh 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.
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.2 release is expected to add support for:
Helix Installer 2019.1 is available today. It installs the following Helix Components, all fully configured an integrated:
The 2019.1 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:
~perforce/.bash_profile
and .bashrc
files.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 2018.2 supports:
Distro | Support | Notes |
---|---|---|
Amazon Linux 2 | M | |
CentOS/RHEL 6.5+ | A | May work on earlier versions of CentOS/RHEL 6, but not tested. |
CentOS/RHEL 7 | A | |
SuSE 12 | L | Known to work at least once, no ongoing testing at present. |
Ubuntu 16 (Xenial) | M | |
Ubuntu 18 (Bionic) | M | |
OSX 10.14 Mojave | L | Limited support for Mac OSX/Darwin. Does not create users, other limitations. |
As of April 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:consulting@perforce.com) for more information.
# Perforce Helix Installer ## Welcome Welcome to the home of the Perforce Helix Installer project. Perforce [Helix](http://www.perforce.com/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. ## Safety WARNING 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. ## Support Status 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. ## Relationship to Server Deployment Package (SDP) The installation uses the [Server Deployment Package (SDP)](https://swarm.workshop.perforce.com/projects/perforce-software-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 ```main``` or ```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. ## Helix Installer Uses The installation is suitable for: * Test suites for Helix server trigger and broker filter scripts deployed in enterprise environments. For example, the [CBD](https://swarm.workshop.perforce.com/projects/perforce-software-cbd) test suite uses the Helix Installer to quickly spin up a test environment for server and triggers * Demonstrations of Helix Core * Proof of Concept (PoC) Deployments * Training * Evaluation and Pilot projects. Because the Helix Installer uses the SDP, **transition from the demo-grade installation of the Helix Installer to an enterprise-grade installation is straightforward**. * Testing SDP changes shelved to the dev branch in The Workshop (see SDP Dev Branch Testing below). Features --- * **Easy**. Provides reasonable defaults for port numbers, passwords, data storage areas, and all inputs that would otherwise require human interaction. * **Comprehensive**. Installs P4D and P4Broker, SDP, and a complete development pre-configured environment include Perl, P4Perl, Python, and P4Python, with appropriate shell environment settings to use them all immediately. And more to come -- future versions may include Helix Swarm, Jenkins, etc. * **Fast**. Runs in under 25 minutes, including download time and building required dependencies, including Python and Perl. * **Superfast** - Runs in about 2 minutes with the '-fast' option, which omits the optional Perl and Python builds. * **Simplifies Enterprise Deployment**. While optimized for getting going quickly, the Helix Installer is designed to enable a fast path from a Proof of Concept (PoC) to small-scale production deployment following the Helix evaluation, with only a nominal hop from there to a large-scale global enterprise deployment. Global Enterprise deployments require additional planning and custom configuration based on the specific global topology. * Pre-loads the [Perforce Sample Depot](http://answers.perforce.com/articles/KB/2439), making it instantly ready for training and evaluation purposes. ### Instructions and Usage Example The `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 `p4 clone`). 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 `-man`: ``` ./reset_sdp.sh -man ``` And then, the big moment. Make it happen: ``` ./reset_sdp.sh 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. ### SDP Dev Branch Testing 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. ## Helix Installer Release Notes See the [Helix Installer Release Notes](https://swarm.workshop.perforce.com/projects/perforce_software-helix-installer/files/main/doc/ReleaseNotes.md). ## Helix Installer Roadmap ### Helix Installer 2019.2 (ETA Q2 2019) The 2019.2 release is expected to add support for: * Helix Swarm - Collaborative web-based code review and continuous delivery. * Helix4Git - Git Connector ### Helix Installer 2019.1 Helix Installer 2019.1 is available today. It installs the following Helix Components, all fully configured an integrated: * **P4D** 2018.2 - the Helix Versioning Engine, the core of Helix (with or without SSL enabled). * **P4Broker** 2018.2 - the Helix Broker, enhances custom automation capabilities, simplifies maintenances. * **SDP** 2019.1. - Server Deployment Package (SDP) * **Sample Depot** data set for training, evaluation, and demo, and pilot projects. The 2019.1 version handles all aspects of installation. It does the following: * Creates the perforce OS user, if needed. * Creates the home directory for the perforce user, if needed. * Adds OS packages as needed for P4Perl/P4Python local builds. Following installation, it also does the following to be more convenient for demos, and also give a more production-like feel: * Grants the perforce user sudo access. * Creates default `~perforce/.bash_profile` and `.bashrc` files. * Connects to the (Perforce Package Repository)[https://www.perforce.com/perforce-packages] (APT and YUM only). ## Test Suite The Helix Installer Test Suite uses [Vagrant](https://www.vagrantup.com), a command-line virtualization interface and [Virtual Box](https://www.virtualbox.org) virtualization technology. The test suite can be used for standalone demonstrations of the Helix Installer or the SDP. ## Platform Support Helix Installer 2018.2 supports: Distro | Support | Notes --- | --- | --- Amazon Linux 2| M | CentOS/RHEL 6.5+ | A | May work on earlier versions of CentOS/RHEL 6, but not tested. CentOS/RHEL 7 | A | SuSE 12 | L | Known to work at least once, no ongoing testing at present. Ubuntu 16 (Xenial)| M | Ubuntu 18 (Bionic)| M| OSX 10.14 Mojave | L | Limited support for Mac OSX/Darwin. Does not create users, other limitations. ### Support Codes: * **A**: Included in the automated test suite; should work reliably. * **M**: Occasional manual testing done in this environment. * **L**: Very limited support. ## Project Status As of April 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. ## Case Studies ### Case Study: Sample Usage of Helix Installer in CBD Test Suite The [Component Based Development (CBD)](https://swarm.workshop.perforce.com/projects/perforce-software-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](https://swarm.workshop.perforce.com/projects/perforce-software-cbd/files/main/test/auto_test_cbd_vagrant.sh) 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. ### Case Study: Sample Usage of Helix Installer in Battle School Workshop 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. ## Contact Us Please [contact Perforce Consulting Services] (mailto:consulting@perforce.com) for more information.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#48 | 30496 | C. Thomas Tyler | Updated Version, README.md, Release Notes, and doc files Release. | ||
#47 | 30459 | C. Thomas Tyler |
Change URLs in curl calls in docs and code to avoid Apache redirects. Also removed '-s' option from curl calls. |
||
#46 | 30391 | C. Thomas Tyler | Updated README.md for release. | ||
#45 | 30300 | C. Thomas Tyler | Updated Version, ReleaseNotes.md, and README.md for release. | ||
#44 | 30045 | C. Thomas Tyler | 2023.2 release; changed default version to 2023.2. | ||
#43 | 29958 | C. Thomas Tyler | Merge down from main. | ||
#42 | 29956 | C. Thomas Tyler | Updated for release. | ||
#41 | 29698 | C. Thomas Tyler |
Changed 'curl' commands referencing Workshop to use '-L'. Updated stable version numbers in README.md to use new versions with corrected URLs. |
||
#40 | 29697 | C. Thomas Tyler | Updated URL for KB article. | ||
#39 | 29614 | C. Thomas Tyler | Updated fo r2023.1 release. | ||
#38 | 29448 | C. Thomas Tyler | Added Ubuntu 22.04 to supported releases list. | ||
#37 | 29403 | C. Thomas Tyler | Version info update. | ||
#36 | 28929 | C. Thomas Tyler |
Updated README.md for Helix Installer. * Added link to Enhanced Studio Pack. * Improved messaging for getting help on Helix Installer. * Updated fixed release to latest versions. * Updated version references. |
||
#35 | 28886 | C. Thomas Tyler |
Tweaked Support status message. Tweaked suggested log file name. |
||
#34 | 28834 | C. Thomas Tyler | Updated default P4D version to r22.1. | ||
#33 | 28663 | C. Thomas Tyler |
More updates prior to release. Dropped references to P4Perl due to related install scripts being deprecated in the SDP. |
||
#32 | 28661 | C. Thomas Tyler | Updated README.md prior to release. | ||
#31 | 28401 | C. Thomas Tyler | Rolled back removal of '-k' to curl for now. | ||
#30 | 28391 | C. Thomas Tyler | Updated for 2021.4 release. | ||
#29 | 28390 | C. Thomas Tyler |
Removed insecure '-i' option from sample curl commands in README.md. |
||
#28 | 28124 | C. Thomas Tyler | Updated README.md notes. | ||
#27 | 27988 | C. Thomas Tyler | Prepared README.md for coming Helix Installer r21.3 release. | ||
#26 | 27425 | C. Thomas Tyler |
Updated README.md for coming r2021.2 release, driving various changes. Added details on installing a stable version. |
||
#25 | 26977 | C. Thomas Tyler | Merged minor doc changes from main. | ||
#24 | 26971 | C. Thomas Tyler | Updated README for coming release. | ||
#23 | 26966 | C. Thomas Tyler | Removed SuSE from tests for now; may be re-added later. | ||
#22 | 26030 | C. Thomas Tyler | Documentation enhancements, including adding sample generated settings.cfg file. | ||
#21 | 25998 | C. Thomas Tyler | More README.md tweaks prior to release. | ||
#20 | 25997 | C. Thomas Tyler | Updated Version, ReleaseNotes.md, and README.md for release. | ||
#19 | 25855 | C. Thomas Tyler |
Adjusted test suite to test only Ubuntu 16.04 Long Term Support (LTS) release. |
||
#18 | 25821 | C. Thomas Tyler | Updated Version and Release Notes for release. | ||
#17 | 25671 | C. Thomas Tyler |
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 later. |
||
#16 | 25500 | C. Thomas Tyler |
Refactored test suite details into a separate file. Added a missing 'chmod +x' step. Removed exported HTML format, opting to rely soley on Markdown format rendering. |
||
#15 | 25288 | C. Thomas Tyler | Fixed typo in 'vagrant' command for test suite. | ||
#14 | 25283 | C. Thomas Tyler | Updated for release. | ||
#13 | 25249 | C. Thomas Tyler | Updated for v3.x. | ||
#12 | 24862 | C. Thomas Tyler |
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 | C. Thomas Tyler | Added openssl-devel to list of needed packages. | ||
#10 | 23869 | C. Thomas Tyler | Added zlib-devel to list of needed packages. | ||
#9 | 23866 | C. Thomas Tyler | Updated roadmap and fixed a typo. | ||
#8 | 23865 | C. Thomas Tyler | Added rsync to list of packages needed. | ||
#7 | 23864 | C. Thomas Tyler | Added rsync to list of packages needed. | ||
#6 | 23609 | C. Thomas Tyler | Routine merge-down from main. | ||
#5 | 23282 | C. Thomas Tyler |
Updated README page and release notes. Updated Version for release. |
||
#4 | 23011 | C. Thomas Tyler | Routine merge down to dev from main. | ||
#3 | 21827 | C. Thomas Tyler | Helix Installer, Routine merge down to dev from main. | ||
#2 | 19315 | C. Thomas Tyler | Routine Merge Down to dev from main for helix-installer. | ||
#1 | 19232 | C. Thomas Tyler | Populate -b perforce_software-helix-installer-dev. | ||
//guest/perforce_software/helix-installer/main/README.md | |||||
#1 | 19230 | C. Thomas Tyler |
Populate -o //guest/tom_tyler/helix-installer/... //guest/perforce_software/helix-installer/.... |
||
//guest/tom_tyler/helix-installer/main/README.md | |||||
#5 | 16848 | C. Thomas Tyler | Fixed a typo. | ||
#4 | 16672 | C. Thomas Tyler | Added clear step-by-step usage instructions. | ||
#3 | 16669 | C. Thomas Tyler | Updated README.md file for Helix Installer Project. | ||
#2 | 16410 | C. Thomas Tyler | Updated supported versions. | ||
#1 | 15829 | C. Thomas Tyler |
Moved Helix Installer to new Workshop Standard for personal projects. |
||
//guest/tom_tyler/sw/main/hi/README.md | |||||
#1 | 12335 | C. Thomas Tyler | Copied README.me up to main. | ||
//guest/tom_tyler/sw/dev/hi/README.md | |||||
#1 | 12333 | C. Thomas Tyler | Bootstrapped doc file. |