본문 바로가기
Linux/APM 구축

[CentOS 7] APM 자동 구축(쉘 스크립트)

by 인성패밀리 2021. 2. 19.
반응형

실습 환경은 CentOS 7 버전입니다.
VMware에 Linux를 부팅시키고 putty를 이용하여 접속하였습니다.
'#> [명령어]' // [주석]
[]안의 부분만 보시면 됩니다.
'#'은 관리자, '$'는 유저입니다.
---------------------------------------------------------------------------

그동안 포스팅한

CentOS 7 설치 후 설정

FTP 구축

APM 구축(설치형 블로그 제외)

과정을 쉘 스크립트로 자동화 해보았습니다.

각 라인에 대한 설명은 아래와 같습니다.

 

[CentOS 7] 설치 후 설정(SELinux 비활성, iptables 설치, net-tools설치)

 

[CentOS 7] 설치 후 설정(SELinux 비활성, iptables 설치, net-tools설치)

이번 포스팅은 VMware에 CentOS 7을 설치한 직후에 하는 과정입니다. 이상한 점이 있다면 댓글에 남겨주시길 바라겠습니다. 기본적인 실습 셋팅에 대해서 알아보겠습니다. 먼저 알아갈 것이 있습니

c-i-s.tistory.com

[Cent OS 7] ftp 서버 구축 및 보안설정(vsftpd 설치)

 

[Cent OS 7] ftp 서버 구축 및 보안설정(vsftpd 설치)

실습 환경은 CentOS 7 버전입니다. VMware에 Linux를 부팅시키고 putty를 이용하여 접속하였습니다. '#> [명령어]' // [주석] []안의 부분만 보시면 됩니다. '#'은 관리자, '$'는 유저입니다...

c-i-s.tistory.com

APM 구축 카테고리

 

'Linux/APM 구축' 카테고리의 글 목록

같이 공부하는 장소입니다. 댓글로 잘못된 부분이나 궁금하신 점을 남기시면 피드백 하겠습니다.

c-i-s.tistory.com

 

아래로 내리면 뭔가 많아보이지만

정작 필요한 것만 쓰면 얼마 되지 않습니다.

 

1~20 라인

1 : bash shell을 의미합니다. 스크립트의 첫 번째로 작성해야합니다.

2 : ====를 출력합니다.

3 : start APM setup을 출력합니다.

이하 터미널상 단순 출력은 생략합니다.

5 : 2초 동안 잠시 멈춥니다. 과정을 천천히 보기위해 잠시 멈추었습니다.

이하 sleep 관련도 생략합니다.

6 : 터미널 상에 보이는 화면을 초기화 합니다.

이하 clear 명령어도 생략합니다.

12 : 시스템을 업데이트 합니다.

20 : ifconfig를 사용하기 위해 net-tools를 설치합니다.

 

21~39 라인

21 : rpm 명령어로 설치된 패키지를 확인합니다.

29 : iptables와 iptables-services를 설치합니다.

30 : 설치된 패키지를 확인합니다.

38 : firewalld를 중지합니다.

 

40~59 라인

43 : firewalld를 부팅 시 실행하는 것을 중지합니다.

54 : iptables를 시작합니다.

 

60~79 라인

62 : iptables를 부팅 시 시작하게 합니다.

66~71 : SELinux를 permissive로 운영할 때 주석을 제거합니다.

77 : FTP 데몬을 설치합니다.

78 : rpm 명령어로 설치된 패키지를 확인합니다.

 

80~99 라인

85 : SELinux를 활성화 모드로 사용했을때 ftp 설정입니다.

92 : /etc/vsftpd/chroot_list 파일을 생성합니다. 빈 파일입니다.

99 : /etc/vsftpd/vsftpd.conf 파일 안의 anonymous_enable=YES를 NO으로 변경합니다.

 

100~119 라인

106 : /etc/vsftpd/vsftpd.conf 파일 안의 #chroot_local_user=YES 부분의 #을 제거합니다.

113 : /etc/vsftpd/vsftpd.conf 파일 안의 #chroot_list_enable=YES 부분의 #을 제거합니다.

 

120~139 라인

