1. 사용 명령어 |
(1) yum
2. 키워드 & 사용처 |
(1) 키워드
RPM 패키지, 설치, 구축
(2) 사용처
서버 구축 작업에서 패키지 설치를 자동화하고 싶을 때 사용합니다.
3. 실행 예제 |
# ./yum-install.sh
Loaded plugins: fastestmirror, security
Loding mirror speeds from cached hostfile
... 생략 ...
yum 명령어로 httpd, zsh, xy, git 설치
4. 스크립트 |
#!/bin/sh
# 설치할 패키지명 정의
pkglist="httpd zsh xz git" ①
# 패키지 목록에서 순서대로 한 줄씩 읽기
for pkg in $pkglist ②
do
# yum 명령어로 패키지 설치
yum -y install $ pkg ③
done
5. 해설 |
이 스크립트는 셸 변수 pkglist로 지정한 패키지를 서버에 자동으로 설치합니다. 신규 서버 초기 구축에 사용해서 처리를 자동화하는데 사용할 수 있습니다. 여기서는 httpd, zsh, xz, git을 설치한다고 가정합니다.
예제에서 패키지 관리에 사용하는 yum 명령어는 RPM 패키지를 설치하는데 사용됩니다. 의존 관계가 있는 패키지도 함께 설치해줘서 무척 편리하므로 rpm 명령어보다 널리 사용됩니다.
서버 구축 시 패키지 설치에 이렇게 스크립트를 쓰는데는 다 이유가 있습니다. 전통적으로 이런 설치 작업은 구축 작업ㅂ서로 다음처럼 만들어서 문서화합니다.
<서버 구축 작업서>
1. 필요한 패키지를 설치
1.1 httpd 설치
1.2 zsh 설치
... 생략 ...
하지만 이런 문서로 하는 작업은 서버 구축에 익숙하지 않으면 담당자에 따라 실수를 할 수도 있습니다. 작업서를 예제처럼 스크립트 형태로 만들면 다른 담당자와 교대해도 스크립트를 실행하기만 하면 되므로 작업 실수를 방지할 수 있습니다.
즉, 예제는 서버 구축 작업을 스크립트화해서 작업 편리성 향상과 실수를 방지하는 두 가지 목적을 위한 것입니다.
①에서 설치할 패키지를 정의합니다. 여기서는 httpd, zsh, xz, git이라는 네 가지 패키지를 설치합니다. 이런 스크립트는 서버에 배포하는 작업을 하므로 목록은 외부 파일이 아니라 이렇게 스크립트에 두는 것이 좋습니다. 목록을 외부 파일로 만들면 목록 파일을 복사하는 걸 잊는다든지 해서 작업 실수가 생길 수도 있습니다.
②에서 for문은 셸 변수 pkglist의 값을 셸 변수 pkg로 하나씩 읽어들입니다. ③에서 이용하는 yum 명령어는 install을 지정해서 패키지를 설치합니다. yum 명령어에서 자주 사용하는 명령어를 표로 정리했습니다.
명령어 | 의미 |
yum install | 패키지 설치 |
yum info | 패키지 정보 표시 |
yum list | 사용 가능한 패키지 목록 표시 |
yum search | 키워드로 패키지 검색 |
yum update | 이미 설치된 패키지를 업데이트 |
yum erase | 패키지 삭제 |
그리고 yum 명령어로 패키지를 설치하면 도중에 설치할 것인지 묻게 됩니다.
... 생략 ...
Installed size : 2.9 M
Is this ok [y/N]:
-y 옵션을 사용하면 이런 문의에 전부 자동으로 y를 회답합니다. 여기에서는 자동화 스크립트를 만들기 때문에 -y 옵션이 필수입니다. 이렇게 하면 서버 패키지 설치 구축 작업을 스크립트로 자동화할 수 있습니다. 사용할 때는 각자 자기에게 맞도록 수정해서 사용하기 바랍니다.
<주의사항>
이 스크립트는 패키지 설치를 실행하므로 root 권한으로 실행해야 합니다.
리눅스(CentOS)의 yum 명령어를 이용하므로 CentOS에서만 동작합니다.
서버 구축자동화는 최근에 셰프(Chef)나 퍼핏(Puppet) 같은 고성능 소프트웨어가 널리 사용됩니다. 아직 오래되지 않은 소프트웨어이기 때문에 사용하려면 위험성도 있지만 패키지 설치뿐만 아니라 각종 설정 파일 자동 설정도 가능합니다.
참고서적 : 유닉스 리눅스 셸 스크립트 예제 사전
'IT 이야기 > Linux 셸 스크립트' 카테고리의 다른 글
[Linux 셸 스크립트] 서버 관리 - 112 특정 프로세스 실행 개수가 제한값을 넘었는지 확인하기 (0) | 2021.04.29 |
---|---|
[Linux 셸 스크립트] 서버 관리 - 111 특정 프로세스가 정지했는지 감시하기 (0) | 2021.04.29 |
[Linux 셸 스크립트] 서버 관리 - 109 RPM 패키지명이 적힌 목록 파일에서 각각의 패키지가 설치, 갱신된 날짜 확인하기 (0) | 2021.04.23 |
[Linux 셸 스크립트] 서버 관리 - 108 파일명으로 설치된 RPM 패키지명을 확인하기 (0) | 2021.04.23 |
[Linux 셸 스크립트] 서버 관리 - 107 시스템 셧다운하기 (0) | 2021.04.23 |
댓글