Sha256: 100e4546e52d56d3ee90ecf2209235d36eb4786d330bf63b7df2aa91d86f697a

Contents?: true

Size: 1.11 KB

Versions: 16

Compression:

Stored size: 1.11 KB

Contents

# Configure the instance to run as a Port Address Translator (NAT) to provide 
# Internet connectivity to private instances. 

echo "Determining the MAC address on eth0..."
ETH0_MAC=$(cat /sys/class/net/eth0/address) ||
    die "Unable to determine MAC address on eth0."
echo "Found MAC ${ETH0_MAC} for eth0."

VPC_CIDR_URI="http://169.254.169.254/latest/meta-data/network/interfaces/macs/${ETH0_MAC}/vpc-ipv4-cidr-block"
echo "Metadata location for vpc ipv4 range: ${VPC_CIDR_URI}"

VPC_CIDR_RANGE=$(curl --retry 3 --silent --fail ${VPC_CIDR_URI})
echo "Retrieved VPC CIDR range ${VPC_CIDR_RANGE} from meta-data."

echo "Enabling NAT in sysctl..."

cat >/etc/sysctl.d/90-nat.conf <<EOF
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

service procps start
sleep 1
sysctl -p

echo "Adding NAT iptables rules..."

cat >/etc/rc.local <<EOF
#!/bin/sh -e

iptables -t nat -C POSTROUTING -o eth0 -s ${VPC_CIDR_RANGE} -j MASQUERADE 2>/dev/null ||
iptables -t nat -A POSTROUTING -o eth0 -s ${VPC_CIDR_RANGE} -j MASQUERADE

iptables -n -t nat -L POSTROUTING

exit 0
EOF

/etc/rc.local

echo "Configuration of NAT complete."

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
stacco-0.1.70 ./priv/roles/NAT.sh
stacco-0.1.68 ./priv/roles/NAT.sh
stacco-0.1.66 ./priv/roles/NAT.sh
stacco-0.1.64 ./priv/roles/NAT.sh
stacco-0.1.63 ./priv/roles/NAT.sh
stacco-0.1.62 ./priv/roles/NAT.sh
stacco-0.1.61 ./priv/roles/NAT.sh
stacco-0.1.60 ./priv/roles/NAT.sh
stacco-0.1.59 ./priv/roles/NAT.sh
stacco-0.1.57 ./priv/roles/NAT.sh
stacco-0.1.53 ./priv/roles/NAT.sh
stacco-0.1.52 ./priv/roles/NAT.sh
stacco-0.1.50 ./priv/roles/NAT.sh
stacco-0.1.49 ./priv/roles/NAT.sh
stacco-0.1.48 ./priv/roles/NAT.sh
stacco-0.1.47 ./priv/roles/NAT.sh