120 : /etc/vsftpd/vsftpd.conf 파일 안의 #chroot_list_file= 부분의 #을 제거합니다.

125 : -n 옵션으로 echo 명령어가 끝나도 개행이 되지 않습니다.

126 : 터미널에 입력하는 문자열이 보이지 않습니다.

127 : c 언어의 scanf와 같은 문자열을 입력받는 기능입니다. 변수 p에 저장합니다.

128 : 이전에 개행을 하지 않아 여기서 개행을 합니다.

129 : 다시 터미널에 입력하는 문자열이 보입니다.

130 : 입력한 문자열을 확인하기 위해 하였습니다. $p는 변수 p를 참조합니다.

137 : 유저 test를 생성합니다.

138 : 명령어 passwd를 사용하면 두 번의 입력 값을 받는데 (echo $p; echo $p)가 순서대로 첫 번째, 두 번째 입니다.

대화형 명령어는 이렇게 사용하면 됩니다.

 

140~159 라인

146 : FTP 데몬을 실행합니다.

 

160~179 라인

160 : apache를 설치합니다.

168 : apache 서비스를 시작합니다.

176 : mariadb와 mariadb-server를 설치합니다.

177 : rpm 명령어로 설치한 패키지를 확인합니다.

 

180~199 라인

185 : mariadb를 시작합니다.

190~197 : 125~132번 라인과 동일합니다. 단지 변수가 pw으로 변경되었습니다.

 

200~219 라인

202 : 입력 받은 문자열로 DB의 관리자 비밀번호를 변경합니다.

209 : DB에 testuser를 생성합니다. 비밀번호는 1234

216 : testuser에 권한을 줍니다.

 

220~239 라인

223 : 설정을 적용합니다.

231 : php를 설치합니다.

232 : rpm 명령어로 설치한 패키지를 확인합니다.

239 : /var/www/html/phpinfo.php에 

<?php

phpinfo();

?>

를 입력합니다. php 정보를 나타내줍니다.

 

240~259 라인

246 : -n 옵션은 개행을 하지 않습니다.

247 : ifconfig로 나타난 ip를 입력해서 변수 ip에 저장합니다.

248 : 아까 개행을 안했으므로 여기서 개행을 합니다.

254 : /etc/httpd/conf/httpd.conf 파일안의 #ServerName www.example.com을 ServerName [ip주소]로 변경합니다.

최종 결과는 ServerName [IP주소]:80으로 변경됩니다.

 

260~279 라인

262 : httpd 설정 파일을 수정하여서 apache를 재 시작합니다.

269 : php와 DB 연동 확인 코드입니다. 한 줄로 입력이 되어 있습니다.

$는 주로 변수와 같이 사용이 되므로 echo "$mysql_hostname"으로 입력하면 변수 mysql_hostname으로 인식이 되므로 db.php 파일에 문자열 그대로 입력이 될 수가 없습니다. 따라서 $를 일반 문자로 변경하기 위해 작은 따옴표( ' )로 감쌌습니다. 하지만 쌍 따옴표( " ) 안에는 ' 가 그대로 문자열로 인식이 되어 나타납니다. 273 라인으로 $를 감싸고 있던 '을 제거합니다.

273 : 파일 안의 '$'를 $로 변경합니다. 이때 sed 명령어를 "으로 감싼 것은 특수 문자를 그대로 나타내기 위함입니다.

 

280~299 라인

281 : 269 라인과 비슷합니다. perl 명령어가 스크립트에 그대로 입력하면 인식이 안되서 따로 파일을 만들어 터미널에 입력하는 명령어 처럼 표현하였습니다. 281 라인 또한 한 줄입니다. perl 명령어를 이용하여 파일 중간 원하는 라인에 문장을 넣을 수 있습니다.

 

300~303 라인

따로 설명을 안해도 될 거 같습니다.

 

보다 간략히 할 수 있지만 이전 포스팅을 참고해서 과정을 그대로 스크립트로만 옮겼습니다.

 

긴 글 읽어주셔서 감사합니다.
오류나 틀린부분이 있으시면 댓글로 남겨주시면 감사하겠습니다.
여러분들과 같이 공부하는 공간이 되었으면 좋겠습니다.

반응형

댓글