|
@@ -0,0 +1,92 @@
|
|
|
+# VirtualBox Build Notes.md
|
|
|
+
|
|
|
+## To get a local test network
|
|
|
+
|
|
|
+### Create the base OVF
|
|
|
+1. install virtualbox
|
|
|
+1. download the centos7-minimal dvd iso, and store in your copy of `msoc-infrastructure/packer` (suggestion: keep an ISOs directory and make a symbolic link into the packer directory)
|
|
|
+1. Edit `http/ks.local.cfg` and update with your username and password
|
|
|
+1. Run `make base-local` to create a local iso.
|
|
|
+
|
|
|
+### Create a new salt master
|
|
|
+1. In virtualbox, select "Import".
|
|
|
+1. Under `msoc-infrastructure/packer/output-virtualbox-iso`, select `packer-centos-7-local-x86_64.ova`
|
|
|
+1. Click 'Continue'
|
|
|
+1. Edit settings:
|
|
|
+ * name: salt-master
|
|
|
+ * Network: Set to paravirtualized network
|
|
|
+ * Virtual Disk Image: Rename to `salt-master.vmdk` or somethimg memorable
|
|
|
+ * Mac Address Policy: "Generate new MAC addresses for all network adapters."
|
|
|
+1. click "Import"
|
|
|
+1. Edit settings:
|
|
|
+ * Display: Video memory: set to 4MB
|
|
|
+ * Display: Remote display: Disable
|
|
|
+ * Storage: SATA Controller, check "Use Host I/O Cache"
|
|
|
+ * Network: Attached To: Set to "Bridged" with your wireless adapter (verify it's the paravirtualized adapter while you're there)
|
|
|
+ * Shared Folders -> Create a machine folder to point to your msoc-infrastructure directory (allows you to use the same git repo on the guest VM)
|
|
|
+1. Click 'Start' or 'Start (headless)'
|
|
|
+
|
|
|
+### Set up the guest tools
|
|
|
+1. ssh to local box (may need to look up ip address; i set a static lease)
|
|
|
+1. Change your password and the root password. (Default is 'changeme')
|
|
|
+1. Install guest additions:
|
|
|
+```
|
|
|
+sudo yum update && sudo yum upgrade
|
|
|
+sudo yum groupinstall "Development Tools"
|
|
|
+sudo yum install vim kernel-devel
|
|
|
+sudo yum --enablerepo=epel install dkms
|
|
|
+sudo mount /root/VBoxGuestAdditions.iso /mnt
|
|
|
+cd /mnt
|
|
|
+sudo ./VBoxLinuxAdditions.run
|
|
|
+```
|
|
|
+1. Add the shared folder mount point `mkdir ~/msoc-infrastructure`
|
|
|
+1. Add this to `/etc/fstab`:
|
|
|
+```
|
|
|
+msoc-infrastructure /home/fdamstra/msoc-infrastructure vboxsf uid=fdamstra,gid=fdamstra 0 0
|
|
|
+```
|
|
|
+1. Reboot
|
|
|
+
|
|
|
+### Match the Salt AMI
|
|
|
+1. ssh to salt master
|
|
|
+1. Run the scripts in `rhel7_hardened_saltmaster_ami.json`:
|
|
|
+```
|
|
|
+cd msoc-infrastructure/packer/
|
|
|
+# Skipping add-rhel-subscription, cuz centos
|
|
|
+sudo scripts/add-saltstack-repo.sh
|
|
|
+# Skipping add-epel-repo, because how many times do we need to do this?
|
|
|
+sudo scripts/provision-salt-minion.sh
|
|
|
+# Have to do the "internal-configure-minion.sh" stuff ourselves, becuase
|
|
|
+# we don't match.
|
|
|
+sudo echo "master: salt-master.home.monkeybox.org" | tee /etc/salt/minion
|
|
|
+sudo scripts/provision-salt-master.sh
|
|
|
+# Skipping scripts/install-ssm-agent.sh because not in aws
|
|
|
+# Skipping scripts/cloud-init-resize-fs.sh becase not in aws
|
|
|
+# Skipping scripts/remove-machine-id.sh because not bulding more than one
|
|
|
+# Skipping scripts/remove-rhel-subscription.sh because not building more than one
|
|
|
+```
|
|
|
+1. Reboot
|
|
|
+
|
|
|
+### Get Salt Functional
|
|
|
+1. Run the cloud init script:
|
|
|
+```
|
|
|
+cd msoc-infrastructure/terraform/02-msoc_vpc/cloud-init/
|
|
|
+sudo bash provision_salt_master.sh
|
|
|
+```
|
|
|
+Errors about secrets are expected. Lots of amazon stuff just won't work.
|
|
|
+1. remove `/etc/salt/pki/master/master.{pem,pub}`
|
|
|
+1. fix the minion id: `echo salt-master.home.monkeybox.org > /etc/salt/minion_id`
|
|
|
+1. start salt-master service
|
|
|
+1. start salt-minion service
|
|
|
+1. Accept the key: `sudo salt-key -A`
|
|
|
+1. Create /etc/salt/master.d/file_roots.conf:
|
|
|
+```
|
|
|
+file_roots:
|
|
|
+ base:
|
|
|
+ # Used by the maxmind stuff, not in gitfs because we download
|
|
|
+ # this file by script every so often
|
|
|
+ - /var/opt/salt
|
|
|
+```
|
|
|
+1. Link to the file root (we don't use gitfs here):
|
|
|
+```
|
|
|
+ln -s /home/fdamstra/msoc-infrastructure/salt/fileroots /var/opt/salt
|
|
|
+```
|