사전 준비
2023.08.11 - [7. 실습 Hands-on Lab] - OCI Super Delete 스크립트로 Compartment와 자원 삭제
인증 방식으로 Instance Principals 을 사용하기 때문에 Dynamic Group과 Policy 생성
디렉토리 생성, 압축해제 후 업로드
mkdir -p /home/opc/ocicli/autostopping/
mkdir -p /home/opc/ocicli/autostopping/log/
cd /home/opc/ocicli/autostopping/
[opc@admin-oci-autostop-main autostopping]$ ls -ltr
total 20
drwxrwxr-x. 2 opc opc 6 Sep 18 08:31 log
-rw-rw-r--. 1 opc opc 2696 Sep 18 09:03 stop_dbsystem_nodes.sh
-rw-rw-r--. 1 opc opc 2026 Sep 18 09:03 stop_oac.sh
-rw-rw-r--. 1 opc opc 0 Sep 18 09:03 whitelist.txt
-rw-rw-r--. 1 opc opc 2890 Sep 18 09:03 read_me.txt
-rw-rw-r--. 1 opc opc 2241 Sep 18 09:03 stop_adbs.sh
-rw-rw-r--. 1 opc opc 2443 Sep 18 09:03 stop_computes.sh
[opc@admin-oci-autostop-main autostopping]$
[opc@admin-oci-autostop-main autostopping]$ chmod +x /home/opc/ocicli/autostopping/*.sh
[opc@admin-oci-autostop-main autostopping]$
[opc@admin-oci-autostop-main autostopping]$ ls -ltr
total 20
drwxrwxr-x. 2 opc opc 6 Sep 18 08:31 log
-rwxrwxr-x. 1 opc opc 2696 Sep 18 09:03 stop_dbsystem_nodes.sh
-rwxrwxr-x. 1 opc opc 2026 Sep 18 09:03 stop_oac.sh
-rw-rw-r--. 1 opc opc 0 Sep 18 09:03 whitelist.txt
-rw-rw-r--. 1 opc opc 2890 Sep 18 09:03 read_me.txt
-rwxrwxr-x. 1 opc opc 2241 Sep 18 09:03 stop_adbs.sh
-rwxrwxr-x. 1 opc opc 2443 Sep 18 09:03 stop_computes.sh
[opc@admin-oci-autostop-main autostopping]$
실행파일 내 설정 변경
Instance Principals 인증 방식을 사용하므로 별도 config 파일은 없고 모든 sh 파일 내에 tenancy ocid를 변경
태그 내용 중에 AutoStopping NO 라고 되어 있는 것은 처리되지 않음
[opc@admin-oci-autostop-main autostopping]$ vi stop_dbsystem_nodes.sh
export OCI_CLI_AUTH=instance_principal
TENANCY_OCID=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
WHITELIST_FILE="/home/opc/ocicli/autostopping/whitelist_stop.txt"
OCI=$(which oci | cut -d ":" -f2)
ALL_REGIONS=$($OCI iam region list | grep -i name | cut -d ":" -f2 | cut -d "\"" -f2)
# 1. for each COMPARTMENT
ALL_COMPARTMENT_OCIDS=$($OCI iam compartment list --all --compartment-id-in-subtree true --compartment-id $TENANCY_OCID | grep -v "compartment-id" | grep "ocid1.compartment.oc1" | cut -d ":" -f2 | cut -d "\"" -f2)
for COMPARTMENT_OCID in $ALL_COMPARTMENT_OCIDS
do
echo "COMPARTMENT_OCID = $COMPARTMENT_OCID"
COMP_IN_WHITELIS=$(cat $WHITELIST_FILE | grep $COMPARTMENT_OCID | wc -l)
NO_AUTO_STOPPING_COMP=$($OCI iam compartment get --compartment-id $COMPARTMENT_OCID | grep -i AutoStopping | grep -i NO | wc -l)
.
.
.
Crontab 등록
[opc@admin-oci-autostop-main log]$ crontab -e
crontab: installing new crontab
[opc@admin-oci-autostop-main log]$
[opc@admin-oci-autostop-main log]$ crontab -l
###############################################################################
# Auto Stop EveryDay 22:00
###############################################################################
00 22 * * * /home/opc/ocicli/autostopping/stop_adbs.sh > /home/opc/ocicli/autostopping/log/stop_adbs_date_$(date +\%Y-\%m-\%d_\%H\%M\%S).log 2>&1
00 22 * * * /home/opc/ocicli/autostopping/stop_dbsystem_nodes.sh > /home/opc/ocicli/autostopping/log/stop_dbsystem_nodes_date_$(date +\%Y-\%m-\%d_\%H\%M\%S).log 2>&1
00 22 * * * /home/opc/ocicli/autostopping/stop_computes.sh > /home/opc/ocicli/autostopping/log/stop_computes_date_$(date +\%Y-\%m-\%d_\%H\%M\%S).log 2>&1
00 22 * * * /home/opc/ocicli/autostopping/stop_oac.sh > /home/opc/ocicli/autostopping/log/stop_oac_date_$(date +\%Y-\%m-\%d_\%H\%M\%S).log 2>&1
현재 4가지 자원 종류 Auto Stop : 자율주행데이터베이스, 오라클 데이터베이스, 컴퓨트 인스턴스, 오라클 분석 서비스
참고
'9. 실습 Hands-on Lab' 카테고리의 다른 글
API 게이트웨이에 커스텀 도메인 적용하기 (0) | 2023.09.27 |
---|---|
OCI Super Delete 스크립트로 Compartment와 자원 삭제 (0) | 2023.08.11 |
Java SDK로 Object Storage Copy하기 (0) | 2022.11.16 |
닷넷 코어 애플리케이션 설치하고 ADB 연결하기 .NET Core applications (0) | 2022.10.10 |
Tomcat을 설치하고 DBCS와 연동하기 (0) | 2022.09.26 |
댓글