Update – 2018-02-19: There were a few bugs in the first version of this script. If you ran any version of it previous to v1.3 you’ll want to wipe your CentOS machine and re-run the script from scratch. You can check the script version number by looking at it in a text editor.
Saw these scripts in the official Oyster Protocol Github that would automatically build you a Oyster Protocol Hooknode if you have a clean Ubuntu 16.04 installation. I’m more of a fan of CentOS so I thought I’d try porting the script over to CentOS 7.
Disclaimer: This script will likely not result in a super secure installation of CentOS. It will however get you a working deployment of Oyster Protocol (PRL) Hooknode on a blank CentOS 7 VM (or physical system if you prefer) with the firewall still enabled. I do not recommend using this in production with out performing additional hardening yourself or altering the script to perform it for you. The script will configure the system to automatically download and install security updates.
It is generally bad practice to run random scripts from the internet so please review the script before executing it to make sure you are OK with everything it is doing.
I am going to assume you’ve built a VM in your preferred hypervisor (I’m using VMware Workstation) and you have the CentOS Minimal Installation ISO mounted to it’s CDROM so it will boot the CentOS installer. I am also going to assume you have DHCP and DNS working on your network so the VM will automatically get a IP and be able to access the internet.
I am not going to cover setting up a static IP, public/private DNS configuration, LetsEncrypt SSL, etc. All this script will do is get you a CentOS 7 VM with a Oyster Protocol (PRL) Hooknode running on it.
I’ve built a VM with 2vCPUs, 2GB of RAM and a 40GB HD.
Installing CentOS into the VM
- Power on the VM
- Choose ‘Install CentOS 7’ and press <ENTER>
- Press <ENTER> to start the installation
- Click ‘Contiune’ on the language/keyboard selection screen
- Click ‘Network & Hostname’
- Change the hostname to whatever you’d like your VM to be called and click ‘Apply’
- Click the ‘Off’ button in the top right to turn on the network connection
- Verify you have an IP address and note it down so you can SSH in post installation, if not you have some fixing to do, if you do click ‘Done’
- Click ‘Date & Time’
- Pick your timezone
- Make sure ‘Network Time’ is set to ‘On’
- Click ‘Done’
- Click ‘Installation Destination’
- Select the VMs disk and click ‘Done’
- Click ‘Begin Installation’
- Click ‘Root password’, set a password and click ‘Done’
- Click ‘User creation’, fill out the boxes for your normal user account, check mark ‘Make this user administrator’ and click ‘Done’
- Wait for the installation to complete
- Click ‘Reboot’ when it’s done
SSH into your server, disable SELinux, reboot and run the install script
Note: If you didn’t write down the IP of your VM from the OS installation you can login with the root account or your non-root account and run “ip addr show” and you will see the IP of your VM under ‘ens##’ next to ‘inet’
- SSH into your VM using your non-root account you created during the installation
- Run the following command to disable SELinux and automatically reboot
sudo su - -c "sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config; shutdown -r now"
- SSH back into your VM using your non-root account
- Download the installation script by running the following:
curl https://www.pickysysadmin.ca/static/hk_install_centos7.sh > hk_install_centos7.sh
- Verify the the file by running the following command. The output should say “OK”
echo "76d440b145cdc2915751b40dd98818efb0f8b0ab hk_install_centos7.sh" | sha1sum -c
- Inspect the script using vim or some other text editor to make sure you are OK with everything happening in the script. Running scripts randomly from the internet is usually a bad idea.
- Run the script and enter your password when prompted
NOTE: This script will take a while to complete due to a large, download required as part of the installation. Be patient.
sudo sh hk_install_centos7.sh
- Wait for installation to complete