ChaKanServer Configuration

** Operating System: Ubuntu

ChaKanServer Configuration
** Operating System: Ubuntu

############### System Configuration ##############
1. Continuous Network Connection
$ sudo mkdir -p /home/helper
$ sudo vim /home/helper/send_ping.sh
$ sudo chmod 755 /home/helper/send_ping.sh
========= send_ping.sh ==========
#!/bin/sh

LOG_PATH=/home/helper/logs
IP_ADDR=8.8.8.8
INTERVAL=60 # seconds

[ ! -d "$LOG_PATH" ] && mkdir -p $LOG_PATH

PID=`ps ux | grep "ping -i $INTERVAL $IP_ADDR" | grep -v grep | grep -v $0 | awk '{print $2}'`

[ ! -z $PID ] && kill -2 $PID

ping -i $INTERVAL $IP_ADDR >> $LOG_PATH/send_ping_result_$(date "+%Y-%m-%d").log 2>&1 &
=============================
$ sudo vim /etc/crontab
=========== crontab ============
...
0  0    * * *   root /home/helper/send_ping.sh
#
@reboot root sleep 120 && /home/helper/send_ping.sh
=============================

2. Check Ubuntu Update
$ sudo mkdir -p /home/helper
$ sudo vim /home/helper/check_ubuntu_update.sh
$ sudo chmod 755 /home/helper/check_ubuntu_update.sh
===== check_ubuntu_update.sh =====
#!/bin/sh

LOG_PATH=/home/helper/logs
APT_UPDATE_RESULT=$(apt update)
APT_LIST_RESULT=$(apt list --upgradable)

echo $APT_LIST_RESULT > $LOG_PATH/check_ubuntu_update_result_$(date "+%Y-%m-%d").log 2>&1 &

curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"$APT_LIST_RESULT\"}" https://hooks.slack.com/services/.../... &
=============================
$ sudo vim /etc/crontab
=========== crontab ============
...
0  0    * * *   root /home/helper/check_ubuntu_update.sh
=============================
############### System Configuration ##############

################ Docker Installation ###############
1. Install
- https://docs.docker.com/engine/install/ubuntu/#installation-methods
- https://docs.docker.com/compose/install/#install-compose-on-linux-systems

2. Change default (/var/lib/docker) to "/home/docker/store"
$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo vim /etc/systemd/system/docker.service.d/override.conf
========= override.conf ==========
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/home/docker/store
...
=============================
################ Docker Installation ###############



#########################################
###############   OLD   ####################
#########################################

################ Docker 설치 ###############
++++++ swap limit 해제 ++++++
$ sudo vim /etc/default/grub
===== grub =====
...
GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"
...
=============================
$ sudo update-grub
$ sudo reboot now
++++++ ++++++++++++ ++++++
++++++ memlock, nofile 설정 (for Elasticsearch) ++++++
$ sudo vim /etc/security/limit.conf
===== limit.conf =====
...
* - memlock unlimited
* - nofile 65536
...
=============================
$ sudo vim /lib/systemd/system/docker.service
===== docker.service =====
...

ExecStart=/usr/bin/dockerd --default-ulimit memlock=-1 --default-ulimit nofile=65536
...
=============================
$ sudo systemctl daemon-reload
++++++ ++++++++++++ ++++++
++++++ docker-compose 설치 ++++++
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
$ sudo chmod +x /usr/bin/docker-compose
$ sudo docker-compose --version
++++++ ++++++++++++ ++++++
++++++ docker cluster 만들기 +++++
** in master node **
$ sudo docker swarm init --advertise-addr 192.168.0.1
sudo docker swarm join-token manager (generation for joining a new worker node)
sudo docker node ls
** in worker node **
$ sudo docker swarm join --token ................. 192.168.0.1:2377
** in master node - create overlay network **
sudo docker network create --attachable --driver=overlay --subnet=172.172.0.0/24 --ip-range=172.172.0.0/24 --gateway=172.172.0.1 chakan-net
++++++ ++++++++++++ ++++++
*** 물리 network와 충돌로 인해 route가 잘 안 될 수 있음. 확인 후 변경할 것
++++++ docker network 만들기 +++++
$ sudo docker network create \
            --driver bridge \
            --subnet 172.18.0.0/24 \
            --gateway 172.18.0.1 \
            --opt "com.docker.network.bridge.enable_icc"="true" \
            --opt "com.docker.network.bridge.enable_ip_masquerade"="true" \
            --opt "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" \
            --opt "com.docker.network.bridge.name"="chakan-docker0" \
            --opt "com.docker.network.driver.mtu"="1500" \
            chakan-bridge
