# Helix Web Services Infrastructure ## Requirements * VMWare Fusion * Vagrant * Vagrant VMWare Fusion plugin Note: These things could work on VMWare Desktop, I don't use that, and I don't have a license for it. ## Workflow Overview NOTE: If you *ever* need to run packer, make sure you clear out the vagrant cache in ~/.vagrant.d/boxes of anything with the same ID as our boxes in use. 1. Change the string "PASSWORD" to our internal system password in the Vagrantfile IMPORTANT: Revert those changes before doing any kind of submit. 2. Bring up the instance locally, e.g., `vagrant up --provider=vmware_fusion build-centos6` 3. Stop the machine: `vagrant halt build-centos6` 4. Move the instance into vSphere, setting aside the appropriate name. This is typically done by dragging and dropping the VM from your local machine on into the correct vSphere instance. You will likely have to select the right server. 5. Reconfigure the vSphere hardware. I tend to make sure there's only one network adapter with a valid subnet, and you probably need to ensure it's using the VMXNET 3 driver - for whatever reason the driver that gets setup by VMWare Fusion or the upgrade process is E1000. On CentOS, this requires editing the /etc/udev/rules.d/70-persistent-net.rules and making sure the driver and network interface configuration match up - it's likely that you'll need to edit /etc/sysconfig/network-scripts/icfg-ethX. 6. Reconfigure the networking and hostname in the new VM. On CentOS, this requires editing the file: /etc/sysconfig/network, On Ubuntu, this is /etc/hostname. Additionally, on CentOS, make sure that DHCP_HOSTNAME is set in the ifcfg-ethX file (these machines don't self register their DNS name). On CentOS, you'll likely need to open up port 7800 for EC: sudo iptables -A INPUT -p tcp -m tcp --dport 7800 -j ACCEPT sudo service iptables save 7. Update VMWare Tools: For CentOS, see: https://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.upgrade.doc_50%2FGUID-08BB9465-D40A-4E16-9E15-8C016CC8166F.html 8. Install the commander agent (we don't do this by default). See: https://confluence.perforce.com:8443/display/EngTools/How+to+set+up+a+private+EC+resource