<aside> ๐ก Use this template to describe the steps engineers should follow to deploy.
</aside>
Let everyone know you're about to start a deploy.
<aside> ๐ก Build์ ํ์ํ Dockerfile์ Source์ ๊ธธ์ด๊ฐ ๊ธธ์ด ์ตํ๋จ ์ ๊ธฐ๋ก
</aside>
#!/bin/bash
# @author : sunsson
# @date : 2020.01.31
#export PATH="$HOME/bin:$HOME/.local/bin:$PATH"
#export PATH="$PATH:/mnt/c/Program\\ Files/Docker/Docker/resources/bin"
#alias docker=docker.exe
#alias docker-compose=docker-compose.exe
RED='\\033[1;31m'
NC='\\033[0m' # No Color
DOMAIN=base
VER=2.0
echo "###docker build"
#SCRIPT_NAME=$(basename $0)
#echo SCRIPT_NAME is $SCRIPT_NAME
#SCRIPT_DIR="$(echo $0| sed "s/$SCRIPT_NAME//g")"
#echo SCRIPT_DIR is $SCRIPT_DIR
source ./checkip.sh
#IMAGE_NAME=gigaeyes-`pwd | rev | cut -d'/' -f1 | rev`
#DOMAIN="base"
#IMAGE_NAME=gigaeyes-2.0-$DOMAIN
IMAGE_NAME=gigaeyes_pro-$DOMAIN
#IMAGE_NAME=gigaeyes-$MODULE_NAME:1.0
#CONTAINER_NAME=gep-$DOMAIN-$VER
#HOST_PUBLIC_IP=
#echo -e "+IP LIST"
#IP_LIST=`hostname -I`
#idx=0
#for I in $IP_LIST;
#do
# echo -e "+---[$idx] ${RED}$I ${NC}"
# let idx+=1
#done
#echo -e "${RED}์ฌ์ฉํ์ค IP${NC}๋ฅผ ์
๋ ฅํด์ฃผ์ญ์์ค."
#echo -e "${RED}๋ด๋ถ๋ง${NC}๊ณผ ${RED}์ธ๋ถ๋ง${NC}์ด ๊ฐ์ ๊ฒฝ์ฐ, ๊ฐ์ ๊ฐ์ ์
๋ ฅํ๋ฉด ๋ฉ๋๋ค."
#read_ip "type internal network ip : " gv_internal_ip
#read_ip "type external network ip : " gv_external_ip
#gv_internal_ip="172.17.51.225"
#gv_external_ip="183.98.5.105"
#echo -e "${RED}internal${NC} network ip = ${RED}$gv_internal_ip${NC}"
#echo -e "${RED}external${NC} network ip = ${RED}$gv_external_ip${NC}"
######## SAMBA
#cp -rf ../pkg/samba/conf/smb.conf.org ../pkg/samba/conf/smb.conf
#select_internal_nic internic
#sed -i "s/===INTERNAL_NIC_HERE===/${internic}/g" ../pkg/samba/conf/smb.conf
#local lv_fw_ip1
#local lv_fw_ip2
#local lv_fw_ip3
#local lv_fw_ip4
#check_sub_ip $gv_internal_ip lv_fw_ip1 lv_fw_ip2 lv_fw_ip3 lv_fw_ip4
#sed -i "s/===INTERNAL_SUBNET_HERE===/${lv_fw_ip1}.${lv_fw_ip2}.${lv_fw_ip3}.0\\/24/g" ../pkg/samba/conf/smb.conf
#sed -i "s/===INTERNAL_IP_HERE===/${gv_internal_ip}/g" ../pkg/samba/conf/smb.conf
#sed -i "s/===INTERNAL_HOST_PREFIX_HERE===/${lv_fw_ip1}.${lv_fw_ip2}.${lv_fw_ip3}./g" ../pkg/samba/conf/smb.conf
#ARGS="--build-arg HOST_PUBLIC_IP=$gv_external_ip --build-arg HOST_PRIVATE_IP=$gv_internal_ip --build-arg INTERNAL_NIC=$gv_internic "
#ARGS="--build-arg HOST_PUBLIC_IP=192.168.100.1 --build-arg HOST_PRIVATE_IP=192.168.100.2"
#source ~/.bashrc
#export PATH="$PATH:/mnt/c/Program\\ Files/Docker/Docker/resources/bin"
#echo
echo docker image build --rm $ARGS -t $IMAGE_NAME ..
docker.exe image build --rm $ARGS -t $IMAGE_NAME:$VER ..
#echo
echo docker images [$IMAGE_NAME]
docker.exe images | egrep "REPOSITORY|$IMAGE_NAME"
inline code snippets
with the shortcut cmd/ctrl + e
.#!/bin/bash
DOMAIN="base"
VER="2.0"
HOME="/home/gigasurv"
DOCKER_OPTION="-p 22:22 -p 5432:5432 -p 3306:3306 -p 5672:5672 -p 15672:15672 -p 4369:4369 -p 140:137/udp -p 139:139 -p 1445:445 -p 2812:2812 -p 8086:8068 -p 8087:8087 -p 1935:1935 -p 28081:28081"
DOCKER_OPTION="$DOCKER_OPTION -v /sys/fs/cgroup:/sys/fs/cgroup"
#DOCKER_OPTION="$DOCKER_OPTION -v $(pwd)/../volume_storage:/storage"
#DOCKER_OPTION="$DOCKER_OPTION -v $(pwd)/../volume_logs/admin:/srv/admin/tomcat/apache-tomcat-8.0.44/logs"
#DOCKER_OPTION="$DOCKER_OPTION -v $(pwd)/../volume_logs/cep2:/srv/cep2/log"
#DOCKER_OPTION="$DOCKER_OPTION -v $(pwd)/../volume_logs/fusion:/srv/fusion/log"
#DOCKER_OPTION="$DOCKER_OPTION -v $(pwd)/../volume_logs/session:/srv/session/log"
#DOCKER_OPTION="$DOCKER_OPTION -v $(pwd)/../volume_logs/sync/`pwd | rev | cut -d'/' -f1 | rev`:/srv/sync/log"
DOCKER_OPTION="$DOCKER_OPTION -v /d/Dockers/volume_storage:/storage"
DOCKER_OPTION="$DOCKER_OPTION -v /d/Dockers/volume_logs/rabbitmq:/var/log/rabbitmq"
DOCKER_OPTION="$DOCKER_OPTION -v /d/Dockers/volume_logs/recoder:/srv/recoder/log"
DOCKER_OPTION="$DOCKER_OPTION -v /d/Dockers/volume_logs/thumbnail:/srv/thumbnail/log"
DOCKER_OPTION="$DOCKER_OPTION -v /d/Dockers/volume_logs/vod:/srv/vod/log"
DOCKER_OPTION="$DOCKER_OPTION -v /d/Dockers/volume_logs/gls:/srv/glsm/logs"
#MODULE_NAME=`pwd | rev | cut -d'/' -f1 | rev`
IMAGE_NAME=gigaeyes_pro-$DOMAIN
#IMAGE_NAME=gigaeyes-$MODULE_NAME:1.0
CONTAINER_NAME=gep-$DOMAIN
echo
#echo docker run [$CONTAINER_NAME]
echo docker run $DOCKER_OPTION --privileged -itd --hostname $CONTAINER_NAME --name $CONTAINER_NAME $IMAGE_NAME:$VER
#docker.exe run $DOCKER_OPTION --privileged --hostname $CONTAINER_NAME -d --name $CONTAINER_NAME $IMAGE_NAME:$VER /root/rabbitmq.config
#docker.exe run $DOCKER_OPTION --privileged -itd --name $CONTAINER_NAME $IMAGE_NAME:$VER /root/rabbitmq.config
#docker.exe run $DOCKER_OPTION --privileged -itd --hostname $CONTAINER_NAME --name $CONTAINER_NAME $IMAGE_NAME:$VER
#docker.exe run $DOCKER_OPTION --privileged -itd --hostname "localhost" --name $CONTAINER_NAME $IMAGE_NAME:$VER
docker.exe run $DOCKER_OPTION --privileged -itd --network gigaeyes-network --name $CONTAINER_NAME $IMAGE_NAME:$VER
#docker run -it -d --name nodel -p 2201:22 gigaeyes_pro-base:2.0
echo
docker.exe ps | egrep "CONTAINER|$CONTAINER_NAME"
#echo
echo docker exec ... /root/init_gep20.sh
#docker.exe exec -it `docker.exe ps | grep $CONTAINER_NAME | awk '{print $1}'` $HOME/bin/init_gep20.sh
docker.exe exec -it `docker.exe ps | grep $CONTAINER_NAME | awk '{print $1}'` /bin/sh /root/init_gep20.sh
#docker.exe exec -it `docker.exe ps | grep $CONTAINER_NAME | awk '{print $1}'`
#echo
#echo docker network connect gigaeyes-network $CONTAINER_NAME
#docker.exe network connect gigaeyes-network $CONTAINER_NAME
#!/bin/bash
source /root/checkip.sh
select_intn_extn gv_internal_ip gv_external_ip
select_internal_nic gv_internic
/root/rabbitmq_config.sh
/root/init_samba.sh
/root/init_gls.sh
/root/init_srv.sh
#!/bin/sh
echo "================= MQ SETUP : START ==================="
#/sbin/rabbitmq-server start
#systemctl start rabbitmq-server
rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_management_visualiser
rabbitmq-plugins enable rabbitmq_mqtt
rabbitmq-plugins list
# ์ ๋ณด ์ค์
vhost="/"
id="gigasurv"
pwd="rlrksurv@!"
###### ๊ณ์ ์์ฑ: START ######
rabbitmqctl add_user ${id} ${pwd}
rabbitmqctl set_user_tags ${id} administrator
rabbitmqctl set_permissions -p ${vhost} ${id} ".*" ".*" ".*"
#echo "=========================================="
###### ๊ณ์ ์์ฑ: END ######
###### vhosts์์ฑ: START ######
#rabbitmqctl add_vhost Some_Virtual_Host
#rabbitmqctl set_permissions -p Some_Virtual_Host guest ".*" ".*" ".*"
#echo "=========================================="
###### vhosts์์ฑ: END ######
###### direct ์ค์ : STRART ######
direct_exchange="VSAAS"
# 2.0 ๋ณ๊ฒฝ ์ฌํญ : PUSH ์ถ๊ฐ, SENSOR_ALARM ==> SINGLE_ALARM ์ด๋ฆ ๋ณ๊ฒฝ
direct_queues=("ALARM" "EVENT" "KPNS" "RECT" "SINGLE_ALARM" "PUSH")
# exchange ์์ฑ(direct)
export RESULT=`/usr/local/bin/rabbitmqadmin declare exchange --vhost=$vhost name=$direct_exchange type=direct`
echo "[Exchange(${direct_exchange}) CREATE]-${RESULT}"
# queue ์์ฑ ๋ฐ ๋ฐ์ธ๋ฉ(direct queue)
for q_name in "${direct_queues[@]}"
do
echo "------------------------------------------"
# ํ์์ฑ
export RESULT=`/usr/local/bin/rabbitmqadmin declare queue --vhost=$vhost name=$q_name durable=true`
echo "[Qeueue(${q_name}) CREATE]-${RESULT}"
# ๋ฐ์ธ๋ฉ
export RESULT=`/usr/local/bin/rabbitmqadmin --vhost=$vhost declare binding source=$direct_exchange destination_type=queue destination=$q_name routing_key=""`
echo "[Binding(${q_name})]-${RESULT}"
done
echo "=========================================="
###### direct ์ค์ : END ######
###### topic ์ค์ : STRART ######
default_topic_exchange="amq.topic"
iot_with_name=("IoTGiGAeyes" "IoTGiGAeyesRet")
# exchange ์์ฑ(topic), queue ์์ฑ ๋ฐ ๋ฐ์ธ๋ฉ(topic queue)
for name in "${iot_with_name[@]}"
do
echo "------------------------------------------"
# exchange ์์ฑ
export RESULT=`/usr/local/bin/rabbitmqadmin declare exchange --vhost=$vhost name=$name type=topic`
echo "[Exchange(${name}) CREATE]-${RESULT}"
# ํ์์ฑ
export RESULT=`/usr/local/bin/rabbitmqadmin declare queue --vhost=$vhost name=$name durable=true`
echo "[Qeueue(${name}) CREATE]-${RESULT}"
# ๋ฐ์ธ๋ฉ
export RESULT=`/usr/local/bin/rabbitmqadmin --vhost=$vhost declare binding source=$name destination_type=exchange destination=$default_topic_exchange routing_key=".${name}"`
echo "[E-E Binding(${name})]-${RESULT}"
export RESULT=`/usr/local/bin/rabbitmqadmin --vhost=$vhost declare binding source=$default_topic_exchange destination_type=queue destination=$name routing_key=".${name}"`
echo "[E-Q Binding(${name})]-${RESULT}"
done
###### topic ์ค์ : END ######
###### ์์ฑ๋ Exchange ๋ชฉ๋ก: STAR ######
echo "-- ์๋ฒ Exchange ๋ชฉ๋ก --"
/usr/local/bin/rabbitmqadmin list queues
###### ์์ ๋ Queue ๋ชฉ๋ก: START ######
echo "-- ์๋ฒ Queue ๋ชฉ๋ก --"
/usr/local/bin/rabbitmqadmin list exchanges
# ๋ฉ์ธ์ง publish
#rabbitmqadmin publish exchange=VSAAS1 routing_key="" properties='{"content_type":"text/plain"}' payload_encoding='string' payload="{"1":"test"}"
echo "================= MQ SETUP : END ==================="
#!/bin/bash
source /root/checkip.sh
function config_samba() {
select_internal_nic internic
select_intn_extn gv_internal_ip
sed -i "s/===INTERNAL_NIC_HERE===/${internic}/g" /etc/samba/smb.conf
local lv_fw_ip1
local lv_fw_ip2
local lv_fw_ip3
local lv_fw_ip4
check_sub_ip $gv_internal_ip lv_fw_ip1 lv_fw_ip2 lv_fw_ip3 lv_fw_ip4
sed -i "s/===INTERNAL_SUBNET_HERE===/${lv_fw_ip1}.${lv_fw_ip2}.${lv_fw_ip3}.0\\/24/g" /etc/samba/smb.conf
sed -i "s/===INTERNAL_IP_HERE===/${gv_internal_ip}/g" /etc/samba/smb.conf
sed -i "s/===INTERNAL_HOST_PREFIX_HERE===/${lv_fw_ip1}.${lv_fw_ip2}.${lv_fw_ip3}./g" /etc/samba/smb.conf
}
cd /storage;
if [ -f ./3rdparty_va_data ]
then
mkdir 3rdparty_va_data ;
chown -R gigasurv:gigasurv -R 3rdparty_va_data
fi
if [ -f GiGAeyesSmallSet ]
then
mkdir 3rdparty_va_data GiGAeyesSmallSet;
chown -R gigasurv:gigasurv -R GiGAeyesSmallSet
fi
config_samba
#!/bin/bash
# storage
mkdir -p /storage/vms
chown -R gigasurv:gigasurv /storage/vms
chown -R gigasurv:gigasurv /srv/glsm
#/srv/glsm/addon/monit/start.sh
sudo -u gigasurv /srv/glsm/bin/service.sh start