OpenStack 팩스택 설치 자동화를 위한 shell 스크립트 (feat.Dialog)
환경설정을 스크립트로.
1. UI를 기본과 다르게 만들고 싶은 욕망
- $ sudo yum -y install dialog
- dialogrc 파일을 수정하여 color 값 ON으로 수정 및 GREEN 설정
2. 오픈스택 (allinone) 팩스택에 필요한 환경 설정 확인
참고: 오픈스택 팩스택 설치
4betterme.tistory.com/52?category=848820
3. 환경설정 스크립트 알고리즘 흐름도 구상
4. 필요한 값 추출하기 위한 shell script 문법 공부 및 테스트
[tester@shell ~]$ systemctl status firewalld | grep Active: | awk '{print $2}'
active
[tester@shell ~]$ systemctl status selinux | grep Active: | awk '{print $2}'
Unit selinux.service could not be found.
Selinux는 단순히 systemctl 로 상태를 확인할 수 없으므로 파일 내용 안의 7번째줄의 값 추출
$ cat /etc/selinux/config | sed -n 7p | awk -F '[=]' '{print $2}'
enforcing
이더넷
이더넷 수
$ ifconfig | grep -c ens
2
이더넷 명
$ ifconfig | grep ens | awk -F: '{print $1}'
ens32
ens33
이더넷 CIDR 값
$ ifconfig ens33 | sed -n 2p | awk '{print $2}' | awk -F. '{print $1,$2,$3}'
192 168 92
$ ifconfig ens33 | sed -n 2p | awk '{print $2}' | awk -F. '{print $1"."$2"."$3}'
192.168.92
숫자 더 할 때 이중괄호안에 있어야 함 ((i=i+1))
i=0
for file in /etc/sysconfig/network-scripts/ifcfg-e*;
do
sudo mv $file /etc/sysconfig/network-scripts/ifcfg-eth$i
(( i=i+1 ));
done
basename을 통해서 '경로'를 제외한 파일명만 추출 가능
for file in /etc/sysconfig/network-scripts/ifcfg-e*;
do
sudo ifup `basename $file`;
done
➕
'파일명' 뿐만 아니라,
ifup eth0, ifup ens33
이런 식으로 ifup 사용 가능
sudo ifconfig | grep ens | awk -F: '{print $1}' > nic.txt
nics=$(cat nic.txt)
for nic in $nics;
do
sudo ifup $nic;
done
😃오늘의 핵심 작업: shell script로 외부 인터넷 연결 가능한 NIC 추출
- 외부로 ping을 보낼 때의 그 출력값을 파일로 리다이렉션
- ping이 가능했을 때와 불가능했을 때의 차이를 기준으로 외부 연결가능한 nic찾기
분석 결과:
외부로ping이 가능한 nic의 출력 txt파일에는 'icmp'라는 패턴이 등장하기 마련!
파일 내용을 분석하여 icmp 패턴을 가진 파일에 해당하는 nic을 external eth로 사용!
$ ping -c 3 -I ens32 8.8.8.8 1> ens32.txt
$ ping -c 3 -I ens33 8.8.8.8 1> ens33.txt
for nic in $nics;
do
sudo ping -c 3 -I $nic 8.8.8.8 1> $nic.txt
done
⏩
다음에 구현해야 할 것들 !
-
1. external nic 검색 시 아예 외부 연결 안 되는 경우에 대한 고려 : 분기 설정
2. NetworkScripts 내용 넣는 방법 : EOF
-
😃 더 공부해야 할 것들: 파일 디스크립터 공부 😃
https://unix.stackexchange.com/questions/42728/what-does-31-12-23-do-in-a-script
'자기발전소 > # Programming' 카테고리의 다른 글
Python (0) | 2020.12.24 |
---|---|
bash Shell Script 개인 프로젝트 2. (0) | 2020.10.12 |
if 중첩문 : elif (0) | 2020.06.22 |
Bash_shell script 함수 기초 (0) | 2020.06.02 |
C 언어 기초 2 (0) | 2020.05.05 |