[IaC] SSH, SSHPASS

이정훈·2023년 3월 27일
0

IaC

목록 보기
2/8
post-thumbnail
  • 파이썬 파일 실행하는 것과 비슷하게 sh [파일이름]으로 실행한다
  • 스크립트 실행
sh [파일이름]
  • chmod 명령어
chmod 755 [파일이름] #권한이 있어야지 실행이 가능!

변수 사용

  • 변수에 들어있는 값을 사용할 때는 변수명 앞에 $를 붙여야 사용하겠다.

조건문

	if [ 조건 ]
	then 
	 수행 명령어
	fi  
  • 띄워쓰기가 중요하다 그렇지 않으면 조건문이 실행되지 않는다.
  • 위 틀을 정확하게 맞춰놔야 한다.
  • fi 명시를 해줘서 어디까지 조건문인지 알려줘야 한다.



#! /bin/bash

result=`systemctl status httpd | grep Active | awk -F" " '{print $2}'`

echo $result

if [ $result = "active" ]
then
        echo "실행 중"
fi



#! /bin/bash

result=`df -h | grep /dev/mapper/cs-root | awk -F" " '{print $5}' | awk -F"%" '{print $1}'`

if [ $result -ge 80 ]
then
        echo "디스크 추가필요"
else
        echo "가만히 있자!"
fi

반복문

for

for  변수  in  [값]...
do
	반복 될 명령어
done
  • do 랑 done 사이에서 사용

sshpass

yum install sshpass
  • ssh를 이용하여 다른 컴퓨터의 명령어로를 실행할 수 있다.
#! /bin/bash

cat /etc/hostname
df -h | grep /dev/mapper/cs-root
free
  • commands.sh 함수를 만들어 놓고
#! /bin/bash

servers="
200.200.200.90
200.200.200.91
200.200.200.92
"

for server in $servers
do
        sshpass -p 'qwer1234' ssh root@$server < commands.sh
        echo $server
        echo '-------------------------'
done

  • 반복문을 만들어 주면
  • 연결된 컴퓨터들의 내용을 확인할 수 있다.

    중요! 초기에 한번씩은 각 각 연결을 해줘야한다.

    • 연결
    ssh root@[연결할 IP]
    • 연결해제
    exit

  • 200.200.200.92 는 연결을 안했더니 허용되지 않았다고 하니깐 따로 한번 연결해주면 된다

web서버 3대 만들기

  • commands.sh 파일 생성
#! /bin/bash

cat /etc/hostname
df -h | grep /dev/mapper/cs-root
free

setenforce 0
systemctl stop firewalld
yum install -y httpd
systemctl restart httpd

cat > /var/www/html/test.html << 'EOF'
OK
EOF

# yum install -y httpd & wait
# echo ok /var/www/html/test.html


  • 서버이름 용량 등을 일단 확인해 주고
  • 방화벽을 꺼주고
  • httpd를 설치하고 재실행하고
  • 그리고 haproxy에서 헬스체크를 위한 파일 생성해주고
#! /bin/bash

servers="
200.200.200.91
200.200.200.92
200.200.200.93
"

for server in $servers
do
        sshpass -p 'qwer1234' ssh root@$server < commands.sh
        echo $server
        echo '-----------------------------------'
done

sh [파일이름].sh

  • 각 서버 비밀번호 입력해주고 반복문으로 실행시키면 각 컴퓨터에 설치!

  • 설치되고 test.html 설치된것을 확인
profile
싱숭생숭늉

0개의 댓글