1# Launch F-Stack on AWS EC2 in one minute 2 3 If you have a Redhat7.3 EC2 instance,and then execute the following cmds, you will get the F-Stack server in one minute 4 5 sudo -i 6 yum install -y git gcc openssl-devel kernel-devel-$(uname -r) bc 7 8 mkdir /data/f-stack 9 git clone https://github.com/F-Stack/f-stack.git /data/f-stack 10 11 # Compile DPDK 12 cd /data/f-stack/dpdk 13 make config T=x86_64-native-linuxapp-gcc 14 make 15 16 # set hugepage 17 echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages 18 mkdir /mnt/huge 19 mount -t hugetlbfs nodev /mnt/huge 20 21 # insmod ko 22 modprobe uio 23 modprobe hwmon 24 insmod build/kmod/igb_uio.ko 25 insmod build/kmod/rte_kni.ko 26 27 # set ip address 28 #redhat7.3 29 export myaddr=`ifconfig eth0 | grep "inet" | grep -v ":" | awk -F ' ' '{print $2}'` 30 export mymask=`ifconfig eth0 | grep "netmask" | awk -F ' ' '{print $4}'` 31 export mybc=`ifconfig eth0 | grep "broadcast" | awk -F ' ' '{print $6}'` 32 export myhw=`ifconfig eth0 | grep "ether" | awk -F ' ' '{print $2}'` 33 export mygw=`route -n | grep 0.0.0.0 | grep eth0 | grep UG | awk -F ' ' '{print $2}'` 34 #Amazon Linux AMI 2017.03 35 #export myaddr=`ifconfig eth0 | grep "inet addr" | awk -F ' ' '{print $2}' | awk -F ':' '{print $2}'` 36 #export mymask=`ifconfig eth0 | grep "Mask" | awk -F ' ' '{print $4}' | awk -F ':' '{print $2}'` 37 #export mybc=`ifconfig eth0 | grep "Bcast" | awk -F ' ' '{print $3}' | awk -F ':' '{print $2}'` 38 #export myhw=`ifconfig eth0 | grep "HWaddr" | awk -F ' ' '{print $5}'` 39 #export mygw=`route -n | grep 0.0.0.0 | grep eth0 | grep UG | awk -F ' ' '{print $2}' 40 41 sed "s/addr=192.168.1.2/addr=${myaddr}/" -i /data/f-stack/config.ini 42 sed "s/netmask=255.255.255.0/netmask=${mymask}/" -i /data/f-stack/config.ini 43 sed "s/broadcast=192.168.1.255/broadcast=${mybc}/" -i /data/f-stack/config.ini 44 sed "s/gateway=192.168.1.1/gateway=${mygw}/" -i /data/f-stack/config.ini 45 46 # enable kni 47 sed "s/#\[kni\]/\[kni\]/" -i /data/f-stack/config.ini 48 sed "s/#enable=1/enable=1/" -i /data/f-stack/config.ini 49 sed "s/#method=reject/method=reject/" -i /data/f-stack/config.ini 50 sed "s/#tcp_port=80/tcp_port=80/" -i /data/f-stack/config.ini 51 sed "s/#vlanstrip=1/vlanstrip=1/" -i /data/f-stack/config.ini 52 53 54 # Compile F-Stack lib 55 export FF_PATH=/data/f-stack 56 export FF_DPDK=/data/f-stack/dpdk/build 57 cd /data/f-stack/lib 58 make 59 60 # Compile Nginx 61 cd ../app/nginx-1.11.10 62 ./configure --prefix=/usr/local/nginx_fstack --with-ff_module 63 make 64 make install 65 66 # offload NIC 67 ifconfig eth0 down 68 python /data/f-stack/dpdk/tools/dpdk-devbind.py --bind=igb_uio eth0 69 70 # start Nginx 71 cd ../.. 72 ./start.sh -b /usr/local/nginx_fstack/sbin/nginx -c config.ini 73 74 # start kni 75 sleep 30 76 ifconfig veth0 ${myaddr} netmask ${mymask} broadcast ${mybc} hw ether ${myhw} 77 route add -net 0.0.0.0 gw ${mygw} dev veth0