반응형
오늘은 네이버클라우드캠프의 첫 과목인 리눅스 수업의 마지막 날이다. 이제 조금 리눅스와 친해진 것 같은데 벌써 마지막 수업이라는 게 아쉽다. 오늘 수업에서는 그동안 배웠던 것들을 종합적으로 실습해보는 시간을 가졌다.
강사님께서 네이버클라우드 서버에서 리눅스를 구동하고 설정하는 부분까지 다뤄주셨지만 그 부분은 클라우드를 본격적으로 사용할 때 블로그에서 다뤄볼 예정이다.
Ubuntu Linux 초기설정 자동화하기
2023.05.03 - [[네이버클라우드] AIaaS 개발자 과정/Linux] - [네이버클라우드캠프] 2023.5.3 8일차(1) - Shell Script
8일차(1) 포스팅에서 패키지 설치 자동화에 대해서 다뤘었는데, 오늘은 아무것도 설치되어 있지 않은 완전 초기 상태의 이미지를 불러와서 처음부터 진행해볼 것이다. 다른 것들 보다 패키지 설치와 초기 환경 설정과 같은 귀찮지만 필요한 작업들을 자동화하는 방법을 정리해두면 응용해서 사용할 수 있는 방법이 많을 것 같아서 이 내용을 중점적으로 정리하기로 했다.
설치 후 아무것도 하지 않은 비어있는 이미지를 불러와서 작업했다.
vi my_init.sh
--편집기 입력 내용--
1 ## UbuntuLinux(22.04.2 LTS) 초기 세팅 스크립트
2 ## File name : ~/my_init.sh
7 ## 시간설정
8 timedatectl set-timezone 'Asis/Seoul'
9 now=`date +%Y년%m월%d일::%H시%M분`
10 ## 작업 시작 시간
11 echo $now >> ~/out.txt
12
13 ## alias 설정
14 cat > ~/.bash_aliases << END
15 alias h='history'
16 alias l='ls -AlF'
17 alias c='clear'
18 alias cp='cp -i'
19 alias mv='mv -i'
20 alias df='df -h'
21 alias du='du -sh'
22 alias li='ls -Ali'
23 alias lh='ls -Alh'
24
25 ## root only
26 alias ai='apt -y install'
27 alias aq='apt list --installed | grep '
28 alias ac='apt list --installed | wc -l'
29 alias pq='ps -ef | grep'
30 alias sss='systemctl start'
31 alias ses='systemctl restart'
32 alias up='tail -7 /etc/passwd && ls /home'
33 END
34
35 ## vimrc 설정
36 cat > ~/.vimrc << END
37 se nu ai ci si
38 se ts=4 sw=4
39 se ruler title showmatch
40 syntax on
41 hi comment ctermfg=red
42 END
43 ## 패키지 설치 전 패키지 수
44 apt list --installed | wc -l >> ~/out.txt
45 ## 패키지 설치 시작 시간
46 echo $now >> ~/out.txt
47
48 ## 필요 패키지 설치
49 apt -y install php php-curl php-gd php-intl php-mbstring php-soap php-xml \
50 php-xmlrpc php-zip php-mysql apache2 mysql-server gcc g++ default-jdk \
51 tomcat9 lynx sendmail glibc-doc mandoc sqlite3 quota rdate rename tree \
52 mailutils
53 ## 패키지 설치 후 패키지 수
54 apt list --installed | wc -l >> ~/out.txt
55 ## 패키지 설치 마친 시간
56 echo $now >> ~/out.txt
57
58 ## 웹 페이지나 파일을 저장할 디렉터리 생성
59 mkdir ~/public_html
60 ## 일반 사용자 shell 설정
61 useradd -D -s /bin/bash
62 ## ~/.profile(shell 설정파일) 실행
63 . ~/.profile
64
65 ## $PATH 환경 변수에 현재 디렉토리 추가
66 echo "PATH=$PATH:." >> ~/.profile
67
68 ## my_init.sh 파일에 실행 권한 부여
69 chmod +x my_init.sh
70 ## 모든 작업 마친 시간
71 echo $now >> ~/out.txt
실행 : bash my_init.sh
파일 실행이 끝나고 nl out.txt 로 작업 정보를 볼 수 있다.
SQLite3 소스 컴파일 설치 자동화
SQLite3는 예시이고, 다른 패키지들도 이런 식으로 자동화하면 좋을 것 같다.
vi s3_auto_install.sh
--편집기 입력내용--
1 ## sqlite 자동 설치 스크립트
2 ## filename : ~/s3_auto_install.sh
3
4 if [ -d /down2 ]
5 then
6 rm -rf /down2 => down2 디렉터리가 있다면 삭제
7 fi
8
9
10 if [ -d /sql3 ]
11 then
12 rm -rf /sql3 => sql3 디렉터리가 있다면 삭제
13 fi
14
15 apt -y install wget => wget 설치
16 TARGET_DIR=/sql3
17 mkdir /down2 && cd /down2
18 wget https://sqlite.org/snapshot/sqlite-snapshot-202305021634.tar.gz => sqlite3 압축파일 설치
19
20 tar xf sqlite-snapshot-202305021634.tar.gz => 압축해제
21
22 cd sqlite-snapshot-202305021634
23
24 ./configure --prefix=$TARGET_DIR => 위에서 TARGET_DIR을 sql3로 지정했기 때문에 컴파일된 소스코드는 sql3에 저장된다.
25
26 chmod +x s3_auto_install.sh
27
28 make
29 make install
30 /sql3/bin/sqlite3
실행 : bash ~/s3_auto_install.sh
일반 사용자 설정하기
root@kwc:~# cd /etc/skel
root@kwc:/etc/skel# mkdir public_html
root@kwc:/etc/skel# cp ~/.vimrc .
root@kwc:/etc/skel# cat > /etc/skel/.bash_aliases << EOF
> alias h='history'
> alias l='ls -AlF'
> alias c='clear'
> alias cp='cp -i'
> alias mv='mv -i'
> alias df='df -h'
> alias du='du -sh'
> alias li='ls -Ali'
> alias lh='ls -Alh'
> EOF
oot@kwc:/etc/skel# useradd -D -s /bin/bash
root@kwc:/etc/skel# vi /etc/login.defs => 빈 칸에 CREATE_HOME yes 추가 입력
리눅스로 이메일 보내기
엄청엄청엄청 간단하다.
sendmail 과 mailutils 패키지를 설치해주고,
root@kwc:~# mail [이메일 받을 주소] => []는 지우고!
Cc: 참조. 없으면 그냥 엔터쳐서 넘어가면 된다.
Subject: 안녕
안녕 이메일이야!
내용 입력 후 Ctrl+D 누르면 전송된다.
리눅스에서 송신은 가능하지만 수신은 안 된다. 정식 도메인을 구매하면 가능!
반응형
'[네이버클라우드] AIaaS 개발자 과정 > Linux' 카테고리의 다른 글
[네이버클라우드캠프] 2023.5.3 Linux(3) - Shell Script - sed, awk (0) | 2023.05.05 |
---|---|
[네이버클라우드캠프] 2023.5.3 Linux(2) - Shell Script 실습 (2) | 2023.05.05 |
[네이버클라우드캠프] 2023.5.3 Linux(1) - Shell Script (1) | 2023.05.03 |
[네이버클라우드캠프] 2023.5.2 Linux(2) - Web Server, Database Server (2) | 2023.05.02 |
[네이버클라우드캠프] 2023.5.2 Linux(1) - DNS server (2) | 2023.05.02 |