Linux (23) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Docker] Dockerfile๋ก XpressEngine ๊ตฌ์ถํ๊ธฐ Dockerfile๋ก XpressEngine ๊ตฌ์ถํ๊ธฐ ๐ XpressEngine์ด๋? ํ๊ตญ์์ ๊ฐ๋ฐ๋ ์คํ ์์ค ์ฝํ ์ธ ๊ด๋ฆฌ ์์คํ ์ผ๋ก, ์น ์ฌ์ดํธ๋ฅผ ์ฝ๊ฒ ๊ตฌ์ถํ๊ณ ์ด์ํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ซํผ์ด๋ค. ๐ ๋๋ ํ ๋ฆฌ ์์ฑ mkdir xpress_maker; cd xpress_maker ๐ Dockerfile ์์ฑ vi Dockerfile # ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ก CentOS 7 ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉ, ์ด ์ด๋ฏธ์ง ์์ ๊ตฌ์ถ. FROM centos:7 # yum ํจํค์ง ๊ด๋ฆฌ์์ ์บ์๋ฅผ ์ ๋ฆฌ. ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ๋ถํ์ํ ์บ์๋ฅผ ์ ๊ฑฐ. RUN yum clean all # ์ด๋ฏธ์ง์ ์ค์น๋ ๋ชจ๋ ํจํค์ง ์ต์ ์ํ๋ก ์ ๋ฐ์ดํธ RUN yum update -y # wget, git, httpd๋ฅผ ์ค์น RUN yum -y in.. [Docker] Private Docker Registry๋ก ์ด๋ฏธ์ง ๊ด๋ฆฌํ๊ธฐ Private Docker Registry๋ก ์ด๋ฏธ์ง ๊ด๋ฆฌํ๊ธฐ ๐ Docker Registry๋? Docker ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ค์ ์ง์คํ ์๋ฒ ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ฌ๋ฌ ํ๊ฒฝ์์ ๋ฐฐํฌํ๊ธฐ ์ํ ๋ชฉ์ - ์ข ๋ฅ โ ๊ณต์ Docker Registry (๋์ปค ํ๋ธ) ๋์ปค ํ๋ธ๋ Docker ๊ณต์ ์ด๋ฏธ์ง ์ ์ฅ์๋ก์, ๊ฐ๋ฐ์๋ค์ด ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๊ณ ๊ฐ์ ธ๋ค ์ฌ์ฉํ ์ ์๋ ์ค์ ์ง์คํ ๋ ์ง์คํธ๋ฆฌ. (๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๋ ๋ฒ) https://thisisyoon.tistory.com/42 [Docker] ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๐ ๋์ปค ํ๋ธ์ ์ ์ฅ์ ์์ฑ https://hub.docker.com/ Docker Hub Container I.. [Docker] ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๐ ๋์ปค ํ๋ธ์ ์ ์ฅ์ ์์ฑ https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your team's container applications. Create your account Signing up for Docker is fast and free. Continue with GoogleContinue with GitHubContinue wi hub.docker.com ๐ Dockerfil.. [Docker] ๋์ปค ์ปจํ ์ด๋ & ์ด๋ฏธ์ง ๋ช ๋ น์ด ๋์ปค ์ปจํ ์ด๋ & ์ด๋ฏธ์ง ๋ช ๋ น์ด ๐ ์ปจํ ์ด๋ ํ์ธ docker container ls --all docker ps --all ๐ ์ด๋ฏธ์ง ํ์ธ docker image ls docker images ๐ ngnix ์ปจํ ์ด๋ ์์ฑ ํ ์์ docker container run -d -p 8003:80 nginx ๐ ์ปจํ ์ด๋ ์ญ์ docker container rm -f [์ปจํ ์ด๋ ID] ์ปจํ ์ด๋ ID๋ docker container ls --all ๋ก ํ์ธ ๊ฐ๋ฅ ๐ ๋ชจ๋ ์ปจํ ์ด๋ ํ ๋ฒ์ ์ญ์ docker container rm -f $(docker container ls -aq) -f : ๋์ ์ค์ธ ์ปจํ ์ด๋๊น์ง ๐ ๋ช ๋ น์ด๋ก ์ปจํ ์ด๋ ํ ๋ฒ์ ์ญ์ vi ctndel #!/bin/bash docker contai.. [Docker] ์ฐ๋ถํฌ์ ๋์ปค ์ค์นํ๊ธฐ ์ฐ๋ถํฌ์ ๋์ปค ์ค์นํ๊ธฐ ๐ ๊ฐ์๋จธ์ ์์ฑํ๊ธฐ - ์ฌ์ฉํ ์ด๋ฏธ์ง https://releases.ubuntu.com/focal/ubuntu-20.04.6-desktop-amd64.iso - update and other software Minimal Install - Who are you? ๐ ๊ธฐ๋ณธ ํด ์ค์นํ๊ธฐ sudo vi /etc/sudoers 27 user1 ALL=(ALL) NOPASSWD: ALL ์ถ๊ฐ su user1 sudo apt install ssh -y sudo systemctl enable ssh --now sudo systemctl disable ufw --now sudo apt install -y vim curl wget git ๐ ๋์ปค ์ค์น - ๊ธฐ์กด ํจํค์ง ์ญ์ for pkg in d.. ํด๋ผ์ฐ๋ ์ปดํจํ ์ด๋? โ๏ธ Cloud Computing๐ ํด๋ผ์ฐ๋ ์ปดํจํ ์ด๋?์ธํฐ๋ท ๊ธฐ์ ์ ์ด์ฉํด์ ๋ค์์ ์ฌ์ฉ์์๊ฒ ํ๋์ ์๋น์ค๋ก์ ๋ฐฉ๋ํ IT ๋ฅ๋ ฅ์ ์ ๊ณตํ๋ ์ปดํจํ ๋ฐฉ์ - ๊ฐํธ๋ (Gartner) โ๏ธ ํด๋ผ์ฐ๋ ์ปดํจํ ์ ์์ "์ ํธ๋ฆฌํฐ ์ปดํจํ " ๊ธฐ์ ๋ด์ IT ๋ถ์๋ ์ธ๋ถ์ ์๋น์ค ์ ๊ณต์๊ฐ ๊ณ ๊ฐ์๊ฒ ์ปดํจํ ์ ์ฌ์ฉ๋๋ ์ฌ๋ฌ ์์๊ณผ ๊ธฐ๋ฐ ์์ค ๋ฑ์ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ํํ ์ ์ก์ ๋์ ์ฌ์ฉ๋์ ๋ฐ๋ผ ์๊ธ์ ๋ถ๊ณผํ๋ ์ข ๋์ ๋ฐฉ์ IT ์๋น์ค์ ๊ฐ ์์๋ฅผ ์ ํธ๋ฆฌํฐ๋ก ์ธ์ํ๋ ๊ฒ ํด๋ฌ์คํฐ(cluster)๊ฐ์ํ(virtualization)๋ถํ (partitioning)ํ๋ก๋น์ ๋(provision)์์จ ์ปดํจํ (autonomic computing)๊ทธ๋ฆฌ๋ ์ปดํจํ (grid computing) โก๏ธ ์์ ํ์ฉ์ ํจ์จ์ฑ ๋์ด๊ณ , ๊ด๋ จ ๋น์ฉ ์ต.. [elasticsearch] kibana๋ฅผ ํ์ฉํ์ฌ ์์ธ์ ๊ณต๊ณต๋ฐ์ดํฐ ์๊ฐํํ๊ธฐ kibana๋ฅผ ํ์ฉํ์ฌ ์์ธ์ ๊ณต๊ณต๋ฐ์ดํฐ ์๊ฐํ โ ์ฌ์ฉํ ๊ณต๊ณต๋ฐ์ดํฐ https://data.seoul.go.kr/dataList/OA-20883/S/1/datasetView.do ์ด๋ฆฐ๋ฐ์ดํฐ๊ด์ฅ ๋ฉ์ธ ๋ฐ์ดํฐ๋ถ๋ฅ,๋ฐ์ดํฐ๊ฒ์,๋ฐ์ดํฐํ์ฉ data.seoul.go.kr ํด๋น ๊ณต๊ณต๋ฐ์ดํฐ์ Open API๋ฅผ ํ์ฉํ๋ค. ์ธ์ฆํค๋ฅผ ๋ฐ๊ธ๋ฐ๋๋ค. โ ํ์ด์ฌ์ ์ด์ฉํ Open API ์คํ requests ๋ชจ๋ ์ค์น sudo apt install python3-pip pip install requests bulk API๋ฅผ ํ์ฉํ๋ ํ์ด์ฌ ํ์ผ ์์ฑ import urllib.request from xml.etree.ElementTree import fromstring, ElementTree from elasticsearch i.. [Linux] ๋ ธ๋์ CPU ์ฌ์ฉ๋ฅ ๋น๊ตํ๊ธฐ (sar ๋ช ๋ น์ด) Control ๋ ธ๋์์ Compute1 & Compute 2์ CPU ์ฌ์ฉ๋ฅ ๋น๊ตํ๊ธฐ โ sysstat, bc ์ค์นํ๊ธฐ dnf -y install sysstat compute1, 2์ ์ค์นํ๊ธฐ yum -y install bc control ๋ ธ๋์ ์ค์นํ๊ธฐ โ ๋น๊ตํ๋ ์คํ ํ์ผ ๋ง๋ค๊ธฐ vi compare_cpu.sh ; chmod +x compare_cpu.sh #!/bin/bash get_cpu_usage() { server=$1 usage=$(ssh $server 'sar 1 3 | tail -1 | gawk "{print \$8}"') result=$(echo "scale=2 ; 100 * $usage" | bc) result_int=$(echo $result | cut -d'.' -f1) echo.. [Linux] ๊ฐ์ ๋คํธ์ํฌ & ๊ฐ์๋จธ์ ์์ฑ ๐งท ๊ฐ์ ๋คํธ์ํฌ ์์ฑ โ xml ํ์ผ ์์ฑํ๊ธฐ vi private1.xml private1 โ ์๋ก์ด ๊ฐ์ ๋คํธ์ํฌ ์ ์ virsh net-define private1.xml โ ๊ฐ์ ๋คํธ์ํฌ ์์ virsh net-start private1 โ ๋ถํ ์ ์๋์ผ๋ก ์์ํ๋๋ก ์ค์ virsh net-autostart private1 โ ๊ฐ์ ๋คํธ์ํฌ ํ์ธ virsh net-list --all ๐งท Base Image ๋ณต์ ํ์ฌ ๋ณผ๋ฅจ ์์ฑ โ ๊ธฐ์กด ์ด๋ฏธ์ง ๋ณต์ฌ cp CentOS7-Base.qcow2 testvm1.qcow2 โ ์ด๋ฏธ์ง ์ปค์คํฐ๋ง์ด์ง์ผ๋ก ๋น๋ฐ๋ฒํธ ์ค์ virt-customize -a testvm1.qcow2 --root-password password:test123 ๐งท ์์ฑ๋ ๋ณผ๋ฅจ์ผ๋ก ์ธ์คํด์ค ๋ฐฐ.. [Linux] ๊ฐ์๋จธ์ ์ปค์คํฐ๋ง์ด์ง (๊ณต๊ฐํค ssh ์ ์) ๐งท Key-pair ์์ฑ ๋จผ์ , Key-pair๋ฅผ ์์ฑํ๋ค. ssh-keygen -q -N "" -f myvm.pem ๐งท ์ด๋ฏธ์ง ๋ณต์ฌ cp CentOS7-Base.qcow2 myvm.qcow2 ๐งท ์ด๋ฏธ์ง ์ปค์คํฐ๋ง์ด์ง โญ๏ธ virt-customize -a myvm.qcow2 --install httpd,git,vim --firstboot-command 'systemctl enable httpd' --mkdir /root/.ssh --run-command 'chmod 700 /root/.ssh' --upload myvm.pem.pub:/root/.ssh/authorized_keys --run-command 'chmod 644 /root/.ssh/authorized_keys' --selinux-relabel .. ์ด์ 1 2 3 ๋ค์