RHEL 7 - matthewfincher/blacksky GitHub Wiki

How To: SELinux

How To: Systemd

Install firewalld

How to Configure ‘FirewallD’ in RHEL

hostnamectl
#   Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)

ip addr show | grep inet
# inet 172.31.60.228/20 brd 172.31.63.255 scope global dynamic eth0

sudo yum install firewalld -y

systemctl status iptables
# Unit iptables.service could not be found.

sudo service firewalld start

sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

sudo firewall-cmd --list-all
# public
#   ...
#   ports: 27017/tcp 8080/tcp
#   ...

Install Node.js

Install Node.js on Enterprise Linux and Fedora

sudo su

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -

yum -y install nodejs

yum groupinstall 'Development Tools' -y

yum install vim -y

exit

node -v && npm -v

Install MongoDB

Install MongoDB Community Edition on Red Hat Enterprise

sudo vim /etc/yum.repos.d/mongodb-org-3.4.repo

	[mongodb-org-3.4]
	name=MongoDB Repository
	baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
	gpgcheck=1
	enabled=1
	gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

sudo yum install -y mongodb-org

sudo sestatus
# SELinux status:                 enabled
# ...

sudo semanage port -a -t mongod_port_t -p tcp 27017

sudo semanage port -l | grep mongo

sudo service mongod start

sudo systemctl list-unit-files | grep mongo
# mongod.service                              enabled

sudo chkconfig mongod on
# Note: Forwarding request to 'systemctl enable mongod.service'.

Install Docker

Get Docker for Red Hat Enterprise Linux

sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
    
sudo yum makecache fast

sudo yum list docker-engine.x86_64  --showduplicates |sort -r

sudo yum -y install docker-engine

sudo systemctl start docker

sudo systemctl enable docker

sudo systemctl status docker

sudo docker run hello-world

Post-installation steps for Linux

WARNING: The docker group grants privileges equivalent to the root user. For details on how this impacts security in your system, see Docker Daemon Attack Surface. sudo groupadd docker

sudo groupadd docker

sudo usermod -aG docker $USER

sudo reboot

docker run hello-world

docker rmi $(docker images -q)

docker rm $(docker ps -a -q)

Install Landscapes v2

git clone -b v2 https://github.com/OpenWhere/landscapes.io.git

cd landscapes.io

npm install

PUBLIC_IP=52.87.161.236 npm run build

MONGO_SEED=true PUBLIC_IP=52.87.161.236 npm run prod

systemctl

sudo vim /usr/lib/systemd/system/landscapes.service

[Unit]
Description=Landscapes.io v2.0.0
After=mongod.service

[Service]
ExecStart=/home/ec2-user/landscapes.io/node_modules/nodemon/bin/nodemon.js /home/ec2-user/landscapes.io/server/init.js --exec babel-node
WorkingDirectory=/home/ec2-user/landscapes.io
Restart=always
RestartSec=10
Environment=NODE_ENV=production PROTOCOL=https PUBLIC_IP=landscapes.blacksky.io

[Install]
WantedBy=multi-user.target

then

sudo systemctl enable landscapes
sudo systemctl start landscapes
sudo systemctl status landscapes