SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
1	
  
Perforce Swarm
Get it. Use it. Hack it. Love it!
Geoff Nicol
Technical Architect
Perforce Software
Stewart Lord
Technical Architect & Team Lead
Perforce Software
2	
  
Agenda
•  Swarm Overview
•  Installing Swarm
•  Reviews: Starting, Updating, Committing
•  Extending Swarm
•  Hands on Reviews & Q/A
3	
  
Swarm Overview!
4	
  
Installing Swarm
5	
  
Software Requirements
•  Linux 2.6+ Intel or Mac OS X 10.6+
•  Apache 2.2+
•  PHP
•  5.3.3+, 5.4+ recommended
•  P4PHP extension, APC recommended
•  P4D 2010.2+, 2013.1+ recommended
6	
  
Hardware Requirements
•  No hard/fast requirements at this time
•  Internally, VM with 4 GB ram and 2 cores
•  Perforce has ~250 employees; if you have more:
•  Use bigger hardware
•  Scale Swarm horizontally
•  Run Swarm behind a replica
7	
  
Ubuntu Packages
•  apt-get update; apt-get upgrade
•  apt-get install
•  vim unzip ssh
•  curl apache2 libapache2-mod-php5 php5 php-apc
8	
  
Extract Swarm
•  Under /var/www
•  wget ftp://ftp.perforce.com/perforce/r13.1/
bin.multiarch/swarm.tgz
•  tar -zxf swarm.tgz
•  ln -s swarm-<version> swarm
•  chown -R www-data:www-data data
9	
  
Configure Swarm
•  Create file /var/www/swarm/data/config.php
<?php
return array(
'p4' => array(
'port' => 'perforce:1666',
'user' => 'swarm',
'password' => 'password',
)
);
10	
  
Configuring Apache
•  a2enmod rewrite
•  in /etc/apache2/sites-available/default:
•  change DocumentRoot to /var/www/swarm/public
•  update Directory to /var/www/swarm/public
•  under Directory AllowOverride All
11	
  
Configuring PHP
•  Create file /etc/php5/conf.d/perforce.ini with:
extension=/var/www/swarm/p4-bin/bin.linux26x86_64/p4php/perforce-php54.so
12	
  
Configuring Swarm s Worker Queue
•  Add a cron job similar to below:
* * * * * curl -o /dev/null -m1 http://swarm-host/queue/worker
13	
  
Verifying Install
•  apachectl restart
•  You re now where the OVA would start
•  visit http://my-swarm-host/ to ensure site is up
•  login as a super user
•  view about swarm dialog for trigger token
•  visit http://my-swarm-host/queue/status
14	
  
Completing Install - Perforce Triggers
•  Copy swarm-trigger.sh to your perforce server
•  Configure swarm host and swarm token
•  Run the script with no args for trigger values
•  Install triggers
15	
  
Trouble?
•  Check log files
•  /var/www/swarm/data/log
•  /var/log/apache2/error.log
•  Ask for help! support@perforce.com
16	
  
Reviews
Starting / Updating / Committing
17	
  
Extensions!
18	
  
Hands on Code Review!
19	
  
Hands On
•  Step 1: Connect to WiFi
•  SSID Swarm no password
•  Step 2: Connect to Swarm
•  http://192.168.2.220
20	
  
SSID Swarm http://192.168.2.220 P4PORT 192.168.2.220:1666
• Step 3: Make a perforce user
•  CLI: p4 -p <p4port> -u <myuser> user
•  P4V: Open connection, enter port and click new user
• Step 4: Make a client
•  CLI: p4 -p <p4port> -u <myuser> client
•  P4V: On connection dialog, click new Workspace
• Step 5: Login to Swarm
• Step 6: Create a file for your username and shelve it
• Step 7: Review your change / Profit
21	
  
Questions?
Geoff Nicol - gnicol@perforce.com
Stewart Lord - slord@perforce.com

Mais conteúdo relacionado

Mais procurados

Mais procurados (15)

Setting up Cisco WSA Proxy in Transparent and Explicit Mode
Setting up Cisco WSA Proxy in Transparent and Explicit ModeSetting up Cisco WSA Proxy in Transparent and Explicit Mode
Setting up Cisco WSA Proxy in Transparent and Explicit Mode
 
