Git Product home page Git Product logo

aws-perforce's Introduction

Building Perforce Helix Core on the AWS Cloud

These AWS CloudFormation templates included with this sample deploy Perforce Helix Core on the AWS Cloud.

Perforce is a proprietary version control system that features fast synchronized operation. It’s used mainly in development environments and is particularly popular in the game industry.

Perforce and AWS also offer a free tier, Perforce Helix Core Studio Pack for AWS, which allows customers to start running Perforce on AWS.

The templates automate either of the following:

  • Deploy a single Perforce master server into a single availability zone of a new VPC
  • Deploy Perforce master server and replica server for redundancy into different availability zones of a new VPC

You can also use the AWS CloudFormation templates as a starting point for your own implementation.

Perforce-servers-architecture

License

This library is licensed under the MIT-0 License. See the LICENSE file.

The AWS CloudFormation templates download and setup Perforce Helix Core on EC2 instances during the process. Helix Core is a proprietary software and is subject to the terms and conditions of Perforce. Please refer to EULA in the following page for details.

Perforce Terms of Use

Deployment

  1. Sign in to the AWS console and click on Launch Stack below. This launches a CloudFormation stack in your AWS account. By default, the stack is launched in the us-west-2 (Oregon) region. If you want to launch it in a different region, change the region from the pull-down menu in the upper right corner of the management console.

Launch Stack

  1. On the Specify template page, keep the default setting for the template URL, and then choose Next.

  2. On the Specify stack details page, change the stack name if needed. By default, the stack name is AWSPerforceTest. Review the parameters for the template. Especially provide the following items for the parameters that require input. For all other parameters, review the default settings and customize them as necessary. When you finish reviewing and customizing the parameters, choose Next.

  • In VPC Network Configuration, Permitted IP range is configured to restrict access to the Perforce Server based on the source IPs. The default settings allow all IP addresses (0.0.0.0/0), but allowing only limited IP addresses is recommended for security reasons.

  • Perforce Server Configuration allows you to specify the EC2 instance type of the Perforce Server. By default, c5.4xlarge is recommended for use in the production environment. However, it is not always appropriate to use for testing purposes, so choose t3.nano or t3.micro for tests, which have lower hourly rates. Please note that the t3 family is intended for use in the test environment and should not be used in the production environment.

  • Select the SSH Key you use to log in to the instance from Key Pair Name. If you have not created an SSH key in advance, create a key pair in your preferred region.

  • If you scroll down the Parameters screen, you will see the EBS volume configuration you want to set to the server, but do nothing and leave it as the default. However, some parameters have larger volume sizes by default, so you may set smaller sizes if you prefer to save costs. (For testing purposes, for example, 500GiB, the lowest volume size of st1 should be sufficient for Depot, and 8 GiB of storage should be sufficient for the others. )

  • The setting Enable Replica is asking if you want to create a Perforce Replica Server. The default value is set to No, allowing to build only a Perforce Master Server. If you also need to build a Replica server, change this setting from the pull-down to Yes. (The additional procedure is requred to complete the replica setup.)

  1. Click on Next to navigate to the Configure stack options page. No additional configuration is required here. (Add tags if necessary. )

  2. Click on Next to navigate to review page. Scroll down to the bottom, and you will see check boxes in the Capabilities section. Check them all. Ensure to check all the check boxes. Click on Create Stack, and then the building process starts. It will take about 5-10 minutes to complete. When CREATE_COMPLETE is displayed, the building process is complete.

aws-perforce's People

Contributors

amazon-auto avatar kashman-amzn avatar zentahori avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

aws-perforce's Issues

PerforceServerSetupTemplate.yaml failing at 14_create_symlink

From the cfn-init.log:

...
2021-02-16 15:07:21,118 [INFO] Command 13_rewrite_config succeeded
2021-02-16 15:07:21,119 [DEBUG] Command 13_rewrite_config output:
2021-02-16 15:07:21,119 [DEBUG] Running command 14_create_symlink
2021-02-16 15:07:21,119 [DEBUG] No test for command 14_create_symlink
2021-02-16 15:07:21,122 [ERROR] Command 14_create_symlink (ln -s /opt/perforce/bin/p4 /hxdepots/sdp/Server/Unix/p4/common/bin/p4) failed
2021-02-16 15:07:21,122 [DEBUG] Command 14_create_symlink output: ln: failed to create symbolic link '/hxdepots/sdp/Server/Unix/p4/common/bin/p4': File exists

2021-02-16 15:07:21,122 [ERROR] Error encountered during build of 04_config_install_sdp: Command 14_create_symlink failed
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 542, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 260, in build
    changes['commands'] = CommandTool().apply(self._config.commands)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py", line 117, in apply
    raise ToolError(u"Command %s failed" % name)
ToolError: Command 14_create_symlink failed
2021-02-16 15:07:21,124 [ERROR] -----------------------BUILD FAILED!------------------------
2021-02-16 15:07:21,124 [ERROR] Unhandled exception during build: Command 14_create_symlink failed
Traceback (most recent call last):
  File "/opt/aws/bin/cfn-init", line 171, in <module>
    worklog.build(metadata, configSets)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 129, in build
    Contractor(metadata).build(configSets, self)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 530, in build
    self.run_config(config, worklog)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 542, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 260, in build
    changes['commands'] = CommandTool().apply(self._config.commands)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py", line 117, in apply
    raise ToolError(u"Command %s failed" % name)
ToolError: Command 14_create_symlink failed
2021-02-16 15:07:21,322 [DEBUG] CloudFormation client initialized with endpoint https://cloudformation.us-east-1.amazonaws.com
2021-02-16 15:07:21,322 [DEBUG] Signaling resource PerforceServerInstance in stack perforce-server-awsnva-01 with unique ID i-0c776817bbc062e50 and status FAILURE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.