++++++ ++++++++++++ ++++++
################ Docker - WETTY ###############
$ sudo docker pull freeflyer/wetty
$ sudo  mkdir -p /home/docker/volumes/wetty
파일: chakan-wetty.sh
$ chakan-wetty.sh run|start|stop|remove|status|bash
++++++ ++++++++++++ ++++++
################ Docker - MARIADB ###############
$ sudo docker pull mariadb
$ sudo  mkdir -p /home/docker/volumes/mariadb
파일: chakan-mariadb.sh
$ chakan-mariadb.sh run|start|stop|remove|status|bash
++++++ ++++++++++++ ++++++
################ Docker - PHPMYADMIN ###############
$ sudo docker pull phpmyadmin/phpmyadmin
$ sudo  mkdir -p /home/docker/volumes/phpmyadmin
파일: chakan-phpmyadmin.sh
$ chakan-phpmyadmin.sh run|start|stop|remove|status|bash
++++++ ++++++++++++ ++++++
################ Docker - JENKINS ###############
$ sudo docker pull jenkins/jenkins:lts
$ sudo  mkdir -p /home/docker/volumes/jenkins
$ sudo  mkdir -p /home/docker/volumes/jenkins/home
$ sudo  mkdir -p /home/docker/volumes/jenkins/gradle-deps
$ sudo  mkdir -p /home/docker/volumes/jenkins/third-party
*** node setup in third-party ***

파일: chakan-jenkins.sh
$ chakan-jenkins.sh run|start|stop|remove|status|bash
++++++ ++++++++++++ ++++++
################ Docker -  NGINX ###############
$ sudo docker pull nginx
++++++ nginx-reverse-proxy ++++++
$ sudo  mkdir -p /home/docker/volumes/nginx/reverse-proxy
$ sudo  mkdir -p /home/docker/volumes/nginx/reverse-proxy/conf.d
$ sudo  mkdir -p /home/docker/volumes/nginx/reverse-proxy/logs
파일: chakan-nginx-reverse-proxy.sh
$ chakan-nginx-reverse-proxy.sh run|start|stop|restart|remove|status|bash
++++++ ++++++++++++ ++++++
################ Docker - TOMCAT 8.5 ###############
$ sudo docker pull tomcat:8.5
++++++ tomcat-production ++++++
$ sudo  mkdir -p /home/docker/volumes/tomcat/production
$ sudo  mkdir -p /home/docker/volumes/tomcat/production/conf
$ sudo  mkdir -p /home/docker/volumes/tomcat/production/logs
파일: chakan-tomcat-production.sh
chakan-tomcat-production.sh run|start|stop|remove|status|bash
++++++ tomcat-demo ++++++
$ sudo  mkdir -p /home/docker/volumes/tomcat/demo
$ sudo  mkdir -p /home/docker/volumes/tomcat/demo/conf
$ sudo  mkdir -p /home/docker/volumes/tomcat/demo/logs
파일: chakan-tomcat-demo.sh
chakan-tomcat-demo.sh run|start|stop|remove|status|bash
++++++ tomcat-staging ++++++
$ sudo  mkdir -p /home/docker/volumes/tomcat/staging
$ sudo  mkdir -p /home/docker/volumes/tomcat/staging/conf
$ sudo  mkdir -p /home/docker/volumes/tomcat/staging/logs
$ sudo  mkdir -p /home/docker/volumes/tomcat/staging/webapps
파일: chakan-tomcat-staging.sh
chakan-tomcat-staging.sh run|start|stop|remove|status|bash
++++++ ++++++++++++ ++++++

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.