Chef Provisioning a Chef Server Cluster - ChefConf 2015
Chef Provisioning a Chef Server Cluster - ChefConf 2015Chef Provisioning a Chef Server Cluster - ChefConf 2015
Chef Provisioning a Chef Server Cluster - ChefConf 2015
 
How To Deploy A Cloud Based Webserver in 5 minutes - LAMP
How To Deploy A Cloud Based Webserver in 5 minutes - LAMPHow To Deploy A Cloud Based Webserver in 5 minutes - LAMP
How To Deploy A Cloud Based Webserver in 5 minutes - LAMP
 
Deep dive networking
Deep dive networkingDeep dive networking
Deep dive networking
 
Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
 
Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with Ansible
 
Elastix4.0 High Availability without ElastixHA module
Elastix4.0 High Availability without ElastixHA moduleElastix4.0 High Availability without ElastixHA module
Elastix4.0 High Availability without ElastixHA module
 
SharePoint Disaster Recovery in Microsoft Azure
SharePoint Disaster Recovery in Microsoft AzureSharePoint Disaster Recovery in Microsoft Azure
SharePoint Disaster Recovery in Microsoft Azure
 
Inside the Chef Push Jobs Service - ChefConf 2015
Inside the Chef Push Jobs Service - ChefConf 2015 Inside the Chef Push Jobs Service - ChefConf 2015
Inside the Chef Push Jobs Service - ChefConf 2015
 
Ajenti control panel
Ajenti control panel Ajenti control panel
Ajenti control panel
 
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICESCENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
 
IPv6 Council: IPv6 on your servers; fun or frightening?
IPv6 Council: IPv6 on your servers; fun or frightening? IPv6 Council: IPv6 on your servers; fun or frightening?
IPv6 Council: IPv6 on your servers; fun or frightening?
 
Puppet at the centre of everything by David Mytton
Puppet at the centre of everything by David MyttonPuppet at the centre of everything by David Mytton
Puppet at the centre of everything by David Mytton
 
Nat
NatNat
Nat
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
 

Semelhante a [Perforce] Swarm Workshop

Build and deployment
Build and deploymentBuild and deployment
Build and deployment
WO Community
 

Semelhante a [Perforce] Swarm Workshop (20)

4. open mano set up and usage
4. open mano set up and usage4. open mano set up and usage
4. open mano set up and usage
 
Build and deployment
Build and deploymentBuild and deployment
Build and deployment
 
Making Spinnaker Go @ Stitch Fix
Making Spinnaker Go @ Stitch FixMaking Spinnaker Go @ Stitch Fix
Making Spinnaker Go @ Stitch Fix
 
LAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site ImplementationsLAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site Implementations
 
Hosting a Rails App
Hosting a Rails AppHosting a Rails App
Hosting a Rails App
 
Google App Engine: For PHP Developers
Google App Engine: For PHP DevelopersGoogle App Engine: For PHP Developers
Google App Engine: For PHP Developers
 
Your Inner Sysadmin - LonestarPHP 2015
Your Inner Sysadmin - LonestarPHP 2015Your Inner Sysadmin - LonestarPHP 2015
Your Inner Sysadmin - LonestarPHP 2015
 
Splunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsSplunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shells
 
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
 
PHP Rocketeer
PHP RocketeerPHP Rocketeer
PHP Rocketeer
 
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)Your Inner Sysadmin - Tutorial (SunshinePHP 2015)
Your Inner Sysadmin - Tutorial (SunshinePHP 2015)
 
Securing Your Webserver By Pradeep Sharma
Securing Your Webserver By Pradeep SharmaSecuring Your Webserver By Pradeep Sharma
Securing Your Webserver By Pradeep Sharma
 
Cross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher caseCross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher case
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
 
Nginx as a Revers Proxy for Apache on Ubuntu
Nginx as a Revers Proxy for Apache on UbuntuNginx as a Revers Proxy for Apache on Ubuntu
Nginx as a Revers Proxy for Apache on Ubuntu
 
Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015
 
Deploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeDeploying to Ubuntu on Linode
Deploying to Ubuntu on Linode
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS Linux
 
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
 
Hosting Ruby Web Apps
Hosting Ruby Web AppsHosting Ruby Web Apps
Hosting Ruby Web Apps
 

Mais de Perforce

Mais de Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

[Perforce] Swarm Workshop

  • 1. 1   Perforce Swarm Get it. Use it. Hack it. Love it! Geoff Nicol Technical Architect Perforce Software Stewart Lord Technical Architect & Team Lead Perforce Software
  • 2. 2   Agenda •  Swarm Overview •  Installing Swarm •  Reviews: Starting, Updating, Committing •  Extending Swarm •  Hands on Reviews & Q/A
  • 5. 5   Software Requirements •  Linux 2.6+ Intel or Mac OS X 10.6+ •  Apache 2.2+ •  PHP •  5.3.3+, 5.4+ recommended •  P4PHP extension, APC recommended •  P4D 2010.2+, 2013.1+ recommended
  • 6. 6   Hardware Requirements •  No hard/fast requirements at this time •  Internally, VM with 4 GB ram and 2 cores •  Perforce has ~250 employees; if you have more: •  Use bigger hardware •  Scale Swarm horizontally •  Run Swarm behind a replica
  • 7. 7   Ubuntu Packages •  apt-get update; apt-get upgrade •  apt-get install •  vim unzip ssh •  curl apache2 libapache2-mod-php5 php5 php-apc
  • 8. 8   Extract Swarm •  Under /var/www •  wget ftp://ftp.perforce.com/perforce/r13.1/ bin.multiarch/swarm.tgz •  tar -zxf swarm.tgz •  ln -s swarm-<version> swarm •  chown -R www-data:www-data data
  • 9. 9   Configure Swarm •  Create file /var/www/swarm/data/config.php <?php return array( 'p4' => array( 'port' => 'perforce:1666', 'user' => 'swarm', 'password' => 'password', ) );
  • 10. 10   Configuring Apache •  a2enmod rewrite •  in /etc/apache2/sites-available/default: •  change DocumentRoot to /var/www/swarm/public •  update Directory to /var/www/swarm/public •  under Directory AllowOverride All
  • 11. 11   Configuring PHP •  Create file /etc/php5/conf.d/perforce.ini with: extension=/var/www/swarm/p4-bin/bin.linux26x86_64/p4php/perforce-php54.so
  • 12. 12   Configuring Swarm s Worker Queue •  Add a cron job similar to below: * * * * * curl -o /dev/null -m1 http://swarm-host/queue/worker
  • 13. 13   Verifying Install •  apachectl restart •  You re now where the OVA would start •  visit http://my-swarm-host/ to ensure site is up •  login as a super user •  view about swarm dialog for trigger token •  visit http://my-swarm-host/queue/status
  • 14. 14   Completing Install - Perforce Triggers •  Copy swarm-trigger.sh to your perforce server •  Configure swarm host and swarm token •  Run the script with no args for trigger values •  Install triggers
  • 15. 15   Trouble? •  Check log files •  /var/www/swarm/data/log •  /var/log/apache2/error.log •  Ask for help! support@perforce.com
  • 16. 16   Reviews Starting / Updating / Committing
  • 18. 18   Hands on Code Review!
  • 19. 19   Hands On •  Step 1: Connect to WiFi •  SSID Swarm no password •  Step 2: Connect to Swarm •  http://192.168.2.220
  • 20. 20   SSID Swarm http://192.168.2.220 P4PORT 192.168.2.220:1666 • Step 3: Make a perforce user •  CLI: p4 -p <p4port> -u <myuser> user •  P4V: Open connection, enter port and click new user • Step 4: Make a client •  CLI: p4 -p <p4port> -u <myuser> client •  P4V: On connection dialog, click new Workspace • Step 5: Login to Swarm • Step 6: Create a file for your username and shelve it • Step 7: Review your change / Profit
  • 21. 21   Questions? Geoff Nicol - gnicol@perforce.com Stewart Lord - slord@perforce.com