Skip to content

Instantly share code, notes, and snippets.

@sibblegp
Created July 20, 2016 21:30
Show Gist options
  • Save sibblegp/d22c3af5d572912832351950b096112b to your computer and use it in GitHub Desktop.
Save sibblegp/d22c3af5d572912832351950b096112b to your computer and use it in GitHub Desktop.
Koding MongoDB Cluster Stack Template
# Here is your stack preview
# You can make advanced changes like modifying your VM,
# installing packages, and running shell commands.
provider:
aws:
access_key: '${var.aws_access_key}'
secret_key: '${var.aws_secret_key}'
resource:
aws_instance:
replica_1:
instance_type: m4.large
ami: ''
tags:
Name: '${var.koding_user_username}-${var.koding_group_slug}'
user_data: |-
export DEBIAN_FRONTEND=noninteractive
apt-get update -y
apt-get -y install mongodb
echo "replSet = rs0" >> /etc/mongodb.conf
export PRIVATE_IP=`ip addr | grep -Po '(?!(inet 127.\d.\d.1))(inet \K(\d{1,3}\.){3}\d{1,3})'`
sed -i "s/127.0.0.1/$PRIVATE_IP/" /etc/mongodb.conf
sed -i 's/#port/port/' /etc/mongodb.conf
service mongodb restart
date
echo "Sleeping 5 minutes..."
sleep 300
date
export PRIVATE_IP=`ip addr | grep -Po '(?!(inet 127.\d.\d.1))(inet \K(\d{1,3}\.){3}\d{1,3})'`
mongo `echo $PRIVATE_IP` --eval "rs.initiate()"
sleep 120
mongo `echo $PRIVATE_IP` --eval "rs.add('${aws_instance.replica_2.private_ip}')"
mongo `echo $PRIVATE_IP` --eval "rs.add('${aws_instance.replica_3.private_ip}')"
replica_2:
instance_type: m4.large
ami: ''
tags:
Name: '${var.koding_user_username}-${var.koding_group_slug}'
user_data: |-
export DEBIAN_FRONTEND=noninteractive
apt-get update -y
apt-get -y install mongodb
echo "replSet = rs0" >> /etc/mongodb.conf
export PRIVATE_IP=`ip addr | grep -Po '(?!(inet 127.\d.\d.1))(inet \K(\d{1,3}\.){3}\d{1,3})'`
sed -i "s/127.0.0.1/$PRIVATE_IP/" /etc/mongodb.conf
sed -i 's/#port/port/' /etc/mongodb.conf
service mongodb restart
replica_3:
instance_type: m4.large
ami: ''
tags:
Name: '${var.koding_user_username}-${var.koding_group_slug}'
user_data: |-
export DEBIAN_FRONTEND=noninteractive
apt-get update -y
apt-get -y install mongodb
echo "replSet = rs0" >> /etc/mongodb.conf
export PRIVATE_IP=`ip addr | grep -Po '(?!(inet 127.\d.\d.1))(inet \K(\d{1,3}\.){3}\d{1,3})'`
sed -i "s/127.0.0.1/$PRIVATE_IP/" /etc/mongodb.conf
sed -i 's/#port/port/' /etc/mongodb.conf
service mongodb restart
@cihangir
Copy link

another way to get the private ip

PRIVATE_IP=curl http://169.254.169.254/latest/meta-data/local-ipv4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment