본문 바로가기

Devops/Jenkins

Jenkins CLI - CLI 통합 쉘 스크립트 구성

반응형

 

기존 글로 작성한 5가지에 대한 CLI 사용법을 통합 스크립트로 구성하여 활용할 수 있도록 해보았다.

 

1. show_menu : 5가지 설정 중 Jenkins CLI를 통해 설정할 부분을 번호로 입력하여 opt 변수에 저장하도록 하였다.

show_menu(){
    normal=`echo "\033[m"`
    menu=`echo "\033[36m"` #Blue
    number=`echo "\033[33m"` #yellow
    bgred=`echo "\033[41m"`
    fgred=`echo "\033[31m"`
    printf "\n${menu}*********************************************${normal}\n"
    printf "${menu}**${number} 1)${menu} Kubernetes Cloud 설정 ${normal}\n"
    printf "${menu}**${number} 2)${menu} Job 설정 ${normal}\n"
    printf "${menu}**${number} 3)${menu} Plugins 설정 ${normal}\n"    
    printf "${menu}**${number} 4)${menu} User 설정 ${normal}\n"
    printf "${menu}**${number} 5)${menu} Credential 설정 ${normal}\n"
    printf "${menu}*********************************************${normal}\n"
    printf "Please enter a menu option and enter or ${fgred}x to exit. ${normal}"
    read opt
}

 

2. show_menu_jobs : Job 생성,변경,삭제를 선택할 수 있도록 하였다.

show_menu_jobs(){
    normal=`echo "\033[m"`
    menu=`echo "\033[36m"` #Blue
    number=`echo "\033[33m"` #yellow
    bgred=`echo "\033[41m"`
    fgred=`echo "\033[31m"`
    printf "\n${menu}*********************************************${normal}\n"
    printf "${menu}**${number} 1)${menu} Job 생성 ${normal}\n"
    printf "${menu}**${number} 2)${menu} Job 변경 ${normal}\n"
    printf "${menu}**${number} 3)${menu} Job 삭제 ${normal}\n"    
    printf "${menu}*********************************************${normal}\n"
    printf "Please enter a menu option and enter or ${fgred}x to exit. ${normal}"
    read opt_job    
}

 

3. show_menu_plugins : 플러그인 설치,업데이트,삭제를 선택할 수 있도록 하였다.

show_menu_plugins(){
    normal=`echo "\033[m"`
    menu=`echo "\033[36m"` #Blue
    number=`echo "\033[33m"` #yellow
    bgred=`echo "\033[41m"`
    fgred=`echo "\033[31m"`
    printf "\n${menu}*********************************************${normal}\n"
    printf "${menu}**${number} 1)${menu} Plugins 설치 ${normal}\n"
    printf "${menu}**${number} 2)${menu} Plugins 업데이트 ${normal}\n"
    printf "${menu}**${number} 3)${menu} Plugins 삭제 ${normal}\n"    
    printf "${menu}*********************************************${normal}\n"
    printf "Please enter a menu option and enter or ${fgred}x to exit. ${normal}"
    read opt_plugins
}

 

4.show_menu_users :  User 생성, 패스워드 변경, 삭제를 선택할 수 있도록 하였다.

show_menu_users(){
    normal=`echo "\033[m"`
    menu=`echo "\033[36m"` #Blue
    number=`echo "\033[33m"` #yellow
    bgred=`echo "\033[41m"`
    fgred=`echo "\033[31m"`
    printf "\n${menu}*********************************************${normal}\n"
    printf "${menu}**${number} 1)${menu} User 생성 ${normal}\n"
    printf "${menu}**${number} 2)${menu} User 패스워드 변경 ${normal}\n"
    printf "${menu}**${number} 3)${menu} User 삭제 ${normal}\n"    
    printf "${menu}*********************************************${normal}\n"
    printf "Please enter a menu option and enter or ${fgred}x to exit. ${normal}"
    read opt_users
}

 

 

5. show_menu_credential : Credential 생성에 대해 선택할 수 있도록 하였다.

show_menu_credential(){
    normal=`echo "\033[m"`
    menu=`echo "\033[36m"` #Blue
    number=`echo "\033[33m"` #yellow
    bgred=`echo "\033[41m"`
    fgred=`echo "\033[31m"`
    printf "\n${menu}*********************************************${normal}\n"
    printf "${menu}**${number} 1)${menu} Username with password 생성 ${normal}\n"
    printf "${menu}**${number} 2)${menu} Google Service Account from private key 생성 ${normal}\n"
    printf "${menu}**${number} 3)${menu} Secret text 생성 ${normal}\n"
    printf "${menu}**${number} 4)${menu} Secret file 생성 ${normal}\n"
    printf "${menu}**${number} 5)${menu} AWS Credential 생성 ${normal}\n"
    printf "${menu}**${number} 6)${menu} SSH Username with private key 생성 ${normal}\n"  
    printf "${menu}*********************************************${normal}\n"
    printf "Please enter a menu option and enter or ${fgred}x to exit. ${normal}"
    read opt_credential
}

 

 

 

6. while, case문을 이용하여 해당 번호에 맞는 작업 스크립트 실행

Jenkins 계정 및 패스워드를 show_menu 함수가 실행되기 전에 입력받게 해서 한번의 입력으로 여러번 작업이 가능하도록 하였다.

아직 미구성한 기능에 대해서는 추후 작업 후 작성하려고한다.

read -p "Jenkins 계정 입력 : " Jenkins_USER
read -sp "Jenkins 패스워드 입력 : " Jenkins_PW
echo
show_menu

 

 

while [ $opt != '' ]
    do
    if [ $opt = '' ]; then
      exit;
    else
      case $opt in
        1) clear;
            option_picked "Kubernetes Cloud 설정";
            bash ./create_k8s_cloud.sh "$Jenkins_USER" "$Jenkins_PW"

            show_menu;
            ;;
        2) clear;
            option_picked "Job 설정";
            show_menu_jobs
            case $opt_job in
                1) clear;
                    bash ./job_create.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                2) clear;
                    show_menu;
                    ;;
                3) clear;
                    show_menu;
                    ;;
                *) clear;
                    show_menu;
                    ;;
            esac
            ;;
        3) clear;
            option_picked "Plugins 설정";
            show_menu_plugins
            case $opt_plugins in
                1) clear;
                    bash ./plugin_install.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                2) clear;
                    show_menu;
                    ;;
                3) clear;
                    show_menu;
                    ;;
                *) clear;
                    show_menu;
                    ;;      
            esac
            ;;
        4) clear;
            option_picked "User 설정";
            show_menu_users
            case $opt_users in
                1) clear;
                    bash ./user_create.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                2) clear;
                    bash ./user_modify.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                3) clear;
                    show_menu;
                    ;;
                *) clear;
                    show_menu;
                    ;;
            esac
            ;;
        5) clear;
            option_picked "Credential 설정";
            show_menu_credential
            case $opt_credential in
                1) clear;
                    bash ./create_credential_user.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                2) clear;
                    bash ./create_credential_gcp.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                3) clear;
                    bash ./create_credential_secret_text.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                4) clear;
                    bash ./create_credential_secret_file.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                5) clear;
                    bash ./create_credential_aws.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                6) clear;
                    bash ./create_credential_ssh.sh "$Jenkins_USER" "$Jenkins_PW"
                    show_menu;
                    ;;
                *) clear;
                    show_menu;
                    ;;        
             

            esac
            ;;
        x) exit;
            ;;
        *) clear;
            show_menu;
            ;;      
      esac
    fi
done
반응형

'Devops > Jenkins' 카테고리의 다른 글

Jenkins CLI - Credential 설정 복호화  (0) 2024.07.13
Jenkins CLI - Credential 설정  (0) 2024.07.13
Jenkins CLI - Jenkins 유저 설정  (0) 2024.07.12
Jenkins CLI - 플러그인 설정  (0) 2024.07.12
Jenkins CLI - Kubernetes Cloud 등록  (0) 2024.07.11