SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
셸 스크립트를 이용한
클라우드 시스템 운영
1
Nalee Jang, Senior Consultant of Red Hat Korea
2
About me
IT Expert on the Cloud!
한국 레드햇에서 오픈스택 및 클라우드 플랫폼 전문 컨설턴트로 근무하고 있습니다.
● 제 이름은 장현정입니다. 하지만, 저는 NaleeJang 이라고 불리는게 좋아요!
● 앞에서 소개했듯이 저는 한국 레드햇에서 오픈스택 전문 컨설턴트로 일하고 있어요.
● 그리고, 7년 전에는 HP Helion MVP(Most Valuable Professional, 2015.06.05)도
수상했어요.
● 저는 2권의 책을 출간했는데, 하나는 다들 아시는 “오픈스택을 다루는 기술"과
“오픈스택을 다루는 기술(최신 개정판)”이 있고, 또 다른 하나는 올 초에 출간한 “처음
배우는 셸 스크립트" 라는 책이에요!
● 물론 클라우드 마켓과 관련된 개인 특허를 재미삼아 내 본적도 있어요. 이것도
7년전에요.
● 그리고, 가끔은 제 블로그에 글을 쓰기도 해요. (http://naleejang.tistory.com)
● 페이스북은 매일 사용하죠~!! (http://www.facebook.com/naleejang)
● 마지막으로 다들 아시다시피 저는 오픈스택 한국 커뮤니티의 두번째 리더였어요.
지금은 아니지만요! (http://www.facebook.com/groups/openstack.kr/)
(http://www.openstack.or.kr/)
OpenInfra Community Days Korea 2021
3
생활 속의 클라우드
Agenda
클라우드와 리눅스와 셸 스크립트의 관계
셸 스크립트를 이용한 클라우드 운영(?)
OpenInfra Community Days Korea 2021
4
셸 스크립트를이용한클라우드시스템운영
주위를 둘러봐요~!!
생각하지 못한 곳에서
클라우드 환경을 만날수 있어요.
생활 속의 클라우드
OpenInfra Community Days Korea 2021
5
생활 속의 클라우드
셸 스크립트를이용한클라우드시스템운영
OpenInfra Community Days Korea 2021
COVID-19
재택근무
온라인 미팅
코로나19 백신
예약 및 접종
배달음식 유행
1인 방송
온라인 세미나
온라인 수업
온라인 방송 참여
주위를 둘러 보세요!
코로나 바이러스가 발견되기 이전에도 있었지만, 코로나
바이러스로 인해 IT 기술은 매우 빠른 속도로 발전하고
있습니다. 재택근무를 하면서, 온라인 미팅을 하고,
학생들은 온라인으로 수업을 듣습니다. 예전에는 방청석을
예매해 참여했던 방송들은 온라인 방송 참여 시스템을
이용해 온라인으로 방송을 참여합니다. 물론 1인 방송을
하고, 세미나도 온라인으로 진행합니다. 모여서 밥을 못
먹으니 배달음식이 유행을 하고, 올해 초부터 시작된
코로나 백신 역시 예약시스템을 이용해 백신을 맞습니다.
이런 많은 IT 시스템들은 과연 어디에서 실행이
되는걸까요?
6
생활 속의 클라우드
셸 스크립트를이용한클라우드시스템운영
OpenInfra Community Days Korea 2021
Cloud
Service
클라우드 서버
클라우드 서버
클라우드
스토리지
클라우드
컨테이너
온라인 미팅
동영상 촬영
음악 방송
동영상 방송
우리가 사용하는 많은 서비스들을
과연 어디에서 실행이 되는걸까요? 우리는 알게 모르게
클라우드 환경을 사용하고 있습니다. 클라우드 서비스에서
제공하는 클라우드 스토리지에 데이터를 저장하고
클라우드 서비스에서 제공하는 가상서버와 컨테이너
환경을 이용하여 이와 같은 어플리케이션들을 개발하고
실행합니다. 그리고, 클라우드 환경에서 서비스를 합니다.
그럼, 이런 클라우드 환경을 구성하기 위해서는 어떤
기술들이 필요할까요? 함께 알아볼까요?
7
생활 속의 클라우드
셸 스크립트를이용한클라우드시스템운영
OpenInfra Community Days Korea 2021
Infrastructure
Platform
Software
우리가 앞에서 살펴봤던 클라우드 환경을 구성하고, 어플리케이션들을 개발하고 서비스하기 위해서는 CPU, 메모리, 네트워크, 디스크와
같은 인프라가 필요 합니다. 그리고, 그 위에 운영체제를 설치하고, 개발이나 서비스에 필요로 하는 개발 플랫폼을 설치하죠~!! 그리고,
우리가 개발한 소스를 올리고, 데이터베이스에 데이터를 부어넣으면, 우리가 사용하는 소프트웨어 서비스가 되는 것입니다.
8
생활 속의 클라우드
셸 스크립트를이용한클라우드시스템운영
OpenInfra Community Days Korea 2021
http://abc.com
http://aaa.com http://bbb.com http://ccc.com http://aaa.com http://bbb.com http://ccc.com
Bare metal 환경 Hypervisor 환경 Container 환경
그럼, 인프라를 좀 더 자세하게 들여다 볼까요?
인프라는 아래와 같이 크게 3가지 타입의 인프라 종류가 있습니다. 물리 머신 환경을 그대로 사용하는 Bare metal 환경, 물리
머신에 하이퍼바이저를 설치하고 가상 서버를 생성하여 사용하는 Hypervisor 환경, 컨테이너 엔진을 사용하여 물리머신 혹은
가서서버 위에 컨테이너를 생성하여 사용하는 Container 환경이 있습니다.
9
셸 스크립트를이용한클라우드시스템운영
우리가 발견한 클라우드
환경은 대부분의 리눅스 환경
위에 올라가 있어요~!! 그리고,
리눅스에서 셸 스크립트는
리눅스 그 자체라고도 할 수
있죠~!!
클라우드와 리눅스와
셸 스크립트의 관계
OpenInfra Community Days Korea 2021
10
클라우드와 리눅스
셸 스크립트를이용한클라우드시스템운영
클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다.
OpenInfra Community Days Korea 2021
11
클라우드와 리눅스
셸 스크립트를이용한클라우드시스템운영
클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다.
OpenInfra Community Days Korea 2021
12
클라우드와 리눅스
셸 스크립트를이용한클라우드시스템운영
클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다.
OpenInfra Community Days Korea 2021
13
클라우드와 리눅스
셸 스크립트를이용한클라우드시스템운영
클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다.
OpenInfra Community Days Korea 2021
14
리눅스와 셸 스크립트
셸 스크립트를이용한클라우드시스템운영
리눅스는 셸로 구성되어 있습니다.
OpenInfra Community Days Korea 2021
[user@host ~]$ _
사용자계정
호스트명
홈디렉토리
셸 프롬프트
GNU Bourne Again Shell
BASH
[root@host ~]# _
Root 계정
Root 셸 프롬프트
15
리눅스와 셸 스크립트
셸 스크립트를이용한클라우드시스템운영
리눅스에서 셸 이용한 프로그램이 셸 스크립트입니다.
OpenInfra Community Days Korea 2021
셸 스크립트는
● 우리가 자주 사용하는 명령어들을 프로세스화하여 파일에 작성한 것을 의미합니다.
● 스크립트라는 단어를 사용했기 때문에 if, for와 같은 간단한 제어문을 사용할 수 있으며,
● 명령어 및 실행결과를 저장할 수 있는 변수를 사용할 수 있습니다.
주요 셸 스크립트 구문 주요 리눅스 명령어
● 변수 : 함수, 전역변수, 지역변수, 예약변수, 환경변수,
위치 매개변수, 특수 매개변수
● 조건문 : if, switch - case
● 반복문 : for, while
● 연산자 : 문자열 연산자, 비교 연산자, 논리 연산자,
디렉터리 연산자, 파일 연산자
● 정규표현식 : POSIX 기본 및 확장 문법, POSIX 문자
클래스
주요 리눅스 명령어
● 문자열을 찾을 수 있는 grep
● 파일을 찾을 수 있는 find
● 특정 인덱스 문자열을 출력할 수 있는 awk
● 찾은 문자열을 바꿀 수 있는 sed
● 날짜와 시간을 알려주는 date
16
셸 스크립트를이용한클라우드시스템운영
셸 스크립트 하나만 잘 써도
우리는 클라우드 시스템을
아주 효율적으로 관리할 수
있어요.
셸 스크립트를 이용한
클라우드 시스템 운영(?)
OpenInfra Community Days Korea 2021
17
운영에는 어떤 일들이 있을까요?
셸 스크립트를이용한클라우드시스템운영
운영 업무에는 크게 시스템 관리와 시스템 모니터링이 있습니다.
OpenInfra Community Days Korea 2021
운영
시스템 관리
시스템 모니터링
Memory
NIC
Disk
Hypervisor
Container
Create Delete Migration Update
18
셸 스크립트를 이용하여 인스턴스를 만들어봅시다!
셸 스크립트를이용한클라우드시스템운영
셸 스크립트도 프로세스가 필요합니다.
OpenInfra Community Days Korea 2021
Instance Create
인스턴스명 입력
이미지 정보 입력
네트워크 정보 입력
Flavor 정보 입력
보안그룹 정보 입력
SSH Key 정보
볼륨 생성
인스턴스 생성
19
셸 스크립트를 이용하여 인스턴스를 만들어봅시다!
셸 스크립트를이용한클라우드시스템운영
셸 스크립트도 프로세스가 필요합니다.
OpenInfra Community Days Korea 2021
인스턴스명 입력
이미지 정보 입력
네트워크 정보 입력
Flavor 정보 입력
보안그룹 정보 입력
SSH Key 정보
볼륨 생성
인스턴스 생성
[nalee@localhost ~]$ vi create-instance.sh
#!/bin/bash
# 인스턴스명 입력
read -p "Input instance name : " vmname
셸 스크립트로 구현하기
read 명령어는 외부 사용자로부터는 직접 파라메터를 입력받을 때
사용하는 명령어입니다.
-p 옵션: 프롬프트 메시지를 함께 보여줄 때 사용하는 옵션
vmname : 사용자로부터 입력받은 문자열을 저장 하기 위한 변수
20
셸 스크립트를 이용하여 인스턴스를 만들어봅시다!
셸 스크립트를이용한클라우드시스템운영
셸 스크립트도 프로세스가 필요합니다.
OpenInfra Community Days Korea 2021
인스턴스명 입력
이미지 정보 입력
네트워크 정보 입력
Flavor 정보 입력
보안그룹 정보 입력
SSH Key 정보
볼륨 생성
인스턴스 생성
# 이미지 정보
echo "== Image List =="
openstack image list -c Name -f value
read -p "Input image name : " image
# 네트워크 정보
echo "== Network List =="
openstack network list -c Name -f value
read -p "Input network name : " net
셸 스크립트로 구현하기
21
셸 스크립트를 이용하여 인스턴스를 만들어봅시다!
셸 스크립트를이용한클라우드시스템운영
셸 스크립트도 프로세스가 필요합니다.
OpenInfra Community Days Korea 2021
인스턴스명 입력
이미지 정보 입력
네트워크 정보 입력
Flavor 정보 입력
보안그룹 정보 입력
SSH Key 정보
볼륨 생성
인스턴스 생성
# Flaver 정보
echo "== Flavor List =="
openstack flavor list -c Name -f value
read -p "Input flavor name : " flavor
# 보안그룹 정보
echo "== Security group List =="
openstack security group list --project
$OS_PROJECT_NAME -c Name -f value
read -p "Input security group name : " sec
secgrp=$(openstack security group list --project
$OS_PROJECT_NAME -f value -c ID -c Name | grep
"$sec$" | awk '{print $1}')
셸 스크립트로 구현하기
22
셸 스크립트를 이용하여 인스턴스를 만들어봅시다!
셸 스크립트를이용한클라우드시스템운영
셸 스크립트도 프로세스가 필요합니다.
OpenInfra Community Days Korea 2021
인스턴스명 입력
이미지 정보 입력
네트워크 정보 입력
Flavor 정보 입력
보안그룹 정보 입력
SSH Key 정보
볼륨 생성
인스턴스 생성
# SSH 키 정보
echo "== Keypair List =="
openstack keypair list -c Name -f value
read -p "Input keypair name : " keypair
# 볼륨 생성
echo "== Create volume =="
read -p "Input volume size: " size
openstack volume create --size $size --image
$image --bootable $vmname
셸 스크립트로 구현하기
23
셸 스크립트를 이용하여 인스턴스를 만들어봅시다!
셸 스크립트를이용한클라우드시스템운영
셸 스크립트도 프로세스가 필요합니다.
OpenInfra Community Days Korea 2021
인스턴스명 입력
이미지 정보 입력
네트워크 정보 입력
Flavor 정보 입력
보안그룹 정보 입력
SSH Key 정보
볼륨 생성
인스턴스 생성
# 인스턴스 생성
echo "Create Instance Starting"
openstack server create 
--volume $(openstack volume list --name $vmname -f
value -c ID) 
--flavor $flavor 
--security-group $secgrp 
--key-name $keypair 
--network $net 
--wait 
$vmname
셸 스크립트로 구현하기
24
셸 스크립트를 이용하여 인스턴스를 만들어봅시다!
셸 스크립트를이용한클라우드시스템운영
데모를 같이 볼까요!
OpenInfra Community Days Korea 2021
Youtube URL: https://youtu.be/C_iUDJ7ZPFE
25
그 외 시스템 관리를 위한 스크립트
셸 스크립트를이용한클라우드시스템운영
처음 배우는 셸 스크립트 활용하기
OpenInfra Community Days Korea 2021
GitHub URL
https://github.com/naleeJang/Easy-Shell-Script
26
운영에는 어떤 일들이 있을까요?
셸 스크립트를이용한클라우드시스템운영
주요 모니터링 항목을 알아봅시다!
OpenInfra Community Days Korea 2021
모니터링 항목 설명
Power 컨트롤러 및 컴퓨트 노드의 전원에 이상이 있는지 IPMI 명령어를 통해 확인합니다.
Network
다운되어 있는 네트워크 인터페이스가 있는지 확인하고, 다운되어 있는 인터페이스가 있다면
데이터센터 방문점검을 해야 합니다.
Cluster status 클러스터 관리 툴인 Pacemaker 상태를 점검합니다.
CPU CPU 사용률을 확인합니다.
Memory 메모리 상태를 확인하고 캐시 메모리가 얼마나 찼는지를 확인합니다.
Container 컨테이너 실행상태를 점검합니다.
Mount NFS
Glance에 잘 마운트 되어 있는지 확인하고, 마운트에 문제가 있다면 해당 구간의 네트워크를
확인해야 합니다.
Service Logs 서비스 로그를 확인하고 문제가 있는 서비스가 있는지 점검합니다.
27
운영에는 어떤 일들이 있을까요?
셸 스크립트를이용한클라우드시스템운영
오픈스택은 주로 다음과 같은 노드들이 필요합니다.
OpenInfra Community Days Korea 2021
“Red Hat OpenStack 16.2 from installing to operation” 테스트 베드 아키텍처 참조
28
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
시스템 모니터링
29
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check Overcloud Power"
print_msg "#-----------------------------"
for i in {0..2}
do
print_msg "192.168.10.1:645$i"
power_stat=$(ipmitool -H 192.168.10.1 -p 645$i
-I lanplus -U admin -P redhat power status)
print_msg "$power_stat"
done
셸 스크립트로 구현하기
30
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check Network"
print_msg "#-----------------------------"
net_stat=$(ssh -q heat-admin@$i sudo ip a | grep
'state UP' | grep mq | wc -l)
if [ $net_stat -eq 5 ]
then
print_msg "Network status is normal"
else
print_msg "Please check network status"
print_msg "$(ssh -q heat-admin@$i sudo ip a)"
fi
셸 스크립트로 구현하기
31
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check Clustering"
print_msg "#-----------------------------"
cluster_stat=$(ssh -q heat-admin@$i sudo pcs status
| grep 'failed' | wc -l)
if [ $cluster_stat -eq 0 ]
then
print_msg "Pacemaker status is normal"
else
print_msg "Please check pacemaker"
print_msg "$(ssh -q heat-admin@$i sudo pcs
status)"
fi
셸 스크립트로 구현하기
32
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check CPU"
print_msg "#-----------------------------"
cpu_stat=$(ssh -q heat-admin@$i sudo
mpstat | grep all | awk '{print $4}')
print_msg "CPU usage is $cpu_stat. If CPU
usage is high, please check system CPU
status"
셸 스크립트로 구현하기
33
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check Memory"
print_msg "#-----------------------------"
mem_stat=$(ssh -q heat-admin@$i sudo free -h |
grep -i mem | awk '{print $4}')
print_msg "Free memory amount is $mem_stat. If
free memory amount is low, please check system
memory status"
셸 스크립트로 구현하기
34
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check NFS - glance"
print_msg "#-----------------------------"
nfs_stat=$(ssh -q heat-admin@$i sudo df -h | grep
glance | wc -l)
if [ $nfs_stat -eq 1 ]
then
print_msg "NFS status is normal."
else
print_msg "Please check network status and nfs
status"
fi
셸 스크립트로 구현하기
35
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check Container"
print_msg "#-----------------------------"
container_stat=$(ssh -q heat-admin@$i sudo podman ps |
grep -i sec | wc -l)
if [ $container_stat -eq 0 ]
then
print_msg "Container status is normal."
else
print_msg "Please check container status"
print_msg "$(ssh -q heat-admin@$i sudo podman ps)"
fi
셸 스크립트로 구현하기
36
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
IPMI를 이용한 전원 확인
Network 확인
Cluster 상태 확인
CPU 사용률 확인
Memory 사용률 확인
NFS 상태 확인
Container 상태 확인
Service 로그 확인
print_msg "#-----------------------------"
print_msg "# Check Service logs"
print_msg "#-----------------------------"
log_stat=$(ssh -q heat-admin@$i sudo sh chk-log.sh | wc -l)
if [ $log_stat -eq 0 ]
then
print_msg "No error service logs. This system status is
normal."
else
error_msg=$(ssh -q heat-admin@$i sudo sh chk-log.sh)
print_msg "Please check system logs and container status."
print_msg $error_msg
fi
셸 스크립트로 구현하기
37
셸 스크립트를 이용하여 모니터링하기
셸 스크립트를이용한클라우드시스템운영
모니터링을 위한 프로세스 만들기
OpenInfra Community Days Korea 2021
Youtube URL: https://youtu.be/f5_JMY2nHFs
38
Conclude
생활속의 클라우드
● 주위를 둘러보면 쉽게 클라우드 환경을 만날 수 있습니다.
● 클라우드 환경은 하이퍼바이저 환경에서 컨테이너 환경을 넘어가고 있습니다.
대표적인 Private 클라우드 환경
● Private 클라우드 환경을 구축하기 위해 가장 많이 사용되는 오픈소스 플랫폼이 오픈스택입니다.
클라우드! 리눅스! 셸 스크립트!
● Public 클라우드가 되든 Private 클라우드가 되든 우리는 리눅스 서버를 정말 많이 사용합니다.
● 리눅스는 셸로 구성되어 있고, 자주 사용하는 명령어를 나열하여 파일로 저장하면 셸 스크립트가 됩니다.
셸 스크립트를 활용한 클라우드 시스템 운영
● 자주 사용하는 리눅스 명령어와 셸 스크립트의 간단한 제어문을 이용해 클라우드 시스템을 효율적으로 운영할 수 있습니다.
● 인스턴스를 생성/삭제 할 수 있으며, 호스트 노드에서 매일 체크해야 하는 항목들을 쉽게 확인할 수 있습니다.
OpenInfra Community Days Korea 2021
openstack.kr
http://www.openstack.or.kr
http://bit.ly/openstack-kr-videos
h
39
Thank you
OpenStack is a cloud operating system that controls
large pools of compute, storage, and networking
resources throughout a datacenter, all managed and
provisioned through APIs with common authentication
mechanisms.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
K8s - Setting up minikube
K8s  - Setting up minikubeK8s  - Setting up minikube
K8s - Setting up minikube
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
OpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with MicrosoftOpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
 
Red Hat Openshift Container Platform
Red Hat Openshift Container Platform Red Hat Openshift Container Platform
Red Hat Openshift Container Platform
 
Docker 101
Docker 101Docker 101
Docker 101
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
インフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boostインフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boost
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
 
TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使う
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
 

Ähnlich wie 셸 스크립트를 이용한 클라우드 시스템 운영

AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
Amazon Web Services Korea
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
OnGameServer
 

Ähnlich wie 셸 스크립트를 이용한 클라우드 시스템 운영 (20)

[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
피니엔진
피니엔진피니엔진
피니엔진
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
 
우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기우분투에 시스템콜 추가하기
우분투에 시스템콜 추가하기
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
 
Hyperledger farbric build your first network install and analysis
Hyperledger farbric   build your first network install and analysisHyperledger farbric   build your first network install and analysis
Hyperledger farbric build your first network install and analysis
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
Shell Script
Shell ScriptShell Script
Shell Script
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
 

Mehr von Nalee Jang

[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack
Nalee Jang
 

Mehr von Nalee Jang (20)

Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
 
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
 
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
 
[Open infra] how to calculate the cloud system operating rate
[Open infra] how to calculate the cloud system operating rate[Open infra] how to calculate the cloud system operating rate
[Open infra] how to calculate the cloud system operating rate
 
How to operate containerized OpenStack
How to operate containerized OpenStackHow to operate containerized OpenStack
How to operate containerized OpenStack
 
[Red Hat] OpenStack Automation with Ansible
[Red Hat] OpenStack Automation with Ansible[Red Hat] OpenStack Automation with Ansible
[Red Hat] OpenStack Automation with Ansible
 
Red hat and after 1 year
Red hat and after 1 yearRed hat and after 1 year
Red hat and after 1 year
 
오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향
 
Why cloud storage
Why cloud storageWhy cloud storage
Why cloud storage
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution
 
오픈스택한국커뮤니티 소개
오픈스택한국커뮤니티 소개오픈스택한국커뮤니티 소개
오픈스택한국커뮤니티 소개
 
OpenStack in Enterprise
OpenStack in EnterpriseOpenStack in Enterprise
OpenStack in Enterprise
 
User Story :: Cloudike with KT UCloud Biz
User Story :: Cloudike with KT UCloud BizUser Story :: Cloudike with KT UCloud Biz
User Story :: Cloudike with KT UCloud Biz
 
OpenSource! OpenStack!
OpenSource! OpenStack!OpenSource! OpenStack!
OpenSource! OpenStack!
 
오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향
 
오픈스택을다루는기술 집필후기
오픈스택을다루는기술 집필후기오픈스택을다루는기술 집필후기
오픈스택을다루는기술 집필후기
 
Kcd open stack
Kcd open stackKcd open stack
Kcd open stack
 
Open technet openstack
Open technet openstackOpen technet openstack
Open technet openstack
 
[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack
 

셸 스크립트를 이용한 클라우드 시스템 운영

  • 1. 셸 스크립트를 이용한 클라우드 시스템 운영 1 Nalee Jang, Senior Consultant of Red Hat Korea
  • 2. 2 About me IT Expert on the Cloud! 한국 레드햇에서 오픈스택 및 클라우드 플랫폼 전문 컨설턴트로 근무하고 있습니다. ● 제 이름은 장현정입니다. 하지만, 저는 NaleeJang 이라고 불리는게 좋아요! ● 앞에서 소개했듯이 저는 한국 레드햇에서 오픈스택 전문 컨설턴트로 일하고 있어요. ● 그리고, 7년 전에는 HP Helion MVP(Most Valuable Professional, 2015.06.05)도 수상했어요. ● 저는 2권의 책을 출간했는데, 하나는 다들 아시는 “오픈스택을 다루는 기술"과 “오픈스택을 다루는 기술(최신 개정판)”이 있고, 또 다른 하나는 올 초에 출간한 “처음 배우는 셸 스크립트" 라는 책이에요! ● 물론 클라우드 마켓과 관련된 개인 특허를 재미삼아 내 본적도 있어요. 이것도 7년전에요. ● 그리고, 가끔은 제 블로그에 글을 쓰기도 해요. (http://naleejang.tistory.com) ● 페이스북은 매일 사용하죠~!! (http://www.facebook.com/naleejang) ● 마지막으로 다들 아시다시피 저는 오픈스택 한국 커뮤니티의 두번째 리더였어요. 지금은 아니지만요! (http://www.facebook.com/groups/openstack.kr/) (http://www.openstack.or.kr/) OpenInfra Community Days Korea 2021
  • 3. 3 생활 속의 클라우드 Agenda 클라우드와 리눅스와 셸 스크립트의 관계 셸 스크립트를 이용한 클라우드 운영(?) OpenInfra Community Days Korea 2021
  • 4. 4 셸 스크립트를이용한클라우드시스템운영 주위를 둘러봐요~!! 생각하지 못한 곳에서 클라우드 환경을 만날수 있어요. 생활 속의 클라우드 OpenInfra Community Days Korea 2021
  • 5. 5 생활 속의 클라우드 셸 스크립트를이용한클라우드시스템운영 OpenInfra Community Days Korea 2021 COVID-19 재택근무 온라인 미팅 코로나19 백신 예약 및 접종 배달음식 유행 1인 방송 온라인 세미나 온라인 수업 온라인 방송 참여 주위를 둘러 보세요! 코로나 바이러스가 발견되기 이전에도 있었지만, 코로나 바이러스로 인해 IT 기술은 매우 빠른 속도로 발전하고 있습니다. 재택근무를 하면서, 온라인 미팅을 하고, 학생들은 온라인으로 수업을 듣습니다. 예전에는 방청석을 예매해 참여했던 방송들은 온라인 방송 참여 시스템을 이용해 온라인으로 방송을 참여합니다. 물론 1인 방송을 하고, 세미나도 온라인으로 진행합니다. 모여서 밥을 못 먹으니 배달음식이 유행을 하고, 올해 초부터 시작된 코로나 백신 역시 예약시스템을 이용해 백신을 맞습니다. 이런 많은 IT 시스템들은 과연 어디에서 실행이 되는걸까요?
  • 6. 6 생활 속의 클라우드 셸 스크립트를이용한클라우드시스템운영 OpenInfra Community Days Korea 2021 Cloud Service 클라우드 서버 클라우드 서버 클라우드 스토리지 클라우드 컨테이너 온라인 미팅 동영상 촬영 음악 방송 동영상 방송 우리가 사용하는 많은 서비스들을 과연 어디에서 실행이 되는걸까요? 우리는 알게 모르게 클라우드 환경을 사용하고 있습니다. 클라우드 서비스에서 제공하는 클라우드 스토리지에 데이터를 저장하고 클라우드 서비스에서 제공하는 가상서버와 컨테이너 환경을 이용하여 이와 같은 어플리케이션들을 개발하고 실행합니다. 그리고, 클라우드 환경에서 서비스를 합니다. 그럼, 이런 클라우드 환경을 구성하기 위해서는 어떤 기술들이 필요할까요? 함께 알아볼까요?
  • 7. 7 생활 속의 클라우드 셸 스크립트를이용한클라우드시스템운영 OpenInfra Community Days Korea 2021 Infrastructure Platform Software 우리가 앞에서 살펴봤던 클라우드 환경을 구성하고, 어플리케이션들을 개발하고 서비스하기 위해서는 CPU, 메모리, 네트워크, 디스크와 같은 인프라가 필요 합니다. 그리고, 그 위에 운영체제를 설치하고, 개발이나 서비스에 필요로 하는 개발 플랫폼을 설치하죠~!! 그리고, 우리가 개발한 소스를 올리고, 데이터베이스에 데이터를 부어넣으면, 우리가 사용하는 소프트웨어 서비스가 되는 것입니다.
  • 8. 8 생활 속의 클라우드 셸 스크립트를이용한클라우드시스템운영 OpenInfra Community Days Korea 2021 http://abc.com http://aaa.com http://bbb.com http://ccc.com http://aaa.com http://bbb.com http://ccc.com Bare metal 환경 Hypervisor 환경 Container 환경 그럼, 인프라를 좀 더 자세하게 들여다 볼까요? 인프라는 아래와 같이 크게 3가지 타입의 인프라 종류가 있습니다. 물리 머신 환경을 그대로 사용하는 Bare metal 환경, 물리 머신에 하이퍼바이저를 설치하고 가상 서버를 생성하여 사용하는 Hypervisor 환경, 컨테이너 엔진을 사용하여 물리머신 혹은 가서서버 위에 컨테이너를 생성하여 사용하는 Container 환경이 있습니다.
  • 9. 9 셸 스크립트를이용한클라우드시스템운영 우리가 발견한 클라우드 환경은 대부분의 리눅스 환경 위에 올라가 있어요~!! 그리고, 리눅스에서 셸 스크립트는 리눅스 그 자체라고도 할 수 있죠~!! 클라우드와 리눅스와 셸 스크립트의 관계 OpenInfra Community Days Korea 2021
  • 10. 10 클라우드와 리눅스 셸 스크립트를이용한클라우드시스템운영 클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다. OpenInfra Community Days Korea 2021
  • 11. 11 클라우드와 리눅스 셸 스크립트를이용한클라우드시스템운영 클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다. OpenInfra Community Days Korea 2021
  • 12. 12 클라우드와 리눅스 셸 스크립트를이용한클라우드시스템운영 클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다. OpenInfra Community Days Korea 2021
  • 13. 13 클라우드와 리눅스 셸 스크립트를이용한클라우드시스템운영 클라우드 환경을 구축하기 위해서는 리눅스가 필요합니다. OpenInfra Community Days Korea 2021
  • 14. 14 리눅스와 셸 스크립트 셸 스크립트를이용한클라우드시스템운영 리눅스는 셸로 구성되어 있습니다. OpenInfra Community Days Korea 2021 [user@host ~]$ _ 사용자계정 호스트명 홈디렉토리 셸 프롬프트 GNU Bourne Again Shell BASH [root@host ~]# _ Root 계정 Root 셸 프롬프트
  • 15. 15 리눅스와 셸 스크립트 셸 스크립트를이용한클라우드시스템운영 리눅스에서 셸 이용한 프로그램이 셸 스크립트입니다. OpenInfra Community Days Korea 2021 셸 스크립트는 ● 우리가 자주 사용하는 명령어들을 프로세스화하여 파일에 작성한 것을 의미합니다. ● 스크립트라는 단어를 사용했기 때문에 if, for와 같은 간단한 제어문을 사용할 수 있으며, ● 명령어 및 실행결과를 저장할 수 있는 변수를 사용할 수 있습니다. 주요 셸 스크립트 구문 주요 리눅스 명령어 ● 변수 : 함수, 전역변수, 지역변수, 예약변수, 환경변수, 위치 매개변수, 특수 매개변수 ● 조건문 : if, switch - case ● 반복문 : for, while ● 연산자 : 문자열 연산자, 비교 연산자, 논리 연산자, 디렉터리 연산자, 파일 연산자 ● 정규표현식 : POSIX 기본 및 확장 문법, POSIX 문자 클래스 주요 리눅스 명령어 ● 문자열을 찾을 수 있는 grep ● 파일을 찾을 수 있는 find ● 특정 인덱스 문자열을 출력할 수 있는 awk ● 찾은 문자열을 바꿀 수 있는 sed ● 날짜와 시간을 알려주는 date
  • 16. 16 셸 스크립트를이용한클라우드시스템운영 셸 스크립트 하나만 잘 써도 우리는 클라우드 시스템을 아주 효율적으로 관리할 수 있어요. 셸 스크립트를 이용한 클라우드 시스템 운영(?) OpenInfra Community Days Korea 2021
  • 17. 17 운영에는 어떤 일들이 있을까요? 셸 스크립트를이용한클라우드시스템운영 운영 업무에는 크게 시스템 관리와 시스템 모니터링이 있습니다. OpenInfra Community Days Korea 2021 운영 시스템 관리 시스템 모니터링 Memory NIC Disk Hypervisor Container Create Delete Migration Update
  • 18. 18 셸 스크립트를 이용하여 인스턴스를 만들어봅시다! 셸 스크립트를이용한클라우드시스템운영 셸 스크립트도 프로세스가 필요합니다. OpenInfra Community Days Korea 2021 Instance Create 인스턴스명 입력 이미지 정보 입력 네트워크 정보 입력 Flavor 정보 입력 보안그룹 정보 입력 SSH Key 정보 볼륨 생성 인스턴스 생성
  • 19. 19 셸 스크립트를 이용하여 인스턴스를 만들어봅시다! 셸 스크립트를이용한클라우드시스템운영 셸 스크립트도 프로세스가 필요합니다. OpenInfra Community Days Korea 2021 인스턴스명 입력 이미지 정보 입력 네트워크 정보 입력 Flavor 정보 입력 보안그룹 정보 입력 SSH Key 정보 볼륨 생성 인스턴스 생성 [nalee@localhost ~]$ vi create-instance.sh #!/bin/bash # 인스턴스명 입력 read -p "Input instance name : " vmname 셸 스크립트로 구현하기 read 명령어는 외부 사용자로부터는 직접 파라메터를 입력받을 때 사용하는 명령어입니다. -p 옵션: 프롬프트 메시지를 함께 보여줄 때 사용하는 옵션 vmname : 사용자로부터 입력받은 문자열을 저장 하기 위한 변수
  • 20. 20 셸 스크립트를 이용하여 인스턴스를 만들어봅시다! 셸 스크립트를이용한클라우드시스템운영 셸 스크립트도 프로세스가 필요합니다. OpenInfra Community Days Korea 2021 인스턴스명 입력 이미지 정보 입력 네트워크 정보 입력 Flavor 정보 입력 보안그룹 정보 입력 SSH Key 정보 볼륨 생성 인스턴스 생성 # 이미지 정보 echo "== Image List ==" openstack image list -c Name -f value read -p "Input image name : " image # 네트워크 정보 echo "== Network List ==" openstack network list -c Name -f value read -p "Input network name : " net 셸 스크립트로 구현하기
  • 21. 21 셸 스크립트를 이용하여 인스턴스를 만들어봅시다! 셸 스크립트를이용한클라우드시스템운영 셸 스크립트도 프로세스가 필요합니다. OpenInfra Community Days Korea 2021 인스턴스명 입력 이미지 정보 입력 네트워크 정보 입력 Flavor 정보 입력 보안그룹 정보 입력 SSH Key 정보 볼륨 생성 인스턴스 생성 # Flaver 정보 echo "== Flavor List ==" openstack flavor list -c Name -f value read -p "Input flavor name : " flavor # 보안그룹 정보 echo "== Security group List ==" openstack security group list --project $OS_PROJECT_NAME -c Name -f value read -p "Input security group name : " sec secgrp=$(openstack security group list --project $OS_PROJECT_NAME -f value -c ID -c Name | grep "$sec$" | awk '{print $1}') 셸 스크립트로 구현하기
  • 22. 22 셸 스크립트를 이용하여 인스턴스를 만들어봅시다! 셸 스크립트를이용한클라우드시스템운영 셸 스크립트도 프로세스가 필요합니다. OpenInfra Community Days Korea 2021 인스턴스명 입력 이미지 정보 입력 네트워크 정보 입력 Flavor 정보 입력 보안그룹 정보 입력 SSH Key 정보 볼륨 생성 인스턴스 생성 # SSH 키 정보 echo "== Keypair List ==" openstack keypair list -c Name -f value read -p "Input keypair name : " keypair # 볼륨 생성 echo "== Create volume ==" read -p "Input volume size: " size openstack volume create --size $size --image $image --bootable $vmname 셸 스크립트로 구현하기
  • 23. 23 셸 스크립트를 이용하여 인스턴스를 만들어봅시다! 셸 스크립트를이용한클라우드시스템운영 셸 스크립트도 프로세스가 필요합니다. OpenInfra Community Days Korea 2021 인스턴스명 입력 이미지 정보 입력 네트워크 정보 입력 Flavor 정보 입력 보안그룹 정보 입력 SSH Key 정보 볼륨 생성 인스턴스 생성 # 인스턴스 생성 echo "Create Instance Starting" openstack server create --volume $(openstack volume list --name $vmname -f value -c ID) --flavor $flavor --security-group $secgrp --key-name $keypair --network $net --wait $vmname 셸 스크립트로 구현하기
  • 24. 24 셸 스크립트를 이용하여 인스턴스를 만들어봅시다! 셸 스크립트를이용한클라우드시스템운영 데모를 같이 볼까요! OpenInfra Community Days Korea 2021 Youtube URL: https://youtu.be/C_iUDJ7ZPFE
  • 25. 25 그 외 시스템 관리를 위한 스크립트 셸 스크립트를이용한클라우드시스템운영 처음 배우는 셸 스크립트 활용하기 OpenInfra Community Days Korea 2021 GitHub URL https://github.com/naleeJang/Easy-Shell-Script
  • 26. 26 운영에는 어떤 일들이 있을까요? 셸 스크립트를이용한클라우드시스템운영 주요 모니터링 항목을 알아봅시다! OpenInfra Community Days Korea 2021 모니터링 항목 설명 Power 컨트롤러 및 컴퓨트 노드의 전원에 이상이 있는지 IPMI 명령어를 통해 확인합니다. Network 다운되어 있는 네트워크 인터페이스가 있는지 확인하고, 다운되어 있는 인터페이스가 있다면 데이터센터 방문점검을 해야 합니다. Cluster status 클러스터 관리 툴인 Pacemaker 상태를 점검합니다. CPU CPU 사용률을 확인합니다. Memory 메모리 상태를 확인하고 캐시 메모리가 얼마나 찼는지를 확인합니다. Container 컨테이너 실행상태를 점검합니다. Mount NFS Glance에 잘 마운트 되어 있는지 확인하고, 마운트에 문제가 있다면 해당 구간의 네트워크를 확인해야 합니다. Service Logs 서비스 로그를 확인하고 문제가 있는 서비스가 있는지 점검합니다.
  • 27. 27 운영에는 어떤 일들이 있을까요? 셸 스크립트를이용한클라우드시스템운영 오픈스택은 주로 다음과 같은 노드들이 필요합니다. OpenInfra Community Days Korea 2021 “Red Hat OpenStack 16.2 from installing to operation” 테스트 베드 아키텍처 참조
  • 28. 28 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 시스템 모니터링
  • 29. 29 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check Overcloud Power" print_msg "#-----------------------------" for i in {0..2} do print_msg "192.168.10.1:645$i" power_stat=$(ipmitool -H 192.168.10.1 -p 645$i -I lanplus -U admin -P redhat power status) print_msg "$power_stat" done 셸 스크립트로 구현하기
  • 30. 30 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check Network" print_msg "#-----------------------------" net_stat=$(ssh -q heat-admin@$i sudo ip a | grep 'state UP' | grep mq | wc -l) if [ $net_stat -eq 5 ] then print_msg "Network status is normal" else print_msg "Please check network status" print_msg "$(ssh -q heat-admin@$i sudo ip a)" fi 셸 스크립트로 구현하기
  • 31. 31 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check Clustering" print_msg "#-----------------------------" cluster_stat=$(ssh -q heat-admin@$i sudo pcs status | grep 'failed' | wc -l) if [ $cluster_stat -eq 0 ] then print_msg "Pacemaker status is normal" else print_msg "Please check pacemaker" print_msg "$(ssh -q heat-admin@$i sudo pcs status)" fi 셸 스크립트로 구현하기
  • 32. 32 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check CPU" print_msg "#-----------------------------" cpu_stat=$(ssh -q heat-admin@$i sudo mpstat | grep all | awk '{print $4}') print_msg "CPU usage is $cpu_stat. If CPU usage is high, please check system CPU status" 셸 스크립트로 구현하기
  • 33. 33 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check Memory" print_msg "#-----------------------------" mem_stat=$(ssh -q heat-admin@$i sudo free -h | grep -i mem | awk '{print $4}') print_msg "Free memory amount is $mem_stat. If free memory amount is low, please check system memory status" 셸 스크립트로 구현하기
  • 34. 34 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check NFS - glance" print_msg "#-----------------------------" nfs_stat=$(ssh -q heat-admin@$i sudo df -h | grep glance | wc -l) if [ $nfs_stat -eq 1 ] then print_msg "NFS status is normal." else print_msg "Please check network status and nfs status" fi 셸 스크립트로 구현하기
  • 35. 35 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check Container" print_msg "#-----------------------------" container_stat=$(ssh -q heat-admin@$i sudo podman ps | grep -i sec | wc -l) if [ $container_stat -eq 0 ] then print_msg "Container status is normal." else print_msg "Please check container status" print_msg "$(ssh -q heat-admin@$i sudo podman ps)" fi 셸 스크립트로 구현하기
  • 36. 36 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 IPMI를 이용한 전원 확인 Network 확인 Cluster 상태 확인 CPU 사용률 확인 Memory 사용률 확인 NFS 상태 확인 Container 상태 확인 Service 로그 확인 print_msg "#-----------------------------" print_msg "# Check Service logs" print_msg "#-----------------------------" log_stat=$(ssh -q heat-admin@$i sudo sh chk-log.sh | wc -l) if [ $log_stat -eq 0 ] then print_msg "No error service logs. This system status is normal." else error_msg=$(ssh -q heat-admin@$i sudo sh chk-log.sh) print_msg "Please check system logs and container status." print_msg $error_msg fi 셸 스크립트로 구현하기
  • 37. 37 셸 스크립트를 이용하여 모니터링하기 셸 스크립트를이용한클라우드시스템운영 모니터링을 위한 프로세스 만들기 OpenInfra Community Days Korea 2021 Youtube URL: https://youtu.be/f5_JMY2nHFs
  • 38. 38 Conclude 생활속의 클라우드 ● 주위를 둘러보면 쉽게 클라우드 환경을 만날 수 있습니다. ● 클라우드 환경은 하이퍼바이저 환경에서 컨테이너 환경을 넘어가고 있습니다. 대표적인 Private 클라우드 환경 ● Private 클라우드 환경을 구축하기 위해 가장 많이 사용되는 오픈소스 플랫폼이 오픈스택입니다. 클라우드! 리눅스! 셸 스크립트! ● Public 클라우드가 되든 Private 클라우드가 되든 우리는 리눅스 서버를 정말 많이 사용합니다. ● 리눅스는 셸로 구성되어 있고, 자주 사용하는 명령어를 나열하여 파일로 저장하면 셸 스크립트가 됩니다. 셸 스크립트를 활용한 클라우드 시스템 운영 ● 자주 사용하는 리눅스 명령어와 셸 스크립트의 간단한 제어문을 이용해 클라우드 시스템을 효율적으로 운영할 수 있습니다. ● 인스턴스를 생성/삭제 할 수 있으며, 호스트 노드에서 매일 체크해야 하는 항목들을 쉽게 확인할 수 있습니다. OpenInfra Community Days Korea 2021
  • 39. openstack.kr http://www.openstack.or.kr http://bit.ly/openstack-kr-videos h 39 Thank you OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed and provisioned through APIs with common authentication mechanisms.